@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/init.js ADDED
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getDuckDB = exports.DEBUG = void 0;
9
+ exports.initializeDuckDb = initializeDuckDb;
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _duckdbWasm = _interopRequireWildcard(require("@duckdb/duckdb-wasm"));
13
+ var duckdb = _duckdbWasm;
14
+ var _perf = require("./utils/perf");
15
+ 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); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(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; }
17
+ // SPDX-License-Identifier: MIT
18
+ // Copyright contributors to the kepler.gl project
19
+
20
+ // git@github.com:holdenmatt/duckdb-wasm-kit.git
21
+
22
+ var DEBUG;
23
+ var DuckDB;
24
+
25
+ /**
26
+ * Initialize DuckDB, ensuring we only initialize it once.
27
+ *
28
+ * @param debug If true, log DuckDB logs and elapsed times to the console.
29
+ * @param config An optional DuckDBConfig object.
30
+ */
31
+ function initializeDuckDb(_x) {
32
+ return _initializeDuckDb2.apply(this, arguments);
33
+ }
34
+ /**
35
+ * Initialize DuckDB with a browser-specific Wasm bundle.
36
+ */
37
+ function _initializeDuckDb2() {
38
+ _initializeDuckDb2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(options) {
39
+ var _ref3, _ref3$debug, debug, config;
40
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
41
+ while (1) switch (_context3.prev = _context3.next) {
42
+ case 0:
43
+ _ref3 = options || {}, _ref3$debug = _ref3.debug, debug = _ref3$debug === void 0 ? false : _ref3$debug, config = _ref3.config;
44
+ exports.DEBUG = DEBUG = debug;
45
+ if (DuckDB === undefined) {
46
+ DuckDB = _initializeDuckDb(config);
47
+ }
48
+ return _context3.abrupt("return", DuckDB);
49
+ case 4:
50
+ case "end":
51
+ return _context3.stop();
52
+ }
53
+ }, _callee3);
54
+ }));
55
+ return _initializeDuckDb2.apply(this, arguments);
56
+ }
57
+ var _initializeDuckDb = /*#__PURE__*/function () {
58
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(config) {
59
+ var start, JSDELIVR_BUNDLES, bundle, worker_url, worker, logger, db, res, buffer, fileNameMatch;
60
+ return _regenerator["default"].wrap(function _callee$(_context) {
61
+ while (1) switch (_context.prev = _context.next) {
62
+ case 0:
63
+ start = performance.now(); // Select a bundle based on browser checks
64
+ JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles();
65
+ _context.next = 4;
66
+ return duckdb.selectBundle(JSDELIVR_BUNDLES);
67
+ case 4:
68
+ bundle = _context.sent;
69
+ worker_url = URL.createObjectURL(new Blob(["importScripts(\"".concat(bundle.mainWorker, "\");")], {
70
+ type: 'text/javascript'
71
+ })); // Instantiate the async version of DuckDB-wasm
72
+ worker = new Worker(worker_url);
73
+ logger = DEBUG ? new duckdb.ConsoleLogger() : new duckdb.VoidLogger();
74
+ db = new _duckdbWasm.AsyncDuckDB(logger, worker);
75
+ _context.next = 11;
76
+ return db.instantiate(bundle.mainModule, bundle.pthreadWorker);
77
+ case 11:
78
+ URL.revokeObjectURL(worker_url);
79
+ if (!config) {
80
+ _context.next = 26;
81
+ break;
82
+ }
83
+ if (!config.path) {
84
+ _context.next = 24;
85
+ break;
86
+ }
87
+ _context.next = 16;
88
+ return fetch(config.path);
89
+ case 16:
90
+ res = _context.sent;
91
+ _context.next = 19;
92
+ return res.arrayBuffer();
93
+ case 19:
94
+ buffer = _context.sent;
95
+ fileNameMatch = config.path.match(/[^/]*$/);
96
+ if (fileNameMatch) {
97
+ config.path = fileNameMatch[0];
98
+ }
99
+ _context.next = 24;
100
+ return db.registerFileBuffer(config.path, new Uint8Array(buffer));
101
+ case 24:
102
+ _context.next = 26;
103
+ return db.open(config);
104
+ case 26:
105
+ if (DEBUG) {
106
+ (0, _perf.logElapsedTime)('DuckDB initialized', start);
107
+ if (config) {
108
+ console.debug("DuckDbConfig: ".concat(JSON.stringify(config, null, 2)));
109
+ }
110
+ }
111
+ return _context.abrupt("return", db);
112
+ case 28:
113
+ case "end":
114
+ return _context.stop();
115
+ }
116
+ }, _callee);
117
+ }));
118
+ return function _initializeDuckDb(_x2) {
119
+ return _ref.apply(this, arguments);
120
+ };
121
+ }();
122
+
123
+ /**
124
+ * Get the instance of DuckDB, initializing it if needed.
125
+ *
126
+ * Typically `useDuckDB` is used in React components instead, but this
127
+ * method provides access outside of React contexts.
128
+ */
129
+ var getDuckDB = exports.getDuckDB = /*#__PURE__*/function () {
130
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
131
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
132
+ while (1) switch (_context2.prev = _context2.next) {
133
+ case 0:
134
+ if (!DuckDB) {
135
+ _context2.next = 4;
136
+ break;
137
+ }
138
+ return _context2.abrupt("return", DuckDB);
139
+ case 4:
140
+ _context2.next = 6;
141
+ return initializeDuckDb();
142
+ case 6:
143
+ return _context2.abrupt("return", _context2.sent);
144
+ case 7:
145
+ case "end":
146
+ return _context2.stop();
147
+ }
148
+ }, _callee2);
149
+ }));
150
+ return function getDuckDB() {
151
+ return _ref2.apply(this, arguments);
152
+ };
153
+ }();
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZHVja2RiV2FzbSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsImR1Y2tkYiIsIl9wZXJmIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiREVCVUciLCJEdWNrREIiLCJpbml0aWFsaXplRHVja0RiIiwiX3giLCJfaW5pdGlhbGl6ZUR1Y2tEYjIiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlMyIsIm9wdGlvbnMiLCJfcmVmMyIsIl9yZWYzJGRlYnVnIiwiZGVidWciLCJjb25maWciLCJ3cmFwIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwicHJldiIsIm5leHQiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwiX2luaXRpYWxpemVEdWNrRGIiLCJhYnJ1cHQiLCJzdG9wIiwiX3JlZiIsIl9jYWxsZWUiLCJzdGFydCIsIkpTREVMSVZSX0JVTkRMRVMiLCJidW5kbGUiLCJ3b3JrZXJfdXJsIiwid29ya2VyIiwibG9nZ2VyIiwiZGIiLCJyZXMiLCJidWZmZXIiLCJmaWxlTmFtZU1hdGNoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInBlcmZvcm1hbmNlIiwibm93IiwiZ2V0SnNEZWxpdnJCdW5kbGVzIiwic2VsZWN0QnVuZGxlIiwic2VudCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsIkJsb2IiLCJjb25jYXQiLCJtYWluV29ya2VyIiwidHlwZSIsIldvcmtlciIsIkNvbnNvbGVMb2dnZXIiLCJWb2lkTG9nZ2VyIiwiQXN5bmNEdWNrREIiLCJpbnN0YW50aWF0ZSIsIm1haW5Nb2R1bGUiLCJwdGhyZWFkV29ya2VyIiwicmV2b2tlT2JqZWN0VVJMIiwicGF0aCIsImZldGNoIiwiYXJyYXlCdWZmZXIiLCJtYXRjaCIsInJlZ2lzdGVyRmlsZUJ1ZmZlciIsIlVpbnQ4QXJyYXkiLCJvcGVuIiwibG9nRWxhcHNlZFRpbWUiLCJjb25zb2xlIiwiSlNPTiIsInN0cmluZ2lmeSIsIl94MiIsImdldER1Y2tEQiIsIl9yZWYyIiwiX2NhbGxlZTIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiXSwic291cmNlcyI6WyIuLi9zcmMvaW5pdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBnaXRAZ2l0aHViLmNvbTpob2xkZW5tYXR0L2R1Y2tkYi13YXNtLWtpdC5naXRcbmltcG9ydCAqIGFzIGR1Y2tkYiBmcm9tICdAZHVja2RiL2R1Y2tkYi13YXNtJztcbmltcG9ydCB7QXN5bmNEdWNrREIsIER1Y2tEQkNvbmZpZ30gZnJvbSAnQGR1Y2tkYi9kdWNrZGItd2FzbSc7XG5pbXBvcnQge2xvZ0VsYXBzZWRUaW1lfSBmcm9tICcuL3V0aWxzL3BlcmYnO1xuXG5leHBvcnQgbGV0IERFQlVHOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5sZXQgRHVja0RCOiBQcm9taXNlPEFzeW5jRHVja0RCPiB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBJbml0aWFsaXplIER1Y2tEQiwgZW5zdXJpbmcgd2Ugb25seSBpbml0aWFsaXplIGl0IG9uY2UuXG4gKlxuICogQHBhcmFtIGRlYnVnIElmIHRydWUsIGxvZyBEdWNrREIgbG9ncyBhbmQgZWxhcHNlZCB0aW1lcyB0byB0aGUgY29uc29sZS5cbiAqIEBwYXJhbSBjb25maWcgQW4gb3B0aW9uYWwgRHVja0RCQ29uZmlnIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemVEdWNrRGIob3B0aW9ucz86IHtcbiAgZGVidWc/OiBib29sZWFuO1xuICBjb25maWc/OiBEdWNrREJDb25maWc7XG59KTogUHJvbWlzZTxBc3luY0R1Y2tEQj4ge1xuICBjb25zdCB7ZGVidWcgPSBmYWxzZSwgY29uZmlnfSA9IG9wdGlvbnMgfHwge307XG4gIERFQlVHID0gZGVidWc7XG5cbiAgaWYgKER1Y2tEQiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgRHVja0RCID0gX2luaXRpYWxpemVEdWNrRGIoY29uZmlnKTtcbiAgfVxuICByZXR1cm4gRHVja0RCO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemUgRHVja0RCIHdpdGggYSBicm93c2VyLXNwZWNpZmljIFdhc20gYnVuZGxlLlxuICovXG5jb25zdCBfaW5pdGlhbGl6ZUR1Y2tEYiA9IGFzeW5jIChjb25maWc/OiBEdWNrREJDb25maWcpOiBQcm9taXNlPEFzeW5jRHVja0RCPiA9PiB7XG4gIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgLy8gU2VsZWN0IGEgYnVuZGxlIGJhc2VkIG9uIGJyb3dzZXIgY2hlY2tzXG4gIGNvbnN0IEpTREVMSVZSX0JVTkRMRVMgPSBkdWNrZGIuZ2V0SnNEZWxpdnJCdW5kbGVzKCk7XG4gIGNvbnN0IGJ1bmRsZSA9IGF3YWl0IGR1Y2tkYi5zZWxlY3RCdW5kbGUoSlNERUxJVlJfQlVORExFUyk7XG5cbiAgY29uc3Qgd29ya2VyX3VybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoXG4gICAgbmV3IEJsb2IoW2BpbXBvcnRTY3JpcHRzKFwiJHtidW5kbGUubWFpbldvcmtlciF9XCIpO2BdLCB7XG4gICAgICB0eXBlOiAndGV4dC9qYXZhc2NyaXB0J1xuICAgIH0pXG4gICk7XG5cbiAgLy8gSW5zdGFudGlhdGUgdGhlIGFzeW5jIHZlcnNpb24gb2YgRHVja0RCLXdhc21cbiAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTtcbiAgY29uc3QgbG9nZ2VyID0gREVCVUcgPyBuZXcgZHVja2RiLkNvbnNvbGVMb2dnZXIoKSA6IG5ldyBkdWNrZGIuVm9pZExvZ2dlcigpO1xuICBjb25zdCBkYiA9IG5ldyBBc3luY0R1Y2tEQihsb2dnZXIsIHdvcmtlcik7XG4gIGF3YWl0IGRiLmluc3RhbnRpYXRlKGJ1bmRsZS5tYWluTW9kdWxlLCBidW5kbGUucHRocmVhZFdvcmtlcik7XG4gIFVSTC5yZXZva2VPYmplY3RVUkwod29ya2VyX3VybCk7XG5cbiAgaWYgKGNvbmZpZykge1xuICAgIGlmIChjb25maWcucGF0aCkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goY29uZmlnLnBhdGgpO1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgcmVzLmFycmF5QnVmZmVyKCk7XG4gICAgICBjb25zdCBmaWxlTmFtZU1hdGNoID0gY29uZmlnLnBhdGgubWF0Y2goL1teL10qJC8pO1xuICAgICAgaWYgKGZpbGVOYW1lTWF0Y2gpIHtcbiAgICAgICAgY29uZmlnLnBhdGggPSBmaWxlTmFtZU1hdGNoWzBdO1xuICAgICAgfVxuICAgICAgYXdhaXQgZGIucmVnaXN0ZXJGaWxlQnVmZmVyKGNvbmZpZy5wYXRoLCBuZXcgVWludDhBcnJheShidWZmZXIpKTtcbiAgICB9XG4gICAgYXdhaXQgZGIub3Blbihjb25maWcpO1xuICB9XG5cbiAgaWYgKERFQlVHKSB7XG4gICAgbG9nRWxhcHNlZFRpbWUoJ0R1Y2tEQiBpbml0aWFsaXplZCcsIHN0YXJ0KTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBEdWNrRGJDb25maWc6ICR7SlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKX1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRiO1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIGluc3RhbmNlIG9mIER1Y2tEQiwgaW5pdGlhbGl6aW5nIGl0IGlmIG5lZWRlZC5cbiAqXG4gKiBUeXBpY2FsbHkgYHVzZUR1Y2tEQmAgaXMgdXNlZCBpbiBSZWFjdCBjb21wb25lbnRzIGluc3RlYWQsIGJ1dCB0aGlzXG4gKiBtZXRob2QgcHJvdmlkZXMgYWNjZXNzIG91dHNpZGUgb2YgUmVhY3QgY29udGV4dHMuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREdWNrREIgPSBhc3luYyAoKTogUHJvbWlzZTxBc3luY0R1Y2tEQj4gPT4ge1xuICBpZiAoRHVja0RCKSB7XG4gICAgcmV0dXJuIER1Y2tEQjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXdhaXQgaW5pdGlhbGl6ZUR1Y2tEYigpO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlBLElBQUFBLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUE4QyxJQUFBQyxNQUFBLEdBQUFILFdBQUE7QUFFOUMsSUFBQUksS0FBQSxHQUFBRixPQUFBO0FBQTRDLFNBQUFHLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBTCx3QkFBQUssQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMs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
@@ -0,0 +1,3 @@
1
+ export declare const keplerGlDuckDBPlugin: {
2
+ init(): Promise<void>;
3
+ };
package/dist/plugin.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.keplerGlDuckDBPlugin = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _init = require("./init");
11
+ // SPDX-License-Identifier: MIT
12
+ // Copyright contributors to the kepler.gl project
13
+
14
+ var keplerGlDuckDBPlugin = exports.keplerGlDuckDBPlugin = {
15
+ init: function init() {
16
+ return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
17
+ return _regenerator["default"].wrap(function _callee$(_context) {
18
+ while (1) switch (_context.prev = _context.next) {
19
+ case 0:
20
+ _context.next = 2;
21
+ return (0, _init.initializeDuckDb)();
22
+ case 2:
23
+ console.log('kepler.gl DuckDB Plugin initialized');
24
+ case 3:
25
+ case "end":
26
+ return _context.stop();
27
+ }
28
+ }, _callee);
29
+ }))();
30
+ }
31
+ };
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5pdCIsInJlcXVpcmUiLCJrZXBsZXJHbER1Y2tEQlBsdWdpbiIsImV4cG9ydHMiLCJpbml0IiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiaW5pdGlhbGl6ZUR1Y2tEYiIsImNvbnNvbGUiLCJsb2ciLCJzdG9wIl0sInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2luaXRpYWxpemVEdWNrRGJ9IGZyb20gJy4vaW5pdCc7XG5cbmV4cG9ydCBjb25zdCBrZXBsZXJHbER1Y2tEQlBsdWdpbiA9IHtcbiAgYXN5bmMgaW5pdCgpIHtcbiAgICBhd2FpdCBpbml0aWFsaXplRHVja0RiKCk7XG4gICAgY29uc29sZS5sb2coJ2tlcGxlci5nbCBEdWNrREIgUGx1Z2luIGluaXRpYWxpemVkJyk7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUhBO0FBQ0E7O0FBSU8sSUFBTUMsb0JBQW9CLEdBQUFDLE9BQUEsQ0FBQUQsb0JBQUEsR0FBRztFQUM1QkUsSUFBSSxXQUFKQSxJQUFJQSxDQUFBLEVBQUc7SUFBQSxXQUFBQyxrQkFBQSwyQkFBQUMsWUFBQSxZQUFBQyxJQUFBLFVBQUFDLFFBQUE7TUFBQSxPQUFBRixZQUFBLFlBQUFHLElBQUEsVUFBQUMsU0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1VBQUE7WUFBQUYsUUFBQSxDQUFBRSxJQUFBO1lBQUEsT0FDTCxJQUFBQyxzQkFBZ0IsRUFBQyxDQUFDO1VBQUE7WUFDeEJDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLHFDQUFxQyxDQUFDO1VBQUM7VUFBQTtZQUFBLE9BQUFMLFFBQUEsQ0FBQU0sSUFBQTtRQUFBO01BQUEsR0FBQVQsT0FBQTtJQUFBO0VBQ3JEO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,18 @@
1
+ import * as arrow from 'apache-arrow';
2
+ import { ProtoDatasetField } from '@kepler.gl/types';
3
+ import { processKeplerglJSON } from '@kepler.gl/processors';
4
+ export declare const CSV_NULLS: RegExp;
5
+ declare type RowsAsArray = any[][];
6
+ declare type RowsAsObject = Record<string, unknown>[];
7
+ declare type RowData = RowsAsArray | RowsAsObject;
8
+ export declare type ProcessorResult = {
9
+ cols?: arrow.Vector[];
10
+ rows: RowData;
11
+ fields: ProtoDatasetField[];
12
+ };
13
+ export declare function columnTypeToFieldType(columnType: string): string | null;
14
+ export declare function fieldTypeToColumnType(fieldType: string): string | null;
15
+ export declare function processKeplerglJSONforDuckDb(keplerJson: any): Promise<ReturnType<typeof processKeplerglJSON>>;
16
+ export declare function processCsvRowObject(rawData: Record<string, string | null>[]): Promise<ProcessorResult>;
17
+ export declare function processGeojson(rawData: unknown): ProcessorResult;
18
+ export {};
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.CSV_NULLS = void 0;
8
+ exports.columnTypeToFieldType = columnTypeToFieldType;
9
+ exports.fieldTypeToColumnType = fieldTypeToColumnType;
10
+ exports.processCsvRowObject = processCsvRowObject;
11
+ exports.processGeojson = processGeojson;
12
+ exports.processKeplerglJSONforDuckDb = processKeplerglJSONforDuckDb;
13
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
+ var _geojsonNormalize = _interopRequireDefault(require("@mapbox/geojson-normalize"));
17
+ var _commonUtils = require("@kepler.gl/common-utils");
18
+ var _constants = require("@kepler.gl/constants");
19
+ var _processors = require("@kepler.gl/processors");
20
+ var _init = require("../init");
21
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
23
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
24
+ 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; }
25
+ 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; } // SPDX-License-Identifier: MIT
26
+ // Copyright contributors to the kepler.gl project
27
+ var CSV_NULLS = exports.CSV_NULLS = /^(null|NULL|Null|NaN|\/N||)$/;
28
+ var COLUMN_TYPES = /*#__PURE__*/function (COLUMN_TYPES) {
29
+ COLUMN_TYPES["GEOMETRY"] = "GEOMETRY";
30
+ COLUMN_TYPES["BOOLEAN"] = "BOOLEAN";
31
+ COLUMN_TYPES["INTEGER"] = "INTEGER";
32
+ COLUMN_TYPES["FLOAT"] = "FLOAT";
33
+ COLUMN_TYPES["TIME"] = "TIME";
34
+ COLUMN_TYPES["DATE"] = "DATE";
35
+ COLUMN_TYPES["TIMESTAMP"] = "TIMESTAMP";
36
+ COLUMN_TYPES["VARCHAR"] = "VARCHAR";
37
+ return COLUMN_TYPES;
38
+ }(COLUMN_TYPES || {}); // @ts-expect-error https://duckdb.org/docs/data/csv/auto_detection.html#type-detection
39
+ var COLUMN_TYPES_PRIORITIES = ['GEOMETRY', 'BOOLEAN', 'INTEGER', 'FLOAT', 'TIME', 'DATE', 'TIMESTAMP', 'VARCHAR'];
40
+ function columnTypeToFieldType(columnType) {
41
+ switch (columnType) {
42
+ case COLUMN_TYPES.BOOLEAN:
43
+ return _constants.ALL_FIELD_TYPES["boolean"];
44
+ case COLUMN_TYPES.DATE:
45
+ return _constants.ALL_FIELD_TYPES.date;
46
+ case COLUMN_TYPES.INTEGER:
47
+ return _constants.ALL_FIELD_TYPES.integer;
48
+ case COLUMN_TYPES.FLOAT:
49
+ return _constants.ALL_FIELD_TYPES.real;
50
+ case COLUMN_TYPES.VARCHAR:
51
+ return _constants.ALL_FIELD_TYPES.string;
52
+ case COLUMN_TYPES.TIMESTAMP:
53
+ return _constants.ALL_FIELD_TYPES.timestamp;
54
+ case COLUMN_TYPES.GEOMETRY:
55
+ return _constants.ALL_FIELD_TYPES.geojson;
56
+ default:
57
+ // is there any other type we didn't cover?
58
+ console.warn("Unsupported DuckDB Column type: ".concat(columnType));
59
+ return null;
60
+ }
61
+ }
62
+ function fieldTypeToColumnType(fieldType) {
63
+ switch (fieldType) {
64
+ case _constants.ALL_FIELD_TYPES["boolean"]:
65
+ return COLUMN_TYPES.BOOLEAN;
66
+ case _constants.ALL_FIELD_TYPES.date:
67
+ return COLUMN_TYPES.DATE;
68
+ case _constants.ALL_FIELD_TYPES.integer:
69
+ return COLUMN_TYPES.INTEGER;
70
+ case _constants.ALL_FIELD_TYPES.real:
71
+ return COLUMN_TYPES.FLOAT;
72
+ case _constants.ALL_FIELD_TYPES.string:
73
+ return COLUMN_TYPES.VARCHAR;
74
+ case _constants.ALL_FIELD_TYPES.timestamp:
75
+ return COLUMN_TYPES.TIMESTAMP;
76
+ case _constants.ALL_FIELD_TYPES.geojson:
77
+ return COLUMN_TYPES.GEOMETRY;
78
+ default:
79
+ // is there any other type we didn't cover?
80
+ console.warn("Unsupported Field type for DuckDb: ".concat(fieldType));
81
+ return null;
82
+ }
83
+ }
84
+
85
+ /*
86
+ * Process uploaded exported Keplergl json map.
87
+ * We need to populate field with proper DuckDb compatible type.
88
+ */
89
+ // TODO: merge with logic from processCsvRowObject. Different formats: [[]] vs [{}]
90
+ function processKeplerglJSONforDuckDb(_x) {
91
+ return _processKeplerglJSONforDuckDb.apply(this, arguments);
92
+ }
93
+ /*
94
+ * Process uploaded csv returned by loaders.gl as row object and string value
95
+ */
96
+ function _processKeplerglJSONforDuckDb() {
97
+ _processKeplerglJSONforDuckDb = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keplerJson) {
98
+ var res, datasets, _iterator, _step, _loop2;
99
+ return _regenerator["default"].wrap(function _callee$(_context2) {
100
+ while (1) switch (_context2.prev = _context2.next) {
101
+ case 0:
102
+ res = (0, _processors.processKeplerglJSON)(keplerJson);
103
+ datasets = (res === null || res === void 0 ? void 0 : res.datasets) || [];
104
+ _iterator = _createForOfIteratorHelper(datasets);
105
+ _context2.prev = 3;
106
+ _loop2 = /*#__PURE__*/_regenerator["default"].mark(function _loop2() {
107
+ var dataset, rowsAll, fieldsAll, header, sample, schema, fieldsUpd;
108
+ return _regenerator["default"].wrap(function _loop2$(_context) {
109
+ while (1) switch (_context.prev = _context.next) {
110
+ case 0:
111
+ dataset = _step.value;
112
+ rowsAll = dataset.data.rows;
113
+ fieldsAll = dataset.data.fields;
114
+ header = fieldsAll.map(function (f) {
115
+ return f.name;
116
+ });
117
+ sample = (0, _commonUtils.getSampleForTypeAnalyze)({
118
+ fields: header,
119
+ rows: rowsAll
120
+ });
121
+ if (!(sample.length > 0)) {
122
+ _context.next = 11;
123
+ break;
124
+ }
125
+ _context.next = 8;
126
+ return sniffCsvSchema(sample);
127
+ case 8:
128
+ _context.t0 = _context.sent;
129
+ _context.next = 12;
130
+ break;
131
+ case 11:
132
+ _context.t0 = fieldsAll.reduce(function (acc, field) {
133
+ acc[field.name] = fieldTypeToColumnType(field.type);
134
+ return acc;
135
+ }, {});
136
+ case 12:
137
+ schema = _context.t0;
138
+ fieldsUpd = consolidateFieldTypes(dataset.data.fields, schema);
139
+ dataset.data.fields = fieldsAll.map(function (f, i) {
140
+ return _objectSpread(_objectSpread({}, fieldsUpd[i]), f);
141
+ });
142
+ case 15:
143
+ case "end":
144
+ return _context.stop();
145
+ }
146
+ }, _loop2);
147
+ });
148
+ _iterator.s();
149
+ case 6:
150
+ if ((_step = _iterator.n()).done) {
151
+ _context2.next = 10;
152
+ break;
153
+ }
154
+ return _context2.delegateYield(_loop2(), "t0", 8);
155
+ case 8:
156
+ _context2.next = 6;
157
+ break;
158
+ case 10:
159
+ _context2.next = 15;
160
+ break;
161
+ case 12:
162
+ _context2.prev = 12;
163
+ _context2.t1 = _context2["catch"](3);
164
+ _iterator.e(_context2.t1);
165
+ case 15:
166
+ _context2.prev = 15;
167
+ _iterator.f();
168
+ return _context2.finish(15);
169
+ case 18:
170
+ return _context2.abrupt("return", res);
171
+ case 19:
172
+ case "end":
173
+ return _context2.stop();
174
+ }
175
+ }, _callee, null, [[3, 12, 15, 18]]);
176
+ }));
177
+ return _processKeplerglJSONforDuckDb.apply(this, arguments);
178
+ }
179
+ function processCsvRowObject(_x2) {
180
+ return _processCsvRowObject.apply(this, arguments);
181
+ }
182
+ function _processCsvRowObject() {
183
+ _processCsvRowObject = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(rawData) {
184
+ var header, sample, schema, fieldsWAnalyzerType, fields;
185
+ return _regenerator["default"].wrap(function _callee2$(_context3) {
186
+ while (1) switch (_context3.prev = _context3.next) {
187
+ case 0:
188
+ if (!(!Array.isArray(rawData) || !rawData.length)) {
189
+ _context3.next = 2;
190
+ break;
191
+ }
192
+ return _context3.abrupt("return", {
193
+ fields: [],
194
+ rows: []
195
+ });
196
+ case 2:
197
+ header = Object.keys(rawData[0]); // [lat, lng, value]
198
+ // row object can still contain values like `Null` or `N/A`
199
+ cleanUpFalsyCsvValue(rawData);
200
+ sample = (0, _commonUtils.getSampleForTypeAnalyze)({
201
+ fields: header,
202
+ rows: rawData
203
+ }); // add sample data to duckdb and get schema
204
+ _context3.next = 7;
205
+ return sniffCsvSchema(sample);
206
+ case 7:
207
+ schema = _context3.sent;
208
+ fieldsWAnalyzerType = (0, _commonUtils.getFieldsFromData)(sample, header);
209
+ fields = consolidateFieldTypes(fieldsWAnalyzerType, schema);
210
+ return _context3.abrupt("return", {
211
+ rows: rawData,
212
+ fields: fields
213
+ });
214
+ case 11:
215
+ case "end":
216
+ return _context3.stop();
217
+ }
218
+ }, _callee2);
219
+ }));
220
+ return _processCsvRowObject.apply(this, arguments);
221
+ }
222
+ function cleanUpFalsyCsvValue(rows) {
223
+ var re = new RegExp(CSV_NULLS, 'g');
224
+ var _loop = function _loop(i) {
225
+ Object.keys(rows[i]).forEach(function (key) {
226
+ // here we parse empty data as null
227
+ if (typeof rows[i][key] === 'string' && rows[i][key].match(re)) {
228
+ rows[i][key] = null;
229
+ }
230
+ });
231
+ };
232
+ for (var i = 0; i < rows.length; i++) {
233
+ _loop(i);
234
+ }
235
+ }
236
+
237
+ // align type analyzer types with DuckDB csv auto detected column types
238
+ function consolidateFieldTypes(fields, schema) {
239
+ return fields.map(function (field) {
240
+ var columnName = field.name;
241
+ var detectedColumnType = schema[columnName];
242
+
243
+ // TODO columnTypeToFieldType tranforms detected timestamps to string,
244
+ // completely breaking time filter logic.
245
+ // const fieldType = columnTypeToFieldType(detectedColumnType) || field.type;
246
+
247
+ return _objectSpread(_objectSpread({}, field), {}, {
248
+ // type: fieldType,
249
+ duckDBColumnType: detectedColumnType
250
+ });
251
+ });
252
+ }
253
+ function toCSVRow(row) {
254
+ return "".concat(row.map(function (r) {
255
+ var rToStr = (0, _commonUtils.notNullorUndefined)(r) ? String(r).replace(/"/g, '\\"') : '';
256
+ return rToStr.includes(',') ? "\"".concat(rToStr, "\"") : rToStr;
257
+ }).join(','), "\n");
258
+ }
259
+
260
+ // Use DucckDB to detect csv column schema
261
+ function sniffCsvSchema(_x3) {
262
+ return _sniffCsvSchema.apply(this, arguments);
263
+ }
264
+ function _sniffCsvSchema() {
265
+ _sniffCsvSchema = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(sample) {
266
+ var headerRow, csvContent, db, c, fileName, result, schemaResult, columns, schema, i;
267
+ return _regenerator["default"].wrap(function _callee3$(_context4) {
268
+ while (1) switch (_context4.prev = _context4.next) {
269
+ case 0:
270
+ if (!(!Array.isArray(sample) || sample.length < 0)) {
271
+ _context4.next = 2;
272
+ break;
273
+ }
274
+ return _context4.abrupt("return");
275
+ case 2:
276
+ headerRow = toCSVRow(Object.keys(sample[0]));
277
+ csvContent = sample.reduce(function (accu, row) {
278
+ return "".concat(accu).concat(toCSVRow(Object.values(row)));
279
+ }, headerRow);
280
+ _context4.next = 6;
281
+ return (0, _init.getDuckDB)();
282
+ case 6:
283
+ db = _context4.sent;
284
+ _context4.next = 9;
285
+ return db.connect();
286
+ case 9:
287
+ c = _context4.sent;
288
+ fileName = (0, _commonUtils.generateHashId)();
289
+ _context4.next = 13;
290
+ return db.registerFileText("".concat(fileName, "-").concat(_commonUtils.generateHashId, ".csv"), csvContent);
291
+ case 13:
292
+ _context4.next = 15;
293
+ return c.query("\n FROM sniff_csv('".concat(fileName, "-").concat(_commonUtils.generateHashId, ".csv', \n sample_size = 500,\n auto_type_candidates = ['FLOAT', 'INTEGER', 'TIMESTAMP', 'DATE', 'TIME', 'VARCHAR', 'BOOLEAN']);\n "));
294
+ case 15:
295
+ result = _context4.sent;
296
+ schemaResult = result.toArray().map(function (row) {
297
+ return row.toJSON();
298
+ });
299
+ columns = schemaResult[0].Columns;
300
+ schema = {};
301
+ for (i = 0; i < columns.length; i++) {
302
+ schema[columns.get(i).name] = columns.get(i).type;
303
+ }
304
+ return _context4.abrupt("return", schema);
305
+ case 21:
306
+ case "end":
307
+ return _context4.stop();
308
+ }
309
+ }, _callee3);
310
+ }));
311
+ return _sniffCsvSchema.apply(this, arguments);
312
+ }
313
+ function processGeojson(rawData) {
314
+ var normalizedGeojson = (0, _geojsonNormalize["default"])(rawData);
315
+ if (!normalizedGeojson || !Array.isArray(normalizedGeojson.features)) {
316
+ var error = new Error("Read File Failed: File is not a valid GeoJSON. Read more about [supported file format](".concat(_constants.GUIDES_FILE_FORMAT_DOC, ")"));
317
+ throw error;
318
+ // fail to normalize geojson
319
+ }
320
+ // console.log(normalizedGeojson);
321
+
322
+ return {
323
+ rows: normalizedGeojson,
324
+ // TODO get fields to preserve field names?
325
+ fields: []
326
+ };
327
+ }
328
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2VvanNvbk5vcm1hbGl6ZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvbW1vblV0aWxzIiwiX2NvbnN0YW50cyIsIl9wcm9jZXNzb3JzIiwiX2luaXQiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJDU1ZfTlVMTFMiLCJleHBvcnRzIiwiQ09MVU1OX1RZUEVTIiwiQ09MVU1OX1RZUEVTX1BSSU9SSVRJRVMiLCJjb2x1bW5UeXBlVG9GaWVsZFR5cGUiLCJjb2x1bW5UeXBlIiwiQk9PTEVBTiIsIkFMTF9GSUVMRF9UWVBFUyIsIkRBVEUiLCJkYXRlIiwiSU5URUdFUiIsImludGVnZXIiLCJGTE9BVCIsInJlYWwiLCJWQVJDSEFSIiwic3RyaW5nIiwiVElNRVNUQU1QIiwidGltZXN0YW1wIiwiR0VPTUVUUlkiLCJnZW9qc29uIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJmaWVsZFR5cGVUb0NvbHVtblR5cGUiLCJmaWVsZFR5cGUiLCJwcm9jZXNzS2VwbGVyZ2xKU09OZm9yRHVja0RiIiwiX3giLCJfcHJvY2Vzc0tlcGxlcmdsSlNPTmZvckR1Y2tEYiIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwia2VwbGVySnNvbiIsInJlcyIsImRhdGFzZXRzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfbG9vcDIiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dDIiLCJwcmV2IiwicHJvY2Vzc0tlcGxlcmdsSlNPTiIsImRhdGFzZXQiLCJyb3dzQWxsIiwiZmllbGRzQWxsIiwiaGVhZGVyIiwic2FtcGxlIiwic2NoZW1hIiwiZmllbGRzVXBkIiwiX2xvb3AyJCIsIl9jb250ZXh0IiwiZGF0YSIsInJvd3MiLCJmaWVsZHMiLCJtYXAiLCJnZXRTYW1wbGVGb3JUeXBlQW5hbHl6ZSIsInNuaWZmQ3N2U2NoZW1hIiwidDAiLCJzZW50IiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJ0eXBlIiwiY29uc29saWRhdGVGaWVsZFR5cGVzIiwiaSIsInN0b3AiLCJkZWxlZ2F0ZVlpZWxkIiwidDEiLCJmaW5pc2giLCJhYnJ1cHQiLCJwcm9jZXNzQ3N2Um93T2JqZWN0IiwiX3gyIiwiX3Byb2Nlc3NDc3ZSb3dPYmplY3QiLCJfY2FsbGVlMiIsInJhd0RhdGEiLCJmaWVsZHNXQW5hbHl6ZXJUeXBlIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQzIiwiY2xlYW5VcEZhbHN5Q3N2VmFsdWUiLCJnZXRGaWVsZHNGcm9tRGF0YSIsInJlIiwiUmVnRXhwIiwiX2xvb3AiLCJrZXkiLCJtYXRjaCIsImNvbHVtbk5hbWUiLCJkZXRlY3RlZENvbHVtblR5cGUiLCJkdWNrREJDb2x1bW5UeXBlIiwidG9DU1ZSb3ciLCJyb3ciLCJyVG9TdHIiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJTdHJpbmciLCJyZXBsYWNlIiwiaW5jbHVkZXMiLCJqb2luIiwiX3gzIiwiX3NuaWZmQ3N2U2NoZW1hIiwiX2NhbGxlZTMiLCJoZWFkZXJSb3ciLCJjc3ZDb250ZW50IiwiZGIiLCJjIiwiZmlsZU5hbWUiLCJyZXN1bHQiLCJzY2hlbWFSZXN1bHQiLCJjb2x1bW5zIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQ0IiwiYWNjdSIsInZhbHVlcyIsImdldER1Y2tEQiIsImNvbm5lY3QiLCJnZW5lcmF0ZUhhc2hJZCIsInJlZ2lzdGVyRmlsZVRleHQiLCJxdWVyeSIsInRvQXJyYXkiLCJ0b0pTT04iLCJDb2x1bW5zIiwiZ2V0IiwicHJvY2Vzc0dlb2pzb24iLCJub3JtYWxpemVkR2VvanNvbiIsIm5vcm1hbGl6ZSIsImZlYXR1cmVzIiwiZXJyb3IiLCJFcnJvciIsIkdVSURFU19GSUxFX0ZPUk1BVF9ET0MiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvY2Vzc29ycy9kYXRhLXByb2Nlc3Nvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBhcnJvdyBmcm9tICdhcGFjaGUtYXJyb3cnO1xuaW1wb3J0IG5vcm1hbGl6ZSBmcm9tICdAbWFwYm94L2dlb2pzb24tbm9ybWFsaXplJztcblxuaW1wb3J0IHtcbiAgZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUsXG4gIGdldEZpZWxkc0Zyb21EYXRhLFxuICBnZW5lcmF0ZUhhc2hJZCxcbiAgbm90TnVsbG9yVW5kZWZpbmVkXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7UHJvdG9EYXRhc2V0RmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBTExfRklFTERfVFlQRVMsIEdVSURFU19GSUxFX0ZPUk1BVF9ET0N9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7cHJvY2Vzc0tlcGxlcmdsSlNPTn0gZnJvbSAnQGtlcGxlci5nbC9wcm9jZXNzb3JzJztcblxuaW1wb3J0IHtnZXREdWNrREJ9IGZyb20gJy4uL2luaXQnO1xuXG5leHBvcnQgY29uc3QgQ1NWX05VTExTID0gL14obnVsbHxOVUxMfE51bGx8TmFOfFxcL058fCkkLztcblxudHlwZSBSb3dzQXNBcnJheSA9IGFueVtdW107XG50eXBlIFJvd3NBc09iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+W107XG50eXBlIFJvd0RhdGEgPSBSb3dzQXNBcnJheSB8IFJvd3NBc09iamVjdDtcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc29yUmVzdWx0ID0ge1xuICBjb2xzPzogYXJyb3cuVmVjdG9yW107XG4gIHJvd3M6IFJvd0RhdGE7XG4gIGZpZWxkczogUHJvdG9EYXRhc2V0RmllbGRbXTtcbn07XG5cbmVudW0gQ09MVU1OX1RZUEVTIHtcbiAgR0VPTUVUUlkgPSAnR0VPTUVUUlknLFxuICBCT09MRUFOID0gJ0JPT0xFQU4nLFxuICBJTlRFR0VSID0gJ0lOVEVHRVInLFxuICBGTE9BVCA9ICdGTE9BVCcsXG4gIFRJTUUgPSAnVElNRScsXG4gIERBVEUgPSAnREFURScsXG4gIFRJTUVTVEFNUCA9ICdUSU1FU1RBTVAnLFxuICBWQVJDSEFSID0gJ1ZBUkNIQVInXG59XG4vLyBAdHMtZXhwZWN0LWVycm9yIGh0dHBzOi8vZHVja2RiLm9yZy9kb2NzL2RhdGEvY3N2L2F1dG9fZGV0ZWN0aW9uLmh0bWwjdHlwZS1kZXRlY3Rpb25cbmNvbnN0IENPTFVNTl9UWVBFU19QUklPUklUSUVTID0gW1xuICAnR0VPTUVUUlknLFxuICAnQk9PTEVBTicsXG4gICdJTlRFR0VSJyxcbiAgJ0ZMT0FUJyxcbiAgJ1RJTUUnLFxuICAnREFURScsXG4gICdUSU1FU1RBTVAnLFxuICAnVkFSQ0hBUidcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2x1bW5UeXBlVG9GaWVsZFR5cGUoY29sdW1uVHlwZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIHN3aXRjaCAoY29sdW1uVHlwZSkge1xuICAgIGNhc2UgQ09MVU1OX1RZUEVTLkJPT0xFQU46XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW47XG4gICAgY2FzZSBDT0xVTU5fVFlQRVMuREFURTpcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuZGF0ZTtcbiAgICBjYXNlIENPTFVNTl9UWVBFUy5JTlRFR0VSOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyO1xuICAgIGNhc2UgQ09MVU1OX1RZUEVTLkZMT0FUOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5yZWFsO1xuICAgIGNhc2UgQ09MVU1OX1RZUEVTLlZBUkNIQVI6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLnN0cmluZztcbiAgICBjYXNlIENPTFVNTl9UWVBFUy5USU1FU1RBTVA6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcDtcbiAgICBjYXNlIENPTFVNTl9UWVBFUy5HRU9NRVRSWTpcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuZ2VvanNvbjtcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gaXMgdGhlcmUgYW55IG90aGVyIHR5cGUgd2UgZGlkbid0IGNvdmVyP1xuICAgICAgY29uc29sZS53YXJuKGBVbnN1cHBvcnRlZCBEdWNrREIgQ29sdW1uIHR5cGU6ICR7Y29sdW1uVHlwZX1gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZFR5cGVUb0NvbHVtblR5cGUoZmllbGRUeXBlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5ib29sZWFuOlxuICAgICAgcmV0dXJuIENPTFVNTl9UWVBFUy5CT09MRUFOO1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmRhdGU6XG4gICAgICByZXR1cm4gQ09MVU1OX1RZUEVTLkRBVEU7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuaW50ZWdlcjpcbiAgICAgIHJldHVybiBDT0xVTU5fVFlQRVMuSU5URUdFUjtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5yZWFsOlxuICAgICAgcmV0dXJuIENPTFVNTl9UWVBFUy5GTE9BVDtcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5zdHJpbmc6XG4gICAgICByZXR1cm4gQ09MVU1OX1RZUEVTLlZBUkNIQVI7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMudGltZXN0YW1wOlxuICAgICAgcmV0dXJuIENPTFVNTl9UWVBFUy5USU1FU1RBTVA7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuZ2VvanNvbjpcbiAgICAgIHJldHVybiBDT0xVTU5fVFlQRVMuR0VPTUVUUlk7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGlzIHRoZXJlIGFueSBvdGhlciB0eXBlIHdlIGRpZG4ndCBjb3Zlcj9cbiAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgRmllbGQgdHlwZSBmb3IgRHVja0RiOiAke2ZpZWxkVHlwZX1gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qXG4gKiBQcm9jZXNzIHVwbG9hZGVkIGV4cG9ydGVkIEtlcGxlcmdsIGpzb24gbWFwLlxuICogV2UgbmVlZCB0byBwb3B1bGF0ZSBmaWVsZCB3aXRoIHByb3BlciBEdWNrRGIgY29tcGF0aWJsZSB0eXBlLlxuICovXG4vLyBUT0RPOiBtZXJnZSB3aXRoIGxvZ2ljIGZyb20gcHJvY2Vzc0NzdlJvd09iamVjdC4gRGlmZmVyZW50IGZvcm1hdHM6IFtbXV0gdnMgW3t9XVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NLZXBsZXJnbEpTT05mb3JEdWNrRGIoXG4gIGtlcGxlckpzb25cbik6IFByb21pc2U8UmV0dXJuVHlwZTx0eXBlb2YgcHJvY2Vzc0tlcGxlcmdsSlNPTj4+IHtcbiAgY29uc3QgcmVzID0gcHJvY2Vzc0tlcGxlcmdsSlNPTihrZXBsZXJKc29uKTtcblxuICBjb25zdCBkYXRhc2V0cyA9IHJlcz8uZGF0YXNldHMgfHwgW107XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cykge1xuICAgIGNvbnN0IHJvd3NBbGwgPSBkYXRhc2V0LmRhdGEucm93cztcbiAgICBjb25zdCBmaWVsZHNBbGwgPSBkYXRhc2V0LmRhdGEuZmllbGRzO1xuXG4gICAgY29uc3QgaGVhZGVyID0gZmllbGRzQWxsLm1hcChmID0+IGYubmFtZSk7XG4gICAgY29uc3Qgc2FtcGxlID0gZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUoe2ZpZWxkczogaGVhZGVyLCByb3dzOiByb3dzQWxsfSk7XG5cbiAgICBjb25zdCBzY2hlbWEgPVxuICAgICAgc2FtcGxlLmxlbmd0aCA+IDBcbiAgICAgICAgPyBhd2FpdCBzbmlmZkNzdlNjaGVtYShzYW1wbGUpXG4gICAgICAgIDogZmllbGRzQWxsLnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgYWNjW2ZpZWxkLm5hbWVdID0gZmllbGRUeXBlVG9Db2x1bW5UeXBlKGZpZWxkLnR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9LCB7fSk7XG4gICAgY29uc3QgZmllbGRzVXBkID0gY29uc29saWRhdGVGaWVsZFR5cGVzKGRhdGFzZXQuZGF0YS5maWVsZHMsIHNjaGVtYSk7XG5cbiAgICBkYXRhc2V0LmRhdGEuZmllbGRzID0gZmllbGRzQWxsLm1hcCgoZiwgaSkgPT4ge1xuICAgICAgcmV0dXJuIHsuLi5maWVsZHNVcGRbaV0sIC4uLmZ9O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlcztcbn1cblxuLypcbiAqIFByb2Nlc3MgdXBsb2FkZWQgY3N2IHJldHVybmVkIGJ5IGxvYWRlcnMuZ2wgYXMgcm93IG9iamVjdCBhbmQgc3RyaW5nIHZhbHVlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzQ3N2Um93T2JqZWN0KFxuICByYXdEYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPltdXG4pOiBQcm9taXNlPFByb2Nlc3NvclJlc3VsdD4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkocmF3RGF0YSkgfHwgIXJhd0RhdGEubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpZWxkczogW10sXG4gICAgICByb3dzOiBbXVxuICAgIH07XG4gIH1cblxuICBjb25zdCBoZWFkZXIgPSBPYmplY3Qua2V5cyhyYXdEYXRhWzBdKTsgLy8gW2xhdCwgbG5nLCB2YWx1ZV1cblxuICAvLyByb3cgb2JqZWN0IGNhbiBzdGlsbCBjb250YWluIHZhbHVlcyBsaWtlIGBOdWxsYCBvciBgTi9BYFxuICBjbGVhblVwRmFsc3lDc3ZWYWx1ZShyYXdEYXRhKTtcbiAgY29uc3Qgc2FtcGxlID0gZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUoe2ZpZWxkczogaGVhZGVyLCByb3dzOiByYXdEYXRhfSk7XG4gIC8vIGFkZCBzYW1wbGUgZGF0YSB0byBkdWNrZGIgYW5kIGdldCBzY2hlbWFcbiAgY29uc3Qgc2NoZW1hID0gYXdhaXQgc25pZmZDc3ZTY2hlbWEoc2FtcGxlKTtcblxuICBjb25zdCBmaWVsZHNXQW5hbHl6ZXJUeXBlID0gZ2V0RmllbGRzRnJvbURhdGEoc2FtcGxlLCBoZWFkZXIpO1xuXG4gIGNvbnN0IGZpZWxkcyA9IGNvbnNvbGlkYXRlRmllbGRUeXBlcyhmaWVsZHNXQW5hbHl6ZXJUeXBlLCBzY2hlbWEpO1xuXG4gIHJldHVybiB7cm93czogcmF3RGF0YSwgZmllbGRzfTtcbn1cblxuZnVuY3Rpb24gY2xlYW5VcEZhbHN5Q3N2VmFsdWUocm93czogUm93RGF0YSk6IHZvaWQge1xuICBjb25zdCByZSA9IG5ldyBSZWdFeHAoQ1NWX05VTExTLCAnZycpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICBPYmplY3Qua2V5cyhyb3dzW2ldKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAvLyBoZXJlIHdlIHBhcnNlIGVtcHR5IGRhdGEgYXMgbnVsbFxuICAgICAgaWYgKHR5cGVvZiByb3dzW2ldW2tleV0gPT09ICdzdHJpbmcnICYmIChyb3dzW2ldW2tleV0gYXMgc3RyaW5nKS5tYXRjaChyZSkpIHtcbiAgICAgICAgcm93c1tpXVtrZXldID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG4vLyBhbGlnbiB0eXBlIGFuYWx5emVyIHR5cGVzIHdpdGggRHVja0RCIGNzdiBhdXRvIGRldGVjdGVkIGNvbHVtbiB0eXBlc1xuZnVuY3Rpb24gY29uc29saWRhdGVGaWVsZFR5cGVzKGZpZWxkcywgc2NoZW1hKSB7XG4gIHJldHVybiBmaWVsZHMubWFwKGZpZWxkID0+IHtcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGQubmFtZTtcblxuICAgIGNvbnN0IGRldGVjdGVkQ29sdW1uVHlwZSA9IHNjaGVtYVtjb2x1bW5OYW1lXTtcblxuICAgIC8vIFRPRE8gY29sdW1uVHlwZVRvRmllbGRUeXBlIHRyYW5mb3JtcyBkZXRlY3RlZCB0aW1lc3RhbXBzIHRvIHN0cmluZyxcbiAgICAvLyBjb21wbGV0ZWx5IGJyZWFraW5nIHRpbWUgZmlsdGVyIGxvZ2ljLlxuICAgIC8vIGNvbnN0IGZpZWxkVHlwZSA9IGNvbHVtblR5cGVUb0ZpZWxkVHlwZShkZXRlY3RlZENvbHVtblR5cGUpIHx8IGZpZWxkLnR5cGU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmllbGQsXG4gICAgICAvLyB0eXBlOiBmaWVsZFR5cGUsXG4gICAgICBkdWNrREJDb2x1bW5UeXBlOiBkZXRlY3RlZENvbHVtblR5cGVcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9DU1ZSb3cocm93OiB1bmtub3duW10pOiBzdHJpbmcge1xuICByZXR1cm4gYCR7cm93XG4gICAgLm1hcChyID0+IHtcbiAgICAgIGNvbnN0IHJUb1N0ciA9IG5vdE51bGxvclVuZGVmaW5lZChyKSA/IFN0cmluZyhyKS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykgOiAnJztcbiAgICAgIHJldHVybiByVG9TdHIuaW5jbHVkZXMoJywnKSA/IGBcIiR7clRvU3RyfVwiYCA6IHJUb1N0cjtcbiAgICB9KVxuICAgIC5qb2luKCcsJyl9XFxuYDtcbn1cblxuLy8gVXNlIER1Y2NrREIgdG8gZGV0ZWN0IGNzdiBjb2x1bW4gc2NoZW1hXG5hc3luYyBmdW5jdGlvbiBzbmlmZkNzdlNjaGVtYShzYW1wbGU6IFJvd0RhdGEpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHNhbXBsZSkgfHwgc2FtcGxlLmxlbmd0aCA8IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgaGVhZGVyUm93ID0gdG9DU1ZSb3coT2JqZWN0LmtleXMoc2FtcGxlWzBdKSk7XG5cbiAgY29uc3QgY3N2Q29udGVudCA9IChzYW1wbGUgYXMgKGFueVtdIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW10pLnJlZHVjZShcbiAgICAoYWNjdTogc3RyaW5nLCByb3cpID0+IGAke2FjY3V9JHt0b0NTVlJvdyhPYmplY3QudmFsdWVzKHJvdykpfWAsXG4gICAgaGVhZGVyUm93XG4gICk7XG5cbiAgY29uc3QgZGIgPSBhd2FpdCBnZXREdWNrREIoKTtcbiAgY29uc3QgYyA9IGF3YWl0IGRiLmNvbm5lY3QoKTtcblxuICBjb25zdCBmaWxlTmFtZSA9IGdlbmVyYXRlSGFzaElkKCk7XG4gIGF3YWl0IGRiLnJlZ2lzdGVyRmlsZVRleHQoYCR7ZmlsZU5hbWV9LSR7Z2VuZXJhdGVIYXNoSWR9LmNzdmAsIGNzdkNvbnRlbnQpO1xuXG4gIC8vIGh0dHBzOi8vZHVja2RiLm9yZy9kb2NzL2RhdGEvY3N2L2F1dG9fZGV0ZWN0aW9uLmh0bWxcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYy5xdWVyeShgXG4gICAgICAgIEZST00gc25pZmZfY3N2KCcke2ZpbGVOYW1lfS0ke2dlbmVyYXRlSGFzaElkfS5jc3YnLCBcbiAgICAgICAgc2FtcGxlX3NpemUgPSA1MDAsXG4gICAgICAgIGF1dG9fdHlwZV9jYW5kaWRhdGVzID0gWydGTE9BVCcsICdJTlRFR0VSJywgJ1RJTUVTVEFNUCcsICdEQVRFJywgJ1RJTUUnLCAnVkFSQ0hBUicsICdCT09MRUFOJ10pO1xuICAgIGApO1xuXG4gIGNvbnN0IHNjaGVtYVJlc3VsdCA9IHJlc3VsdC50b0FycmF5KCkubWFwKHJvdyA9PiByb3cudG9KU09OKCkpO1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBzY2hlbWFSZXN1bHRbMF0uQ29sdW1ucztcbiAgY29uc3Qgc2NoZW1hID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgIHNjaGVtYVtjb2x1bW5zLmdldChpKS5uYW1lXSA9IGNvbHVtbnMuZ2V0KGkpLnR5cGU7XG4gIH1cblxuICByZXR1cm4gc2NoZW1hO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc0dlb2pzb24ocmF3RGF0YTogdW5rbm93bik6IFByb2Nlc3NvclJlc3VsdCB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRHZW9qc29uID0gbm9ybWFsaXplKHJhd0RhdGEpO1xuXG4gIGlmICghbm9ybWFsaXplZEdlb2pzb24gfHwgIUFycmF5LmlzQXJyYXkobm9ybWFsaXplZEdlb2pzb24uZmVhdHVyZXMpKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICBgUmVhZCBGaWxlIEZhaWxlZDogRmlsZSBpcyBub3QgYSB2YWxpZCBHZW9KU09OLiBSZWFkIG1vcmUgYWJvdXQgW3N1cHBvcnRlZCBmaWxlIGZvcm1hdF0oJHtHVUlERVNfRklMRV9GT1JNQVRfRE9DfSlgXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgICAvLyBmYWlsIHRvIG5vcm1hbGl6ZSBnZW9qc29uXG4gIH1cbiAgLy8gY29uc29sZS5sb2cobm9ybWFsaXplZEdlb2pzb24pO1xuXG4gIHJldHVybiB7XG4gICAgcm93czogbm9ybWFsaXplZEdlb2pzb24sXG4gICAgLy8gVE9ETyBnZXQgZmllbGRzIHRvIHByZXNlcnZlIGZpZWxkIG5hbWVzP1xuICAgIGZpZWxkczogW11cbiAgfTtcbn1cbiJd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LE1BQUEsQ0FBSTRGLDJCQUFjLFdBQVFiLFVBQVUsQ0FBQztRQUFBO1VBQUFRLFNBQUEsQ0FBQXJJLElBQUE7VUFBQSxPQUdyRCtILENBQUMsQ0FBQ2EsS0FBSyw4QkFBQTlGLE1BQUEsQ0FDSmtGLFFBQVEsT0FBQWxGLE1BQUEsQ0FBSTRGLDJCQUFjLHdKQUcvQyxDQUFDO1FBQUE7VUFKRVQsTUFBTSxHQUFBSSxTQUFBLENBQUFsRCxJQUFBO1VBTU4rQyxZQUFZLEdBQUdELE1BQU0sQ0FBQ1ksT0FBTyxDQUFDLENBQUMsQ0FBQzlELEdBQUcsQ0FBQyxVQUFBbUMsR0FBRztZQUFBLE9BQUlBLEdBQUcsQ0FBQzRCLE1BQU0sQ0FBQyxDQUFDO1VBQUEsRUFBQztVQUV4RFgsT0FBTyxHQUFHRCxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUNhLE9BQU87VUFDakN2RSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1VBQ2pCLEtBQVNpQixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUcwQyxPQUFPLENBQUNoSixNQUFNLEVBQUVzRyxDQUFDLEVBQUUsRUFBRTtZQUN2Q2pCLE1BQU0sQ0FBQzJELE9BQU8sQ0FBQ2EsR0FBRyxDQUFDdkQsQ0FBQyxDQUFDLENBQUNwRixJQUFJLENBQUMsR0FBRzhILE9BQU8sQ0FBQ2EsR0FBRyxDQUFDdkQsQ0FBQyxDQUFDLENBQUNGLElBQUk7VUFDbkQ7VUFBQyxPQUFBOEMsU0FBQSxDQUFBdkMsTUFBQSxXQUVNdEIsTUFBTTtRQUFBO1FBQUE7VUFBQSxPQUFBNkQsU0FBQSxDQUFBM0MsSUFBQTtNQUFBO0lBQUEsR0FBQWlDLFFBQUE7RUFBQSxDQUNkO0VBQUEsT0FBQUQsZUFBQSxDQUFBMUcsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFFTSxTQUFTK0gsY0FBY0EsQ0FBQzlDLE9BQWdCLEVBQW1CO0VBQ2hFLElBQU0rQyxpQkFBaUIsR0FBRyxJQUFBQyw0QkFBUyxFQUFDaEQsT0FBTyxDQUFDO0VBRTVDLElBQUksQ0FBQytDLGlCQUFpQixJQUFJLENBQUNsSyxLQUFLLENBQUNDLE9BQU8sQ0FBQ2lLLGlCQUFpQixDQUFDRSxRQUFRLENBQUMsRUFBRTtJQUNwRSxJQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSywyRkFBQXhHLE1BQUEsQ0FDcUV5RyxpQ0FBc0IsTUFDbEgsQ0FBQztJQUNELE1BQU1GLEtBQUs7SUFDWDtFQUNGO0VBQ0E7O0VBRUEsT0FBTztJQUNMeEUsSUFBSSxFQUFFcUUsaUJBQWlCO0lBQ3ZCO0lBQ0FwRSxNQUFNLEVBQUU7RUFDVixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,37 @@
1
+ import * as arrow from 'apache-arrow';
2
+ import { AsyncDuckDB, AsyncDuckDBConnection } from '@duckdb/duckdb-wasm';
3
+ import { KeplerTable } from '@kepler.gl/table';
4
+ import { ProcessorResult } from '../processors/data-processor';
5
+ declare type ImportDataToDuckProps = {
6
+ data: ProcessorResult;
7
+ db: AsyncDuckDB;
8
+ c: AsyncDuckDBConnection;
9
+ };
10
+ export declare class KeplerGlDuckDbTable extends KeplerTable {
11
+ readonly id: string;
12
+ label: string;
13
+ type: string;
14
+ metadata: Record<string, any>;
15
+ constructor(props: any);
16
+ importRowData({ data, db, c }: ImportDataToDuckProps): Promise<void>;
17
+ importGeoJsonData({ data, db, c }: ImportDataToDuckProps): Promise<void>;
18
+ importArrowData({ data, db, c }: ImportDataToDuckProps): Promise<void>;
19
+ /**
20
+ * Creates a table from data, returns an arrow table with the data
21
+ * @param data
22
+ * @returns {Promise<{fields: Field[], cols: any[]}>}
23
+ */
24
+ protected createTableAndGetArrow(data: any): Promise<{
25
+ fields: any[];
26
+ cols: arrow.Vector[];
27
+ }>;
28
+ importData({ data }: {
29
+ data: ProcessorResult;
30
+ }): Promise<void>;
31
+ update(data: any): Promise<any>;
32
+ static getFileProcessor: (data: any, inputFormat?: string) => {
33
+ processor: any;
34
+ format: any;
35
+ };
36
+ }
37
+ export {};