@kepler.gl/duckdb 3.3.0-alpha.2 → 3.3.0-alpha.20
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/cjs/adapters/duckdb-wasm-adapter.js +258 -0
- package/dist/{components → cjs/components}/index.js +1 -1
- package/dist/cjs/components/monaco-editor.js +174 -0
- package/dist/cjs/components/preview-data-panel.js +127 -0
- package/dist/cjs/components/schema-panel.js +170 -0
- package/dist/cjs/components/sql-panel.js +395 -0
- package/dist/cjs/components/tree.js +90 -0
- package/dist/{index.js → cjs/index.js} +1 -1
- package/dist/{plugin.js → cjs/plugin.js} +2 -2
- package/dist/cjs/processors/data-processor.js +353 -0
- package/dist/cjs/table/duckdb-table-utils.js +675 -0
- package/dist/cjs/table/duckdb-table.js +553 -0
- package/dist/{table → cjs/table}/index.js +1 -1
- package/dist/cjs/utils/perf.js +46 -0
- package/dist/esm/adapters/duckdb-wasm-adapter.js +251 -0
- package/dist/esm/components/index.js +9 -0
- package/dist/esm/components/monaco-editor.js +167 -0
- package/dist/esm/components/preview-data-panel.js +120 -0
- package/dist/esm/components/schema-panel.js +164 -0
- package/dist/esm/components/sql-panel.js +388 -0
- package/dist/esm/components/tree.js +82 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/plugin.js +22 -0
- package/dist/esm/processors/data-processor.js +342 -0
- package/dist/esm/table/duckdb-table-utils.js +650 -0
- package/dist/esm/table/duckdb-table.js +548 -0
- package/dist/esm/table/index.js +5 -0
- package/dist/esm/utils/perf.js +40 -0
- package/dist/processors/data-processor.d.ts +2 -0
- package/dist/table/duckdb-table-utils.d.ts +11 -2
- package/dist/table/duckdb-table.d.ts +7 -0
- package/package.json +25 -22
- package/dist/adapters/duckdb-wasm-adapter.js +0 -259
- package/dist/components/monaco-editor.js +0 -175
- package/dist/components/preview-data-panel.js +0 -128
- package/dist/components/schema-panel.js +0 -171
- package/dist/components/sql-panel.js +0 -396
- package/dist/components/tree.js +0 -91
- package/dist/processors/data-processor.js +0 -353
- package/dist/table/duckdb-table-utils.js +0 -669
- package/dist/table/duckdb-table.js +0 -480
- package/dist/utils/perf.js +0 -46
|
@@ -14,4 +14,4 @@ Object.keys(_duckdbTableUtils).forEach(function (key) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZHVja2RiVGFibGVVdGlscyIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuZXhwb3J0ICogZnJvbSAnLi9kdWNrZGItdGFibGUtdXRpbHMnO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUdBLElBQUFBLGlCQUFBLEdBQUFDLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFILGlCQUFBLEVBQUFJLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFMLGlCQUFBLENBQUFLLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUFULGlCQUFBLENBQUFLLEdBQUE7SUFBQTtFQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGZ1JlZCIsIlJlc2V0Q29sb3JzIiwiZm9ybWF0RWxhcHNlZFRpbWUiLCJsYWJlbCIsInN0YXJ0IiwiZW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZW5kVGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwiZWxhcHNlZCIsInRpbWVTdHJpbmciLCJjb25jYXQiLCJ0b0ZpeGVkIiwibWVzc2FnZSIsImxvZ0VsYXBzZWRUaW1lIiwiZXhwb3J0cyIsImNvbnNvbGUiLCJkZWJ1ZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wZXJmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGdpdEBnaXRodWIuY29tOmhvbGRlbm1hdHQvZHVja2RiLXdhc20ta2l0LmdpdFxuY29uc3QgRmdSZWQgPSAnXFx4MWJbMzFtJztcbmNvbnN0IFJlc2V0Q29sb3JzID0gJ1xceDFiWzBtJztcblxuLyoqXG4gKiBGb3JtYXQgYSB0aW1lIGludGVydmFsIGJldHdlZW4gc3RhcnQvZW5kIHRpbWVzdGFtcHMuXG4gKlxuICogSWYgbm8gZW5kIHRpbWUgaXMgZ2l2ZW4sIHVzZSB0aGUgY3VycmVudCB0aW1lLlxuICovXG5jb25zdCBmb3JtYXRFbGFwc2VkVGltZSA9IChcbiAgbGFiZWw6IHN0cmluZyxcbiAgc3RhcnQ6IG51bWJlcixcbiAgZW5kOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGVuZFRpbWUgPSBlbmQgPz8gcGVyZm9ybWFuY2Uubm93KCk7XG4gIGNvbnN0IGVsYXBzZWQgPSBlbmRUaW1lIC0gc3RhcnQ7XG5cbiAgbGV0IHRpbWVTdHJpbmc6IHN0cmluZztcbiAgc3dpdGNoICh0cnVlKSB7XG4gICAgY2FzZSBlbGFwc2VkID49IDEwMDA6XG4gICAgICB0aW1lU3RyaW5nID0gYCR7KGVsYXBzZWQgLyAxMDAwKS50b0ZpeGVkKDEpfXNgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBlbGFwc2VkID49IDE6XG4gICAgICB0aW1lU3RyaW5nID0gYCR7ZWxhcHNlZC50b0ZpeGVkKDApfW1zYDtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aW1lU3RyaW5nID0gYCR7ZWxhcHNlZC50b0ZpeGVkKDMpfW1zYDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IGAke0ZnUmVkfVske3RpbWVTdHJpbmd9XSAke1Jlc2V0Q29sb3JzfSR7bGFiZWx9YDtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG4vKipcbiAqIFByaW50IHRoZSBlbGFwc2VkIHRpbWUgdG8gY29uc29sZS5kZWJ1Zy5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ0VsYXBzZWRUaW1lID0gKFxuICBsYWJlbDogc3RyaW5nLFxuICBzdGFydDogbnVtYmVyLFxuICBlbmQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuKSA9PiB7XG4gIGNvbnNvbGUuZGVidWcoZm9ybWF0RWxhcHNlZFRpbWUobGFiZWwsIHN0YXJ0LCBlbmQpKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQSxJQUFNQSxLQUFLLEdBQUcsVUFBVTtBQUN4QixJQUFNQyxXQUFXLEdBQUcsU0FBUzs7QUFFN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQ3JCQyxLQUFhLEVBQ2JDLEtBQWEsRUFFRjtFQUFBLElBRFhDLEdBQXVCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHRSxTQUFTO0VBRW5DLElBQU1DLE9BQU8sR0FBR0osR0FBRyxhQUFIQSxHQUFHLGNBQUhBLEdBQUcsR0FBSUssV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQztFQUN4QyxJQUFNQyxPQUFPLEdBQUdILE9BQU8sR0FBR0wsS0FBSztFQUUvQixJQUFJUyxVQUFrQjtFQUN0QixRQUFRLElBQUk7SUFDVixLQUFLRCxPQUFPLElBQUksSUFBSTtNQUNsQkMsVUFBVSxNQUFBQyxNQUFBLENBQU0sQ0FBQ0YsT0FBTyxHQUFHLElBQUksRUFBRUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFHO01BQzlDO0lBQ0YsS0FBS0gsT0FBTyxJQUFJLENBQUM7TUFDZkMsVUFBVSxNQUFBQyxNQUFBLENBQU1GLE9BQU8sQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFJO01BQ3RDO0lBQ0Y7TUFDRUYsVUFBVSxNQUFBQyxNQUFBLENBQU1GLE9BQU8sQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFJO01BQ3RDO0VBQ0o7RUFFQSxJQUFNQyxPQUFPLE1BQUFGLE1BQUEsQ0FBTWQsS0FBSyxPQUFBYyxNQUFBLENBQUlELFVBQVUsUUFBQUMsTUFBQSxDQUFLYixXQUFXLEVBQUFhLE1BQUEsQ0FBR1gsS0FBSyxDQUFFO0VBQ2hFLE9BQU9hLE9BQU87QUFDaEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDTyxJQUFNQyxjQUFjLEdBQUFDLE9BQUEsQ0FBQUQsY0FBQSxHQUFHLFNBQWpCQSxjQUFjQSxDQUN6QmQsS0FBYSxFQUNiQyxLQUFhLEVBRVY7RUFBQSxJQURIQyxHQUF1QixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBR0UsU0FBUztFQUVuQ1csT0FBTyxDQUFDQyxLQUFLLENBQUNsQixpQkFBaUIsQ0FBQ0MsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
6
|
+
// SPDX-License-Identifier: MIT
|
|
7
|
+
// Copyright contributors to the kepler.gl project
|
|
8
|
+
|
|
9
|
+
import * as duckdb from '@duckdb/duckdb-wasm';
|
|
10
|
+
import { AsyncDuckDB } from '@duckdb/duckdb-wasm';
|
|
11
|
+
import { logElapsedTime } from '../utils/perf';
|
|
12
|
+
var Connection = /*#__PURE__*/function () {
|
|
13
|
+
function Connection(connection) {
|
|
14
|
+
_classCallCheck(this, Connection);
|
|
15
|
+
_defineProperty(this, "connection", void 0);
|
|
16
|
+
this.connection = connection;
|
|
17
|
+
}
|
|
18
|
+
return _createClass(Connection, [{
|
|
19
|
+
key: "query",
|
|
20
|
+
value: function () {
|
|
21
|
+
var _query = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(statement) {
|
|
22
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
23
|
+
while (1) switch (_context.prev = _context.next) {
|
|
24
|
+
case 0:
|
|
25
|
+
return _context.abrupt("return", this.connection.query(statement));
|
|
26
|
+
case 1:
|
|
27
|
+
case "end":
|
|
28
|
+
return _context.stop();
|
|
29
|
+
}
|
|
30
|
+
}, _callee, this);
|
|
31
|
+
}));
|
|
32
|
+
function query(_x) {
|
|
33
|
+
return _query.apply(this, arguments);
|
|
34
|
+
}
|
|
35
|
+
return query;
|
|
36
|
+
}()
|
|
37
|
+
}, {
|
|
38
|
+
key: "insertArrowTable",
|
|
39
|
+
value: function () {
|
|
40
|
+
var _insertArrowTable = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(arrowTable, params) {
|
|
41
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
42
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
43
|
+
case 0:
|
|
44
|
+
_context2.next = 2;
|
|
45
|
+
return this.connection.insertArrowTable(arrowTable, params);
|
|
46
|
+
case 2:
|
|
47
|
+
case "end":
|
|
48
|
+
return _context2.stop();
|
|
49
|
+
}
|
|
50
|
+
}, _callee2, this);
|
|
51
|
+
}));
|
|
52
|
+
function insertArrowTable(_x2, _x3) {
|
|
53
|
+
return _insertArrowTable.apply(this, arguments);
|
|
54
|
+
}
|
|
55
|
+
return insertArrowTable;
|
|
56
|
+
}()
|
|
57
|
+
}, {
|
|
58
|
+
key: "close",
|
|
59
|
+
value: function () {
|
|
60
|
+
var _close = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
61
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
62
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
63
|
+
case 0:
|
|
64
|
+
_context3.next = 2;
|
|
65
|
+
return this.connection.close();
|
|
66
|
+
case 2:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context3.stop();
|
|
69
|
+
}
|
|
70
|
+
}, _callee3, this);
|
|
71
|
+
}));
|
|
72
|
+
function close() {
|
|
73
|
+
return _close.apply(this, arguments);
|
|
74
|
+
}
|
|
75
|
+
return close;
|
|
76
|
+
}()
|
|
77
|
+
}]);
|
|
78
|
+
}();
|
|
79
|
+
export var DuckDBWasmAdapter = /*#__PURE__*/function () {
|
|
80
|
+
function DuckDBWasmAdapter(options) {
|
|
81
|
+
_classCallCheck(this, DuckDBWasmAdapter);
|
|
82
|
+
_defineProperty(this, "duckDB", void 0);
|
|
83
|
+
// pass existing AsyncDuckDB object created elsewhere
|
|
84
|
+
if (options instanceof Promise || options instanceof AsyncDuckDB) {
|
|
85
|
+
this.duckDB = options;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// or create a new AsyncDuckDB object
|
|
90
|
+
var _ref = options || {},
|
|
91
|
+
_ref$debug = _ref.debug,
|
|
92
|
+
debug = _ref$debug === void 0 ? false : _ref$debug,
|
|
93
|
+
config = _ref.config;
|
|
94
|
+
this.duckDB = initializeDuckDbWasm(config, debug);
|
|
95
|
+
}
|
|
96
|
+
return _createClass(DuckDBWasmAdapter, [{
|
|
97
|
+
key: "connect",
|
|
98
|
+
value: function () {
|
|
99
|
+
var _connect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
100
|
+
var db, c;
|
|
101
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
102
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
103
|
+
case 0:
|
|
104
|
+
_context4.next = 2;
|
|
105
|
+
return this.duckDB;
|
|
106
|
+
case 2:
|
|
107
|
+
db = _context4.sent;
|
|
108
|
+
_context4.next = 5;
|
|
109
|
+
return db.connect();
|
|
110
|
+
case 5:
|
|
111
|
+
c = _context4.sent;
|
|
112
|
+
return _context4.abrupt("return", new Connection(c));
|
|
113
|
+
case 7:
|
|
114
|
+
case "end":
|
|
115
|
+
return _context4.stop();
|
|
116
|
+
}
|
|
117
|
+
}, _callee4, this);
|
|
118
|
+
}));
|
|
119
|
+
function connect() {
|
|
120
|
+
return _connect.apply(this, arguments);
|
|
121
|
+
}
|
|
122
|
+
return connect;
|
|
123
|
+
}()
|
|
124
|
+
}, {
|
|
125
|
+
key: "registerFileText",
|
|
126
|
+
value: function () {
|
|
127
|
+
var _registerFileText = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(filename, content) {
|
|
128
|
+
var db;
|
|
129
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
130
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
131
|
+
case 0:
|
|
132
|
+
_context5.next = 2;
|
|
133
|
+
return this.duckDB;
|
|
134
|
+
case 2:
|
|
135
|
+
db = _context5.sent;
|
|
136
|
+
_context5.next = 5;
|
|
137
|
+
return db.registerFileText(filename, content);
|
|
138
|
+
case 5:
|
|
139
|
+
case "end":
|
|
140
|
+
return _context5.stop();
|
|
141
|
+
}
|
|
142
|
+
}, _callee5, this);
|
|
143
|
+
}));
|
|
144
|
+
function registerFileText(_x4, _x5) {
|
|
145
|
+
return _registerFileText.apply(this, arguments);
|
|
146
|
+
}
|
|
147
|
+
return registerFileText;
|
|
148
|
+
}()
|
|
149
|
+
}, {
|
|
150
|
+
key: "registerFileHandle",
|
|
151
|
+
value: function () {
|
|
152
|
+
var _registerFileHandle = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(name, handle, protocol, directIO) {
|
|
153
|
+
var db;
|
|
154
|
+
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
155
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
156
|
+
case 0:
|
|
157
|
+
_context6.next = 2;
|
|
158
|
+
return this.duckDB;
|
|
159
|
+
case 2:
|
|
160
|
+
db = _context6.sent;
|
|
161
|
+
_context6.next = 5;
|
|
162
|
+
return db.registerFileHandle(name, handle, protocol, directIO);
|
|
163
|
+
case 5:
|
|
164
|
+
case "end":
|
|
165
|
+
return _context6.stop();
|
|
166
|
+
}
|
|
167
|
+
}, _callee6, this);
|
|
168
|
+
}));
|
|
169
|
+
function registerFileHandle(_x6, _x7, _x8, _x9) {
|
|
170
|
+
return _registerFileHandle.apply(this, arguments);
|
|
171
|
+
}
|
|
172
|
+
return registerFileHandle;
|
|
173
|
+
}()
|
|
174
|
+
}]);
|
|
175
|
+
}();
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Initialize DuckDB with a browser-specific Wasm bundle.
|
|
179
|
+
*/
|
|
180
|
+
var initializeDuckDbWasm = /*#__PURE__*/function () {
|
|
181
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(config, debug) {
|
|
182
|
+
var start, JSDELIVR_BUNDLES, bundle, worker_url, worker, logger, db, res, buffer, fileNameMatch;
|
|
183
|
+
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
184
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
185
|
+
case 0:
|
|
186
|
+
start = performance.now(); // Select a bundle based on browser checks
|
|
187
|
+
JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles();
|
|
188
|
+
_context7.next = 4;
|
|
189
|
+
return duckdb.selectBundle(JSDELIVR_BUNDLES);
|
|
190
|
+
case 4:
|
|
191
|
+
bundle = _context7.sent;
|
|
192
|
+
if (bundle.mainWorker) {
|
|
193
|
+
_context7.next = 7;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
throw new Error('Failed to initialize DuckDB');
|
|
197
|
+
case 7:
|
|
198
|
+
worker_url = URL.createObjectURL(new Blob(["importScripts(\"".concat(bundle.mainWorker, "\");")], {
|
|
199
|
+
type: 'text/javascript'
|
|
200
|
+
})); // Instantiate the async version of DuckDB-wasm
|
|
201
|
+
worker = new Worker(worker_url);
|
|
202
|
+
logger = debug ? new duckdb.ConsoleLogger() : new duckdb.VoidLogger();
|
|
203
|
+
db = new AsyncDuckDB(logger, worker);
|
|
204
|
+
_context7.next = 13;
|
|
205
|
+
return db.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
206
|
+
case 13:
|
|
207
|
+
URL.revokeObjectURL(worker_url);
|
|
208
|
+
if (!config) {
|
|
209
|
+
_context7.next = 28;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
if (!config.path) {
|
|
213
|
+
_context7.next = 26;
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
_context7.next = 18;
|
|
217
|
+
return fetch(config.path);
|
|
218
|
+
case 18:
|
|
219
|
+
res = _context7.sent;
|
|
220
|
+
_context7.next = 21;
|
|
221
|
+
return res.arrayBuffer();
|
|
222
|
+
case 21:
|
|
223
|
+
buffer = _context7.sent;
|
|
224
|
+
fileNameMatch = config.path.match(/[^/]*$/);
|
|
225
|
+
if (fileNameMatch) {
|
|
226
|
+
config.path = fileNameMatch[0];
|
|
227
|
+
}
|
|
228
|
+
_context7.next = 26;
|
|
229
|
+
return db.registerFileBuffer(config.path, new Uint8Array(buffer));
|
|
230
|
+
case 26:
|
|
231
|
+
_context7.next = 28;
|
|
232
|
+
return db.open(config);
|
|
233
|
+
case 28:
|
|
234
|
+
if (debug) {
|
|
235
|
+
logElapsedTime('DuckDB initialized', start);
|
|
236
|
+
if (config) {
|
|
237
|
+
console.debug("DuckDbConfig: ".concat(JSON.stringify(config, null, 2)));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return _context7.abrupt("return", db);
|
|
241
|
+
case 30:
|
|
242
|
+
case "end":
|
|
243
|
+
return _context7.stop();
|
|
244
|
+
}
|
|
245
|
+
}, _callee7);
|
|
246
|
+
}));
|
|
247
|
+
return function initializeDuckDbWasm(_x0, _x1) {
|
|
248
|
+
return _ref2.apply(this, arguments);
|
|
249
|
+
};
|
|
250
|
+
}();
|
|
251
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkdWNrZGIiLCJBc3luY0R1Y2tEQiIsImxvZ0VsYXBzZWRUaW1lIiwiQ29ubmVjdGlvbiIsImNvbm5lY3Rpb24iLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsIl9xdWVyeSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwic3RhdGVtZW50Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInF1ZXJ5Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfaW5zZXJ0QXJyb3dUYWJsZSIsIl9jYWxsZWUyIiwiYXJyb3dUYWJsZSIsInBhcmFtcyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImluc2VydEFycm93VGFibGUiLCJfeDIiLCJfeDMiLCJfY2xvc2UiLCJfY2FsbGVlMyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImNsb3NlIiwiRHVja0RCV2FzbUFkYXB0ZXIiLCJvcHRpb25zIiwiUHJvbWlzZSIsImR1Y2tEQiIsIl9yZWYiLCJfcmVmJGRlYnVnIiwiZGVidWciLCJjb25maWciLCJpbml0aWFsaXplRHVja0RiV2FzbSIsIl9jb25uZWN0IiwiX2NhbGxlZTQiLCJkYiIsImMiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJzZW50IiwiY29ubmVjdCIsIl9yZWdpc3RlckZpbGVUZXh0IiwiX2NhbGxlZTUiLCJmaWxlbmFtZSIsImNvbnRlbnQiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJyZWdpc3RlckZpbGVUZXh0IiwiX3g0IiwiX3g1IiwiX3JlZ2lzdGVyRmlsZUhhbmRsZSIsIl9jYWxsZWU2IiwibmFtZSIsImhhbmRsZSIsInByb3RvY29sIiwiZGlyZWN0SU8iLCJfY2FsbGVlNiQiLCJfY29udGV4dDYiLCJyZWdpc3RlckZpbGVIYW5kbGUiLCJfeDYiLCJfeDciLCJfeDgiLCJfeDkiLCJfcmVmMiIsIl9jYWxsZWU3Iiwic3RhcnQiLCJKU0RFTElWUl9CVU5ETEVTIiwiYnVuZGxlIiwid29ya2VyX3VybCIsIndvcmtlciIsImxvZ2dlciIsInJlcyIsImJ1ZmZlciIsImZpbGVOYW1lTWF0Y2giLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJwZXJmb3JtYW5jZSIsIm5vdyIsImdldEpzRGVsaXZyQnVuZGxlcyIsInNlbGVjdEJ1bmRsZSIsIm1haW5Xb3JrZXIiLCJFcnJvciIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsIkJsb2IiLCJjb25jYXQiLCJ0eXBlIiwiV29ya2VyIiwiQ29uc29sZUxvZ2dlciIsIlZvaWRMb2dnZXIiLCJpbnN0YW50aWF0ZSIsIm1haW5Nb2R1bGUiLCJwdGhyZWFkV29ya2VyIiwicmV2b2tlT2JqZWN0VVJMIiwicGF0aCIsImZldGNoIiwiYXJyYXlCdWZmZXIiLCJtYXRjaCIsInJlZ2lzdGVyRmlsZUJ1ZmZlciIsIlVpbnQ4QXJyYXkiLCJvcGVuIiwiY29uc29sZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJfeDAiLCJfeDEiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvZHVja2RiLXdhc20tYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBhcnJvdyBmcm9tICdhcGFjaGUtYXJyb3cnO1xuaW1wb3J0ICogYXMgZHVja2RiIGZyb20gJ0BkdWNrZGIvZHVja2RiLXdhc20nO1xuaW1wb3J0IHtBc3luY0R1Y2tEQiwgRHVja0RCQ29uZmlnLCBBc3luY0R1Y2tEQkNvbm5lY3Rpb259IGZyb20gJ0BkdWNrZGIvZHVja2RiLXdhc20nO1xuXG5pbXBvcnQge0RhdGFiYXNlQWRhcHRlciwgRGF0YWJhc2VDb25uZWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW1wb3J0IHtsb2dFbGFwc2VkVGltZX0gZnJvbSAnLi4vdXRpbHMvcGVyZic7XG5cbmNsYXNzIENvbm5lY3Rpb24gaW1wbGVtZW50cyBEYXRhYmFzZUNvbm5lY3Rpb24ge1xuICBwcml2YXRlIGNvbm5lY3Rpb246IEFzeW5jRHVja0RCQ29ubmVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBBc3luY0R1Y2tEQkNvbm5lY3Rpb24pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uO1xuICB9XG5cbiAgYXN5bmMgcXVlcnkoc3RhdGVtZW50OiBzdHJpbmcpOiBQcm9taXNlPGFycm93LlRhYmxlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5xdWVyeShzdGF0ZW1lbnQpO1xuICB9XG5cbiAgYXN5bmMgaW5zZXJ0QXJyb3dUYWJsZShhcnJvd1RhYmxlOiBhcnJvdy5UYWJsZSwgcGFyYW1zOiB7bmFtZTogc3RyaW5nfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5pbnNlcnRBcnJvd1RhYmxlKGFycm93VGFibGUsIHBhcmFtcyk7XG4gIH1cblxuICBhc3luYyBjbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uY2xvc2UoKTtcbiAgfVxufVxuXG50eXBlIER1Y2tEQldhc21BZGFwdGVyUHJvcHMgPVxuICB8IHtcbiAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgIGNvbmZpZz86IER1Y2tEQkNvbmZpZztcbiAgICB9XG4gIHwgUHJvbWlzZTxBc3luY0R1Y2tEQj47XG5cbmV4cG9ydCBjbGFzcyBEdWNrREJXYXNtQWRhcHRlciBpbXBsZW1lbnRzIERhdGFiYXNlQWRhcHRlciB7XG4gIHByaXZhdGUgZHVja0RCOiBQcm9taXNlPEFzeW5jRHVja0RCPjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBEdWNrREJXYXNtQWRhcHRlclByb3BzKSB7XG4gICAgLy8gcGFzcyBleGlzdGluZyBBc3luY0R1Y2tEQiBvYmplY3QgY3JlYXRlZCBlbHNld2hlcmVcbiAgICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIFByb21pc2UgfHwgb3B0aW9ucyBpbnN0YW5jZW9mIEFzeW5jRHVja0RCKSB7XG4gICAgICB0aGlzLmR1Y2tEQiA9IG9wdGlvbnMgYXMgYW55O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG9yIGNyZWF0ZSBhIG5ldyBBc3luY0R1Y2tEQiBvYmplY3RcbiAgICBjb25zdCB7ZGVidWcgPSBmYWxzZSwgY29uZmlnfSA9IG9wdGlvbnMgfHwge307XG4gICAgdGhpcy5kdWNrREIgPSBpbml0aWFsaXplRHVja0RiV2FzbShjb25maWcsIGRlYnVnKTtcbiAgfVxuXG4gIGFzeW5jIGNvbm5lY3QoKSB7XG4gICAgY29uc3QgZGIgPSBhd2FpdCB0aGlzLmR1Y2tEQjtcbiAgICBjb25zdCBjID0gYXdhaXQgZGIuY29ubmVjdCgpO1xuICAgIHJldHVybiBuZXcgQ29ubmVjdGlvbihjKTtcbiAgfVxuXG4gIGFzeW5jIHJlZ2lzdGVyRmlsZVRleHQoZmlsZW5hbWU6IHN0cmluZywgY29udGVudCkge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgdGhpcy5kdWNrREI7XG4gICAgYXdhaXQgZGIucmVnaXN0ZXJGaWxlVGV4dChmaWxlbmFtZSwgY29udGVudCk7XG4gIH1cblxuICBhc3luYyByZWdpc3RlckZpbGVIYW5kbGUoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGhhbmRsZTogYW55LFxuICAgIHByb3RvY29sOiBkdWNrZGIuRHVja0RCRGF0YVByb3RvY29sLFxuICAgIGRpcmVjdElPOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgdGhpcy5kdWNrREI7XG4gICAgYXdhaXQgZGIucmVnaXN0ZXJGaWxlSGFuZGxlKG5hbWUsIGhhbmRsZSwgcHJvdG9jb2wsIGRpcmVjdElPKTtcbiAgfVxufVxuXG4vKipcbiAqIEluaXRpYWxpemUgRHVja0RCIHdpdGggYSBicm93c2VyLXNwZWNpZmljIFdhc20gYnVuZGxlLlxuICovXG5jb25zdCBpbml0aWFsaXplRHVja0RiV2FzbSA9IGFzeW5jIChcbiAgY29uZmlnPzogRHVja0RCQ29uZmlnLFxuICBkZWJ1Zz86IGJvb2xlYW5cbik6IFByb21pc2U8QXN5bmNEdWNrREI+ID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAvLyBTZWxlY3QgYSBidW5kbGUgYmFzZWQgb24gYnJvd3NlciBjaGVja3NcbiAgY29uc3QgSlNERUxJVlJfQlVORExFUyA9IGR1Y2tkYi5nZXRKc0RlbGl2ckJ1bmRsZXMoKTtcbiAgY29uc3QgYnVuZGxlID0gYXdhaXQgZHVja2RiLnNlbGVjdEJ1bmRsZShKU0RFTElWUl9CVU5ETEVTKTtcbiAgaWYgKCFidW5kbGUubWFpbldvcmtlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgRHVja0RCJyk7XG4gIH1cblxuICBjb25zdCB3b3JrZXJfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChcbiAgICBuZXcgQmxvYihbYGltcG9ydFNjcmlwdHMoXCIke2J1bmRsZS5tYWluV29ya2VyfVwiKTtgXSwge1xuICAgICAgdHlwZTogJ3RleHQvamF2YXNjcmlwdCdcbiAgICB9KVxuICApO1xuXG4gIC8vIEluc3RhbnRpYXRlIHRoZSBhc3luYyB2ZXJzaW9uIG9mIER1Y2tEQi13YXNtXG4gIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7XG4gIGNvbnN0IGxvZ2dlciA9IGRlYnVnID8gbmV3IGR1Y2tkYi5Db25zb2xlTG9nZ2VyKCkgOiBuZXcgZHVja2RiLlZvaWRMb2dnZXIoKTtcbiAgY29uc3QgZGIgPSBuZXcgQXN5bmNEdWNrREIobG9nZ2VyLCB3b3JrZXIpO1xuICBhd2FpdCBkYi5pbnN0YW50aWF0ZShidW5kbGUubWFpbk1vZHVsZSwgYnVuZGxlLnB0aHJlYWRXb3JrZXIpO1xuICBVUkwucmV2b2tlT2JqZWN0VVJMKHdvcmtlcl91cmwpO1xuXG4gIGlmIChjb25maWcpIHtcbiAgICBpZiAoY29uZmlnLnBhdGgpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGNvbmZpZy5wYXRoKTtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpO1xuICAgICAgY29uc3QgZmlsZU5hbWVNYXRjaCA9IGNvbmZpZy5wYXRoLm1hdGNoKC9bXi9dKiQvKTtcbiAgICAgIGlmIChmaWxlTmFtZU1hdGNoKSB7XG4gICAgICAgIGNvbmZpZy5wYXRoID0gZmlsZU5hbWVNYXRjaFswXTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGRiLnJlZ2lzdGVyRmlsZUJ1ZmZlcihjb25maWcucGF0aCwgbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSk7XG4gICAgfVxuICAgIGF3YWl0IGRiLm9wZW4oY29uZmlnKTtcbiAgfVxuXG4gIGlmIChkZWJ1Zykge1xuICAgIGxvZ0VsYXBzZWRUaW1lKCdEdWNrREIgaW5pdGlhbGl6ZWQnLCBzdGFydCk7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRHVja0RiQ29uZmlnOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMil9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYjtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFHQSxPQUFPLEtBQUtBLE1BQU0sTUFBTSxxQkFBcUI7QUFDN0MsU0FBUUMsV0FBVyxRQUE0QyxxQkFBcUI7QUFJcEYsU0FBUUMsY0FBYyxRQUFPLGVBQWU7QUFBQyxJQUV2Q0MsVUFBVTtFQUdkLFNBQUFBLFdBQVlDLFVBQWlDLEVBQUU7SUFBQUMsZUFBQSxPQUFBRixVQUFBO0lBQUFHLGVBQUE7SUFDN0MsSUFBSSxDQUFDRixVQUFVLEdBQUdBLFVBQVU7RUFDOUI7RUFBQyxPQUFBRyxZQUFBLENBQUFKLFVBQUE7SUFBQUssR0FBQTtJQUFBQyxLQUFBO01BQUEsSUFBQUMsTUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBRUQsU0FBQUMsUUFBWUMsU0FBaUI7UUFBQSxPQUFBSCxtQkFBQSxDQUFBSSxJQUFBLFVBQUFDLFNBQUFDLFFBQUE7VUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtZQUFBO2NBQUEsT0FBQUYsUUFBQSxDQUFBRyxNQUFBLFdBQ3BCLElBQUksQ0FBQ2pCLFVBQVUsQ0FBQ2tCLEtBQUssQ0FBQ1AsU0FBUyxDQUFDO1lBQUE7WUFBQTtjQUFBLE9BQUFHLFFBQUEsQ0FBQUssSUFBQTtVQUFBO1FBQUEsR0FBQVQsT0FBQTtNQUFBLENBQ3hDO01BQUEsU0FGS1EsS0FBS0EsQ0FBQUUsRUFBQTtRQUFBLE9BQUFkLE1BQUEsQ0FBQWUsS0FBQSxPQUFBQyxTQUFBO01BQUE7TUFBQSxPQUFMSixLQUFLO0lBQUE7RUFBQTtJQUFBZCxHQUFBO0lBQUFDLEtBQUE7TUFBQSxJQUFBa0IsaUJBQUEsR0FBQWhCLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FJWCxTQUFBZSxTQUF1QkMsVUFBdUIsRUFBRUMsTUFBc0I7UUFBQSxPQUFBbEIsbUJBQUEsQ0FBQUksSUFBQSxVQUFBZSxVQUFBQyxTQUFBO1VBQUEsa0JBQUFBLFNBQUEsQ0FBQWIsSUFBQSxHQUFBYSxTQUFBLENBQUFaLElBQUE7WUFBQTtjQUFBWSxTQUFBLENBQUFaLElBQUE7Y0FBQSxPQUM5RCxJQUFJLENBQUNoQixVQUFVLENBQUM2QixnQkFBZ0IsQ0FBQ0osVUFBVSxFQUFFQyxNQUFNLENBQUM7WUFBQTtZQUFBO2NBQUEsT0FBQUUsU0FBQSxDQUFBVCxJQUFBO1VBQUE7UUFBQSxHQUFBSyxRQUFBO01BQUEsQ0FDM0Q7TUFBQSxTQUZLSyxnQkFBZ0JBLENBQUFDLEdBQUEsRUFBQUMsR0FBQTtRQUFBLE9BQUFSLGlCQUFBLENBQUFGLEtBQUEsT0FBQUMsU0FBQTtNQUFBO01BQUEsT0FBaEJPLGdCQUFnQjtJQUFBO0VBQUE7SUFBQXpCLEdBQUE7SUFBQUMsS0FBQTtNQUFBLElBQUEyQixNQUFBLEdBQUF6QixpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBSXRCLFNBQUF3QixTQUFBO1FBQUEsT0FBQXpCLG1CQUFBLENBQUFJLElBQUEsVUFBQXNCLFVBQUFDLFNBQUE7VUFBQSxrQkFBQUEsU0FBQSxDQUFBcEIsSUFBQSxHQUFBb0IsU0FBQSxDQUFBbkIsSUFBQTtZQUFBO2NBQUFtQixTQUFBLENBQUFuQixJQUFBO2NBQUEsT0FDUSxJQUFJLENBQUNoQixVQUFVLENBQUNvQyxLQUFLLENBQUMsQ0FBQztZQUFBO1lBQUE7Y0FBQSxPQUFBRCxTQUFBLENBQUFoQixJQUFBO1VBQUE7UUFBQSxHQUFBYyxRQUFBO01BQUEsQ0FDOUI7TUFBQSxTQUZLRyxLQUFLQSxDQUFBO1FBQUEsT0FBQUosTUFBQSxDQUFBWCxLQUFBLE9BQUFDLFNBQUE7TUFBQTtNQUFBLE9BQUxjLEtBQUs7SUFBQTtFQUFBO0FBQUE7QUFZYixXQUFhQyxpQkFBaUI7RUFHNUIsU0FBQUEsa0JBQVlDLE9BQStCLEVBQUU7SUFBQXJDLGVBQUEsT0FBQW9DLGlCQUFBO0lBQUFuQyxlQUFBO0lBQzNDO0lBQ0EsSUFBSW9DLE9BQU8sWUFBWUMsT0FBTyxJQUFJRCxPQUFPLFlBQVl6QyxXQUFXLEVBQUU7TUFDaEUsSUFBSSxDQUFDMkMsTUFBTSxHQUFHRixPQUFjO01BQzVCO0lBQ0Y7O0lBRUE7SUFDQSxJQUFBRyxJQUFBLEdBQWdDSCxPQUFPLElBQUksQ0FBQyxDQUFDO01BQUFJLFVBQUEsR0FBQUQsSUFBQSxDQUF0Q0UsS0FBSztNQUFMQSxLQUFLLEdBQUFELFVBQUEsY0FBRyxLQUFLLEdBQUFBLFVBQUE7TUFBRUUsTUFBTSxHQUFBSCxJQUFBLENBQU5HLE1BQU07SUFDNUIsSUFBSSxDQUFDSixNQUFNLEdBQUdLLG9CQUFvQixDQUFDRCxNQUFNLEVBQUVELEtBQUssQ0FBQztFQUNuRDtFQUFDLE9BQUF4QyxZQUFBLENBQUFrQyxpQkFBQTtJQUFBakMsR0FBQTtJQUFBQyxLQUFBO01BQUEsSUFBQXlDLFFBQUEsR0FBQXZDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FFRCxTQUFBc0MsU0FBQTtRQUFBLElBQUFDLEVBQUEsRUFBQUMsQ0FBQTtRQUFBLE9BQUF6QyxtQkFBQSxDQUFBSSxJQUFBLFVBQUFzQyxVQUFBQyxTQUFBO1VBQUEsa0JBQUFBLFNBQUEsQ0FBQXBDLElBQUEsR0FBQW9DLFNBQUEsQ0FBQW5DLElBQUE7WUFBQTtjQUFBbUMsU0FBQSxDQUFBbkMsSUFBQTtjQUFBLE9BQ21CLElBQUksQ0FBQ3dCLE1BQU07WUFBQTtjQUF0QlEsRUFBRSxHQUFBRyxTQUFBLENBQUFDLElBQUE7Y0FBQUQsU0FBQSxDQUFBbkMsSUFBQTtjQUFBLE9BQ1FnQyxFQUFFLENBQUNLLE9BQU8sQ0FBQyxDQUFDO1lBQUE7Y0FBdEJKLENBQUMsR0FBQUUsU0FBQSxDQUFBQyxJQUFBO2NBQUEsT0FBQUQsU0FBQSxDQUFBbEMsTUFBQSxXQUNBLElBQUlsQixVQUFVLENBQUNrRCxDQUFDLENBQUM7WUFBQTtZQUFBO2NBQUEsT0FBQUUsU0FBQSxDQUFBaEMsSUFBQTtVQUFBO1FBQUEsR0FBQTRCLFFBQUE7TUFBQSxDQUN6QjtNQUFBLFNBSktNLE9BQU9BLENBQUE7UUFBQSxPQUFBUCxRQUFBLENBQUF6QixLQUFBLE9BQUFDLFNBQUE7TUFBQTtNQUFBLE9BQVArQixPQUFPO0lBQUE7RUFBQTtJQUFBakQsR0FBQTtJQUFBQyxLQUFBO01BQUEsSUFBQWlELGlCQUFBLEdBQUEvQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBTWIsU0FBQThDLFNBQXVCQyxRQUFnQixFQUFFQyxPQUFPO1FBQUEsSUFBQVQsRUFBQTtRQUFBLE9BQUF4QyxtQkFBQSxDQUFBSSxJQUFBLFVBQUE4QyxVQUFBQyxTQUFBO1VBQUEsa0JBQUFBLFNBQUEsQ0FBQTVDLElBQUEsR0FBQTRDLFNBQUEsQ0FBQTNDLElBQUE7WUFBQTtjQUFBMkMsU0FBQSxDQUFBM0MsSUFBQTtjQUFBLE9BQzdCLElBQUksQ0FBQ3dCLE1BQU07WUFBQTtjQUF0QlEsRUFBRSxHQUFBVyxTQUFBLENBQUFQLElBQUE7Y0FBQU8sU0FBQSxDQUFBM0MsSUFBQTtjQUFBLE9BQ0ZnQyxFQUFFLENBQUNZLGdCQUFnQixDQUFDSixRQUFRLEVBQUVDLE9BQU8sQ0FBQztZQUFBO1lBQUE7Y0FBQSxPQUFBRSxTQUFBLENBQUF4QyxJQUFBO1VBQUE7UUFBQSxHQUFBb0MsUUFBQTtNQUFBLENBQzdDO01BQUEsU0FIS0ssZ0JBQWdCQSxDQUFBQyxHQUFBLEVBQUFDLEdBQUE7UUFBQSxPQUFBUixpQkFBQSxDQUFBakMsS0FBQSxPQUFBQyxTQUFBO01BQUE7TUFBQSxPQUFoQnNDLGdCQUFnQjtJQUFBO0VBQUE7SUFBQXhELEdBQUE7SUFBQUMsS0FBQTtNQUFBLElBQUEwRCxtQkFBQSxHQUFBeEQsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUt0QixTQUFBdUQsU0FDRUMsSUFBWSxFQUNaQyxNQUFXLEVBQ1hDLFFBQW1DLEVBQ25DQyxRQUFpQjtRQUFBLElBQUFwQixFQUFBO1FBQUEsT0FBQXhDLG1CQUFBLENBQUFJLElBQUEsVUFBQXlELFVBQUFDLFNBQUE7VUFBQSxrQkFBQUEsU0FBQSxDQUFBdkQsSUFBQSxHQUFBdUQsU0FBQSxDQUFBdEQsSUFBQTtZQUFBO2NBQUFzRCxTQUFBLENBQUF0RCxJQUFBO2NBQUEsT0FFQSxJQUFJLENBQUN3QixNQUFNO1lBQUE7Y0FBdEJRLEVBQUUsR0FBQXNCLFNBQUEsQ0FBQWxCLElBQUE7Y0FBQWtCLFNBQUEsQ0FBQXRELElBQUE7Y0FBQSxPQUNGZ0MsRUFBRSxDQUFDdUIsa0JBQWtCLENBQUNOLElBQUksRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsQ0FBQztZQUFBO1lBQUE7Y0FBQSxPQUFBRSxTQUFBLENBQUFuRCxJQUFBO1VBQUE7UUFBQSxHQUFBNkMsUUFBQTtNQUFBLENBQzlEO01BQUEsU0FSS08sa0JBQWtCQSxDQUFBQyxHQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBO1FBQUEsT0FBQVosbUJBQUEsQ0FBQTFDLEtBQUEsT0FBQUMsU0FBQTtNQUFBO01BQUEsT0FBbEJpRCxrQkFBa0I7SUFBQTtFQUFBO0FBQUE7O0FBVzFCO0FBQ0E7QUFDQTtBQUNBLElBQU0xQixvQkFBb0I7RUFBQSxJQUFBK0IsS0FBQSxHQUFBckUsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFvRSxTQUMzQmpDLE1BQXFCLEVBQ3JCRCxLQUFlO0lBQUEsSUFBQW1DLEtBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsTUFBQSxFQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBbkMsRUFBQSxFQUFBb0MsR0FBQSxFQUFBQyxNQUFBLEVBQUFDLGFBQUE7SUFBQSxPQUFBOUUsbUJBQUEsQ0FBQUksSUFBQSxVQUFBMkUsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUF6RSxJQUFBLEdBQUF5RSxTQUFBLENBQUF4RSxJQUFBO1FBQUE7VUFFVDhELEtBQUssR0FBR1csV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUUvQjtVQUNNWCxnQkFBZ0IsR0FBR25GLE1BQU0sQ0FBQytGLGtCQUFrQixDQUFDLENBQUM7VUFBQUgsU0FBQSxDQUFBeEUsSUFBQTtVQUFBLE9BQy9CcEIsTUFBTSxDQUFDZ0csWUFBWSxDQUFDYixnQkFBZ0IsQ0FBQztRQUFBO1VBQXBEQyxNQUFNLEdBQUFRLFNBQUEsQ0FBQXBDLElBQUE7VUFBQSxJQUNQNEIsTUFBTSxDQUFDYSxVQUFVO1lBQUFMLFNBQUEsQ0FBQXhFLElBQUE7WUFBQTtVQUFBO1VBQUEsTUFDZCxJQUFJOEUsS0FBSyxDQUFDLDZCQUE2QixDQUFDO1FBQUE7VUFHMUNiLFVBQVUsR0FBR2MsR0FBRyxDQUFDQyxlQUFlLENBQ3BDLElBQUlDLElBQUksQ0FBQyxvQkFBQUMsTUFBQSxDQUFtQmxCLE1BQU0sQ0FBQ2EsVUFBVSxVQUFNLEVBQUU7WUFDbkRNLElBQUksRUFBRTtVQUNSLENBQUMsQ0FDSCxDQUFDLEVBRUQ7VUFDTWpCLE1BQU0sR0FBRyxJQUFJa0IsTUFBTSxDQUFDbkIsVUFBVSxDQUFDO1VBQy9CRSxNQUFNLEdBQUd4QyxLQUFLLEdBQUcsSUFBSS9DLE1BQU0sQ0FBQ3lHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsSUFBSXpHLE1BQU0sQ0FBQzBHLFVBQVUsQ0FBQyxDQUFDO1VBQ3JFdEQsRUFBRSxHQUFHLElBQUluRCxXQUFXLENBQUNzRixNQUFNLEVBQUVELE1BQU0sQ0FBQztVQUFBTSxTQUFBLENBQUF4RSxJQUFBO1VBQUEsT0FDcENnQyxFQUFFLENBQUN1RCxXQUFXLENBQUN2QixNQUFNLENBQUN3QixVQUFVLEVBQUV4QixNQUFNLENBQUN5QixhQUFhLENBQUM7UUFBQTtVQUM3RFYsR0FBRyxDQUFDVyxlQUFlLENBQUN6QixVQUFVLENBQUM7VUFBQyxLQUU1QnJDLE1BQU07WUFBQTRDLFNBQUEsQ0FBQXhFLElBQUE7WUFBQTtVQUFBO1VBQUEsS0FDSjRCLE1BQU0sQ0FBQytELElBQUk7WUFBQW5CLFNBQUEsQ0FBQXhFLElBQUE7WUFBQTtVQUFBO1VBQUF3RSxTQUFBLENBQUF4RSxJQUFBO1VBQUEsT0FDSzRGLEtBQUssQ0FBQ2hFLE1BQU0sQ0FBQytELElBQUksQ0FBQztRQUFBO1VBQTlCdkIsR0FBRyxHQUFBSSxTQUFBLENBQUFwQyxJQUFBO1VBQUFvQyxTQUFBLENBQUF4RSxJQUFBO1VBQUEsT0FDWW9FLEdBQUcsQ0FBQ3lCLFdBQVcsQ0FBQyxDQUFDO1FBQUE7VUFBaEN4QixNQUFNLEdBQUFHLFNBQUEsQ0FBQXBDLElBQUE7VUFDTmtDLGFBQWEsR0FBRzFDLE1BQU0sQ0FBQytELElBQUksQ0FBQ0csS0FBSyxDQUFDLFFBQVEsQ0FBQztVQUNqRCxJQUFJeEIsYUFBYSxFQUFFO1lBQ2pCMUMsTUFBTSxDQUFDK0QsSUFBSSxHQUFHckIsYUFBYSxDQUFDLENBQUMsQ0FBQztVQUNoQztVQUFDRSxTQUFBLENBQUF4RSxJQUFBO1VBQUEsT0FDS2dDLEVBQUUsQ0FBQytELGtCQUFrQixDQUFDbkUsTUFBTSxDQUFDK0QsSUFBSSxFQUFFLElBQUlLLFVBQVUsQ0FBQzNCLE1BQU0sQ0FBQyxDQUFDO1FBQUE7VUFBQUcsU0FBQSxDQUFBeEUsSUFBQTtVQUFBLE9BRTVEZ0MsRUFBRSxDQUFDaUUsSUFBSSxDQUFDckUsTUFBTSxDQUFDO1FBQUE7VUFHdkIsSUFBSUQsS0FBSyxFQUFFO1lBQ1Q3QyxjQUFjLENBQUMsb0JBQW9CLEVBQUVnRixLQUFLLENBQUM7WUFDM0MsSUFBSWxDLE1BQU0sRUFBRTtjQUNWc0UsT0FBTyxDQUFDdkUsS0FBSyxrQkFBQXVELE1BQUEsQ0FBa0JpQixJQUFJLENBQUNDLFNBQVMsQ0FBQ3hFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUUsQ0FBQztZQUNuRTtVQUNGO1VBQUMsT0FBQTRDLFNBQUEsQ0FBQXZFLE1BQUEsV0FDTStCLEVBQUU7UUFBQTtRQUFBO1VBQUEsT0FBQXdDLFNBQUEsQ0FBQXJFLElBQUE7TUFBQTtJQUFBLEdBQUEwRCxRQUFBO0VBQUEsQ0FDVjtFQUFBLGdCQTlDS2hDLG9CQUFvQkEsQ0FBQXdFLEdBQUEsRUFBQUMsR0FBQTtJQUFBLE9BQUExQyxLQUFBLENBQUF2RCxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBOEN6QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Copyright contributors to the kepler.gl project
|
|
3
|
+
|
|
4
|
+
export { SqlPanel } from './sql-panel';
|
|
5
|
+
export { SchemaPanel, SchemaPanelDropMessage } from './schema-panel';
|
|
6
|
+
export { PreviewDataPanel } from './preview-data-panel';
|
|
7
|
+
export { Tree, DatasetNode, ColumnNode } from './tree';
|
|
8
|
+
export { default as MonacoEditor } from './monaco-editor';
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTcWxQYW5lbCIsIlNjaGVtYVBhbmVsIiwiU2NoZW1hUGFuZWxEcm9wTWVzc2FnZSIsIlByZXZpZXdEYXRhUGFuZWwiLCJUcmVlIiwiRGF0YXNldE5vZGUiLCJDb2x1bW5Ob2RlIiwiZGVmYXVsdCIsIk1vbmFjb0VkaXRvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQge1NxbFBhbmVsfSBmcm9tICcuL3NxbC1wYW5lbCc7XG5leHBvcnQge1NjaGVtYVBhbmVsLCBTY2hlbWFQYW5lbERyb3BNZXNzYWdlfSBmcm9tICcuL3NjaGVtYS1wYW5lbCc7XG5leHBvcnQge1ByZXZpZXdEYXRhUGFuZWx9IGZyb20gJy4vcHJldmlldy1kYXRhLXBhbmVsJztcbmV4cG9ydCB7VHJlZSwgRGF0YXNldE5vZGUsIENvbHVtbk5vZGV9IGZyb20gJy4vdHJlZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgTW9uYWNvRWRpdG9yfSBmcm9tICcuL21vbmFjby1lZGl0b3InO1xuXG5leHBvcnQgdHlwZSB7U2NoZW1hU3VnZ2VzdGlvbn0gZnJvbSAnLi9zY2hlbWEtcGFuZWwnO1xuZXhwb3J0IHR5cGUge1ByZXZpZXdEYXRhUGFuZWxQcm9wcywgUXVlcnlSZXN1bHQsIERhdGFUYWJsZVN0eWxlfSBmcm9tICcuL3ByZXZpZXctZGF0YS1wYW5lbCc7XG5leHBvcnQgdHlwZSB7VHJlZU5vZGVEYXRhLCBUcmVlTm9kZVByb3BzLCBUcmVlUHJvcHN9IGZyb20gJy4vdHJlZSc7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsUUFBUSxRQUFPLGFBQWE7QUFDcEMsU0FBUUMsV0FBVyxFQUFFQyxzQkFBc0IsUUFBTyxnQkFBZ0I7QUFDbEUsU0FBUUMsZ0JBQWdCLFFBQU8sc0JBQXNCO0FBQ3JELFNBQVFDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxVQUFVLFFBQU8sUUFBUTtBQUNwRCxTQUFRQyxPQUFPLElBQUlDLFlBQVksUUFBTyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
+
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; }
|
|
4
|
+
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) { _defineProperty(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; }
|
|
5
|
+
// SPDX-License-Identifier: MIT
|
|
6
|
+
// Copyright contributors to the kepler.gl project
|
|
7
|
+
|
|
8
|
+
import React, { useCallback, useMemo, useRef } from 'react';
|
|
9
|
+
import Editor from '@monaco-editor/react';
|
|
10
|
+
import * as monaco from 'monaco-editor';
|
|
11
|
+
// import {tableSchema as DEFAULT_SCHEMA} from './table-schema';
|
|
12
|
+
import uniq from 'es-toolkit/compat/uniq';
|
|
13
|
+
import uniqBy from 'es-toolkit/compat/uniqBy';
|
|
14
|
+
var MONACO_OPTIONS = {
|
|
15
|
+
minimap: {
|
|
16
|
+
enabled: false
|
|
17
|
+
},
|
|
18
|
+
language: 'sql',
|
|
19
|
+
contextmenu: false,
|
|
20
|
+
renderLineHighlight: 'none',
|
|
21
|
+
scrollBeyondLastLine: false,
|
|
22
|
+
scrollbar: {
|
|
23
|
+
alwaysConsumeMouseWheel: false
|
|
24
|
+
},
|
|
25
|
+
overviewRulerLanes: 0,
|
|
26
|
+
automaticLayout: true,
|
|
27
|
+
acceptSuggestionOnEnter: 'on',
|
|
28
|
+
quickSuggestionsDelay: 400,
|
|
29
|
+
matchOnWordStartOnly: false,
|
|
30
|
+
tabCompletion: 'off',
|
|
31
|
+
lineNumbers: 'off'
|
|
32
|
+
};
|
|
33
|
+
function parseSqlAndFindTableNameAndAliases(sql) {
|
|
34
|
+
var regex = /\b(?:FROM|JOIN)\s+([^\s.]+(?:\.[^\s.]+)?)\s*(?:AS)?\s*([^\s,]+)?/gi;
|
|
35
|
+
var tables = [];
|
|
36
|
+
while (true) {
|
|
37
|
+
var match = regex.exec(sql);
|
|
38
|
+
if (!match) {
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
var table_name = match[1];
|
|
42
|
+
if (!/\(/.test(table_name)) {
|
|
43
|
+
// exclude function calls
|
|
44
|
+
var alias = match[2];
|
|
45
|
+
if (alias && /on|where|inner|left|right|join/.test(alias)) {
|
|
46
|
+
alias = null;
|
|
47
|
+
}
|
|
48
|
+
tables.push({
|
|
49
|
+
table_name: table_name,
|
|
50
|
+
alias: alias || table_name
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return tables;
|
|
55
|
+
}
|
|
56
|
+
var MonacoEditor = function MonacoEditor(_ref) {
|
|
57
|
+
var onRunQuery = _ref.onRunQuery,
|
|
58
|
+
onChange = _ref.onChange,
|
|
59
|
+
code = _ref.code,
|
|
60
|
+
tableSchema = _ref.tableSchema,
|
|
61
|
+
isReadOnly = _ref.isReadOnly;
|
|
62
|
+
// private editor?: monaco.editor.IStandaloneCodeEditor;
|
|
63
|
+
var schemaTableNames = useMemo(function () {
|
|
64
|
+
return tableSchema ? uniq(tableSchema.map(function (d) {
|
|
65
|
+
return d.table_name;
|
|
66
|
+
})) : [];
|
|
67
|
+
}, [tableSchema]);
|
|
68
|
+
var schemaTableNamesSet = useMemo(function () {
|
|
69
|
+
return new Set(schemaTableNames);
|
|
70
|
+
}, [schemaTableNames]);
|
|
71
|
+
var handleRunQueryRef = useRef(onRunQuery);
|
|
72
|
+
handleRunQueryRef.current = onRunQuery;
|
|
73
|
+
var handleEditorDidMount = useCallback(function (editor) {
|
|
74
|
+
// this.editor = editor;
|
|
75
|
+
editor.focus();
|
|
76
|
+
editor.addAction({
|
|
77
|
+
id: 'run-query',
|
|
78
|
+
label: 'Run Query',
|
|
79
|
+
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter, monaco.KeyMod.Shift | monaco.KeyCode.Enter],
|
|
80
|
+
contextMenuGroupId: 'custom',
|
|
81
|
+
contextMenuOrder: 0,
|
|
82
|
+
run: function run() {
|
|
83
|
+
return handleRunQueryRef.current();
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
monaco.languages.registerCompletionItemProvider('*', {
|
|
87
|
+
provideCompletionItems: function provideCompletionItems(model, position, _context, _cancelationToken) {
|
|
88
|
+
var _thisLine$trim$split$, _exec, _exec2;
|
|
89
|
+
var suggestions = [{
|
|
90
|
+
label: 'myCustomSnippet',
|
|
91
|
+
kind: monaco.languages.CompletionItemKind.Snippet,
|
|
92
|
+
insertText: 'This is a piece of custom code',
|
|
93
|
+
insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
|
|
94
|
+
documentation: 'This is a piece of custom code'
|
|
95
|
+
// TODO: range is missing
|
|
96
|
+
}];
|
|
97
|
+
var fullQueryText = model.getValue();
|
|
98
|
+
var tableNamesAndAliases = new Map(parseSqlAndFindTableNameAndAliases(fullQueryText).map(function (_ref2) {
|
|
99
|
+
var table_name = _ref2.table_name,
|
|
100
|
+
alias = _ref2.alias;
|
|
101
|
+
return [alias, table_name];
|
|
102
|
+
}));
|
|
103
|
+
var thisLine = model.getValueInRange({
|
|
104
|
+
startLineNumber: position.lineNumber,
|
|
105
|
+
startColumn: 1,
|
|
106
|
+
endLineNumber: position.lineNumber,
|
|
107
|
+
endColumn: position.column
|
|
108
|
+
});
|
|
109
|
+
var thisToken = ((_thisLine$trim$split$ = thisLine.trim().split(' ').slice(-1)) === null || _thisLine$trim$split$ === void 0 ? void 0 : _thisLine$trim$split$[0]) || '';
|
|
110
|
+
var lastTokenBeforeSpace = (_exec = /\s?(\w+)\s+\w+$/.exec(thisLine.trim())) === null || _exec === void 0 ? void 0 : _exec[1];
|
|
111
|
+
var lastTokenBeforeDot = (_exec2 = /(\w+)\.\w*$/.exec(thisToken)) === null || _exec2 === void 0 ? void 0 : _exec2[1];
|
|
112
|
+
|
|
113
|
+
// console.log(tableNamesAndAliases, thisToken, lastTokenBeforeSpace, lastTokenBeforeDot);
|
|
114
|
+
|
|
115
|
+
if (lastTokenBeforeSpace && /from|join|update|into/.test(lastTokenBeforeSpace)) {
|
|
116
|
+
suggestions.push.apply(suggestions, _toConsumableArray(schemaTableNames.map(function (table_name) {
|
|
117
|
+
return {
|
|
118
|
+
label: table_name,
|
|
119
|
+
kind: monaco.languages.CompletionItemKind.Field,
|
|
120
|
+
insertText: table_name
|
|
121
|
+
// TODO: range is missing
|
|
122
|
+
};
|
|
123
|
+
})));
|
|
124
|
+
}
|
|
125
|
+
if (lastTokenBeforeDot) {
|
|
126
|
+
var table_name = null;
|
|
127
|
+
if (schemaTableNamesSet.has(lastTokenBeforeDot)) {
|
|
128
|
+
table_name = lastTokenBeforeDot;
|
|
129
|
+
} else if (tableNamesAndAliases.get(lastTokenBeforeDot)) {
|
|
130
|
+
table_name = tableNamesAndAliases.get(lastTokenBeforeDot);
|
|
131
|
+
}
|
|
132
|
+
if (table_name && tableSchema) {
|
|
133
|
+
suggestions.push.apply(suggestions, _toConsumableArray(tableSchema.filter(function (d) {
|
|
134
|
+
return d.table_name === table_name;
|
|
135
|
+
}).map(function (_ref3) {
|
|
136
|
+
var column_name = _ref3.column_name;
|
|
137
|
+
return {
|
|
138
|
+
label: column_name,
|
|
139
|
+
kind: monaco.languages.CompletionItemKind.Field,
|
|
140
|
+
insertText: column_name
|
|
141
|
+
// TODO: range is missing
|
|
142
|
+
};
|
|
143
|
+
})));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
suggestions: uniqBy(suggestions, function (s) {
|
|
148
|
+
return s.insertText;
|
|
149
|
+
})
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}, [tableSchema, schemaTableNames, schemaTableNamesSet]);
|
|
154
|
+
return /*#__PURE__*/React.createElement(Editor, {
|
|
155
|
+
height: "100%",
|
|
156
|
+
theme: "vs-dark",
|
|
157
|
+
defaultLanguage: "sql",
|
|
158
|
+
defaultValue: code,
|
|
159
|
+
onChange: onChange,
|
|
160
|
+
onMount: handleEditorDidMount,
|
|
161
|
+
options: _objectSpread(_objectSpread({}, MONACO_OPTIONS), {}, {
|
|
162
|
+
readOnly: isReadOnly
|
|
163
|
+
})
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
export default MonacoEditor;
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVJlZiIsIkVkaXRvciIsIm1vbmFjbyIsInVuaXEiLCJ1bmlxQnkiLCJNT05BQ09fT1BUSU9OUyIsIm1pbmltYXAiLCJlbmFibGVkIiwibGFuZ3VhZ2UiLCJjb250ZXh0bWVudSIsInJlbmRlckxpbmVIaWdobGlnaHQiLCJzY3JvbGxCZXlvbmRMYXN0TGluZSIsInNjcm9sbGJhciIsImFsd2F5c0NvbnN1bWVNb3VzZVdoZWVsIiwib3ZlcnZpZXdSdWxlckxhbmVzIiwiYXV0b21hdGljTGF5b3V0IiwiYWNjZXB0U3VnZ2VzdGlvbk9uRW50ZXIiLCJxdWlja1N1Z2dlc3Rpb25zRGVsYXkiLCJtYXRjaE9uV29yZFN0YXJ0T25seSIsInRhYkNvbXBsZXRpb24iLCJsaW5lTnVtYmVycyIsInBhcnNlU3FsQW5kRmluZFRhYmxlTmFtZUFuZEFsaWFzZXMiLCJzcWwiLCJyZWdleCIsInRhYmxlcyIsIm1hdGNoIiwiZXhlYyIsInRhYmxlX25hbWUiLCJ0ZXN0IiwiYWxpYXMiLCJwdXNoIiwiTW9uYWNvRWRpdG9yIiwiX3JlZiIsIm9uUnVuUXVlcnkiLCJvbkNoYW5nZSIsImNvZGUiLCJ0YWJsZVNjaGVtYSIsImlzUmVhZE9ubHkiLCJzY2hlbWFUYWJsZU5hbWVzIiwibWFwIiwiZCIsInNjaGVtYVRhYmxlTmFtZXNTZXQiLCJTZXQiLCJoYW5kbGVSdW5RdWVyeVJlZiIsImN1cnJlbnQiLCJoYW5kbGVFZGl0b3JEaWRNb3VudCIsImVkaXRvciIsImZvY3VzIiwiYWRkQWN0aW9uIiwiaWQiLCJsYWJlbCIsImtleWJpbmRpbmdzIiwiS2V5TW9kIiwiQ3RybENtZCIsIktleUNvZGUiLCJFbnRlciIsIlNoaWZ0IiwiY29udGV4dE1lbnVHcm91cElkIiwiY29udGV4dE1lbnVPcmRlciIsInJ1biIsImxhbmd1YWdlcyIsInJlZ2lzdGVyQ29tcGxldGlvbkl0ZW1Qcm92aWRlciIsInByb3ZpZGVDb21wbGV0aW9uSXRlbXMiLCJtb2RlbCIsInBvc2l0aW9uIiwiX2NvbnRleHQiLCJfY2FuY2VsYXRpb25Ub2tlbiIsIl90aGlzTGluZSR0cmltJHNwbGl0JCIsIl9leGVjIiwiX2V4ZWMyIiwic3VnZ2VzdGlvbnMiLCJraW5kIiwiQ29tcGxldGlvbkl0ZW1LaW5kIiwiU25pcHBldCIsImluc2VydFRleHQiLCJpbnNlcnRUZXh0UnVsZXMiLCJDb21wbGV0aW9uSXRlbUluc2VydFRleHRSdWxlIiwiSW5zZXJ0QXNTbmlwcGV0IiwiZG9jdW1lbnRhdGlvbiIsImZ1bGxRdWVyeVRleHQiLCJnZXRWYWx1ZSIsInRhYmxlTmFtZXNBbmRBbGlhc2VzIiwiTWFwIiwiX3JlZjIiLCJ0aGlzTGluZSIsImdldFZhbHVlSW5SYW5nZSIsInN0YXJ0TGluZU51bWJlciIsImxpbmVOdW1iZXIiLCJzdGFydENvbHVtbiIsImVuZExpbmVOdW1iZXIiLCJlbmRDb2x1bW4iLCJjb2x1bW4iLCJ0aGlzVG9rZW4iLCJ0cmltIiwic3BsaXQiLCJzbGljZSIsImxhc3RUb2tlbkJlZm9yZVNwYWNlIiwibGFzdFRva2VuQmVmb3JlRG90IiwiYXBwbHkiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJGaWVsZCIsImhhcyIsImdldCIsImZpbHRlciIsIl9yZWYzIiwiY29sdW1uX25hbWUiLCJzIiwiY3JlYXRlRWxlbWVudCIsImhlaWdodCIsInRoZW1lIiwiZGVmYXVsdExhbmd1YWdlIiwiZGVmYXVsdFZhbHVlIiwib25Nb3VudCIsIm9wdGlvbnMiLCJfb2JqZWN0U3ByZWFkIiwicmVhZE9ubHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb25hY28tZWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRWRpdG9yLCB7T25DaGFuZ2UsIE9uTW91bnR9IGZyb20gJ0Btb25hY28tZWRpdG9yL3JlYWN0JztcbmltcG9ydCAqIGFzIG1vbmFjbyBmcm9tICdtb25hY28tZWRpdG9yJztcbi8vIGltcG9ydCB7dGFibGVTY2hlbWEgYXMgREVGQVVMVF9TQ0hFTUF9IGZyb20gJy4vdGFibGUtc2NoZW1hJztcbmltcG9ydCB1bmlxIGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L3VuaXEnO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdlcy10b29sa2l0L2NvbXBhdC91bmlxQnknO1xuXG5jb25zdCBNT05BQ09fT1BUSU9OUzogbW9uYWNvLmVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIG1pbmltYXA6IHtlbmFibGVkOiBmYWxzZX0sXG4gIGxhbmd1YWdlOiAnc3FsJyxcbiAgY29udGV4dG1lbnU6IGZhbHNlLFxuICByZW5kZXJMaW5lSGlnaGxpZ2h0OiAnbm9uZScsXG4gIHNjcm9sbEJleW9uZExhc3RMaW5lOiBmYWxzZSxcbiAgc2Nyb2xsYmFyOiB7YWx3YXlzQ29uc3VtZU1vdXNlV2hlZWw6IGZhbHNlfSxcbiAgb3ZlcnZpZXdSdWxlckxhbmVzOiAwLFxuICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gIGFjY2VwdFN1Z2dlc3Rpb25PbkVudGVyOiAnb24nLFxuICBxdWlja1N1Z2dlc3Rpb25zRGVsYXk6IDQwMCxcbiAgbWF0Y2hPbldvcmRTdGFydE9ubHk6IGZhbHNlLFxuICB0YWJDb21wbGV0aW9uOiAnb2ZmJyxcbiAgbGluZU51bWJlcnM6ICdvZmYnXG59O1xuXG5mdW5jdGlvbiBwYXJzZVNxbEFuZEZpbmRUYWJsZU5hbWVBbmRBbGlhc2VzKHNxbDogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4ID0gL1xcYig/OkZST018Sk9JTilcXHMrKFteXFxzLl0rKD86XFwuW15cXHMuXSspPylcXHMqKD86QVMpP1xccyooW15cXHMsXSspPy9naTtcbiAgY29uc3QgdGFibGVzOiB7dGFibGVfbmFtZTogc3RyaW5nOyBhbGlhczogc3RyaW5nfVtdID0gW107XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMoc3FsKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgdGFibGVfbmFtZSA9IG1hdGNoWzFdO1xuICAgIGlmICghL1xcKC8udGVzdCh0YWJsZV9uYW1lKSkge1xuICAgICAgLy8gZXhjbHVkZSBmdW5jdGlvbiBjYWxsc1xuICAgICAgbGV0IGFsaWFzID0gbWF0Y2hbMl0gYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIGlmIChhbGlhcyAmJiAvb258d2hlcmV8aW5uZXJ8bGVmdHxyaWdodHxqb2luLy50ZXN0KGFsaWFzKSkge1xuICAgICAgICBhbGlhcyA9IG51bGw7XG4gICAgICB9XG4gICAgICB0YWJsZXMucHVzaCh7XG4gICAgICAgIHRhYmxlX25hbWUsXG4gICAgICAgIGFsaWFzOiBhbGlhcyB8fCB0YWJsZV9uYW1lXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFibGVzO1xufVxuXG5pbnRlcmZhY2UgTW9uYWNvRWRpdG9yUHJvcHMge1xuICBjb2RlOiBzdHJpbmc7XG4gIGlzUmVhZE9ubHk/OiBib29sZWFuO1xuICBvbkNoYW5nZTogT25DaGFuZ2U7XG4gIG9uUnVuUXVlcnk6ICgpID0+IHZvaWQ7XG4gIHRhYmxlU2NoZW1hPzoge3RhYmxlX25hbWU6IHN0cmluZzsgY29sdW1uX25hbWU6IHN0cmluZ31bXTtcbn1cblxuY29uc3QgTW9uYWNvRWRpdG9yOiBSZWFjdC5GQzxNb25hY29FZGl0b3JQcm9wcz4gPSAoe1xuICBvblJ1blF1ZXJ5LFxuICBvbkNoYW5nZSxcbiAgY29kZSxcbiAgdGFibGVTY2hlbWEsXG4gIGlzUmVhZE9ubHlcbn0pID0+IHtcbiAgLy8gcHJpdmF0ZSBlZGl0b3I/OiBtb25hY28uZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcjtcbiAgY29uc3Qgc2NoZW1hVGFibGVOYW1lcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHRhYmxlU2NoZW1hID8gdW5pcSh0YWJsZVNjaGVtYS5tYXAoZCA9PiBkLnRhYmxlX25hbWUpKSA6IFtdKSxcbiAgICBbdGFibGVTY2hlbWFdXG4gICk7XG4gIGNvbnN0IHNjaGVtYVRhYmxlTmFtZXNTZXQgPSB1c2VNZW1vKCgpID0+IG5ldyBTZXQoc2NoZW1hVGFibGVOYW1lcyksIFtzY2hlbWFUYWJsZU5hbWVzXSk7XG4gIGNvbnN0IGhhbmRsZVJ1blF1ZXJ5UmVmID0gdXNlUmVmKG9uUnVuUXVlcnkpO1xuICBoYW5kbGVSdW5RdWVyeVJlZi5jdXJyZW50ID0gb25SdW5RdWVyeTtcblxuICBjb25zdCBoYW5kbGVFZGl0b3JEaWRNb3VudDogT25Nb3VudCA9IHVzZUNhbGxiYWNrKFxuICAgIGVkaXRvciA9PiB7XG4gICAgICAvLyB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICAgIGVkaXRvci5mb2N1cygpO1xuXG4gICAgICBlZGl0b3IuYWRkQWN0aW9uKHtcbiAgICAgICAgaWQ6ICdydW4tcXVlcnknLFxuICAgICAgICBsYWJlbDogJ1J1biBRdWVyeScsXG4gICAgICAgIGtleWJpbmRpbmdzOiBbXG4gICAgICAgICAgbW9uYWNvLktleU1vZC5DdHJsQ21kIHwgbW9uYWNvLktleUNvZGUuRW50ZXIsXG4gICAgICAgICAgbW9uYWNvLktleU1vZC5TaGlmdCB8IG1vbmFjby5LZXlDb2RlLkVudGVyXG4gICAgICAgIF0sXG4gICAgICAgIGNvbnRleHRNZW51R3JvdXBJZDogJ2N1c3RvbScsXG4gICAgICAgIGNvbnRleHRNZW51T3JkZXI6IDAsXG4gICAgICAgIHJ1bjogKCkgPT4gaGFuZGxlUnVuUXVlcnlSZWYuY3VycmVudCgpXG4gICAgICB9KTtcblxuICAgICAgbW9uYWNvLmxhbmd1YWdlcy5yZWdpc3RlckNvbXBsZXRpb25JdGVtUHJvdmlkZXIoJyonLCB7XG4gICAgICAgIHByb3ZpZGVDb21wbGV0aW9uSXRlbXM6IChtb2RlbCwgcG9zaXRpb24sIF9jb250ZXh0LCBfY2FuY2VsYXRpb25Ub2tlbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zOiBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnbXlDdXN0b21TbmlwcGV0JyxcbiAgICAgICAgICAgICAga2luZDogbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbUtpbmQuU25pcHBldCxcbiAgICAgICAgICAgICAgaW5zZXJ0VGV4dDogJ1RoaXMgaXMgYSBwaWVjZSBvZiBjdXN0b20gY29kZScsXG4gICAgICAgICAgICAgIGluc2VydFRleHRSdWxlczogbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbUluc2VydFRleHRSdWxlLkluc2VydEFzU25pcHBldCxcbiAgICAgICAgICAgICAgZG9jdW1lbnRhdGlvbjogJ1RoaXMgaXMgYSBwaWVjZSBvZiBjdXN0b20gY29kZSdcbiAgICAgICAgICAgICAgLy8gVE9ETzogcmFuZ2UgaXMgbWlzc2luZ1xuICAgICAgICAgICAgfSBhcyBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtXG4gICAgICAgICAgXTtcblxuICAgICAgICAgIGNvbnN0IGZ1bGxRdWVyeVRleHQgPSBtb2RlbC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgICAgY29uc3QgdGFibGVOYW1lc0FuZEFsaWFzZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihcbiAgICAgICAgICAgIHBhcnNlU3FsQW5kRmluZFRhYmxlTmFtZUFuZEFsaWFzZXMoZnVsbFF1ZXJ5VGV4dCkubWFwKCh7dGFibGVfbmFtZSwgYWxpYXN9KSA9PiBbXG4gICAgICAgICAgICAgIGFsaWFzLFxuICAgICAgICAgICAgICB0YWJsZV9uYW1lXG4gICAgICAgICAgICBdKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCB0aGlzTGluZSA9IG1vZGVsLmdldFZhbHVlSW5SYW5nZSh7XG4gICAgICAgICAgICBzdGFydExpbmVOdW1iZXI6IHBvc2l0aW9uLmxpbmVOdW1iZXIsXG4gICAgICAgICAgICBzdGFydENvbHVtbjogMSxcbiAgICAgICAgICAgIGVuZExpbmVOdW1iZXI6IHBvc2l0aW9uLmxpbmVOdW1iZXIsXG4gICAgICAgICAgICBlbmRDb2x1bW46IHBvc2l0aW9uLmNvbHVtblxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IHRoaXNUb2tlbiA9IHRoaXNMaW5lLnRyaW0oKS5zcGxpdCgnICcpLnNsaWNlKC0xKT8uWzBdIHx8ICcnO1xuXG4gICAgICAgICAgY29uc3QgbGFzdFRva2VuQmVmb3JlU3BhY2UgPSAvXFxzPyhcXHcrKVxccytcXHcrJC8uZXhlYyh0aGlzTGluZS50cmltKCkpPy5bMV07XG4gICAgICAgICAgY29uc3QgbGFzdFRva2VuQmVmb3JlRG90ID0gLyhcXHcrKVxcLlxcdyokLy5leGVjKHRoaXNUb2tlbik/LlsxXTtcblxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRhYmxlTmFtZXNBbmRBbGlhc2VzLCB0aGlzVG9rZW4sIGxhc3RUb2tlbkJlZm9yZVNwYWNlLCBsYXN0VG9rZW5CZWZvcmVEb3QpO1xuXG4gICAgICAgICAgaWYgKGxhc3RUb2tlbkJlZm9yZVNwYWNlICYmIC9mcm9tfGpvaW58dXBkYXRlfGludG8vLnRlc3QobGFzdFRva2VuQmVmb3JlU3BhY2UpKSB7XG4gICAgICAgICAgICBzdWdnZXN0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAuLi5zY2hlbWFUYWJsZU5hbWVzLm1hcChcbiAgICAgICAgICAgICAgICB0YWJsZV9uYW1lID0+XG4gICAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGFibGVfbmFtZSxcbiAgICAgICAgICAgICAgICAgICAga2luZDogbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbUtpbmQuRmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGluc2VydFRleHQ6IHRhYmxlX25hbWVcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogcmFuZ2UgaXMgbWlzc2luZ1xuICAgICAgICAgICAgICAgICAgfSBhcyBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChsYXN0VG9rZW5CZWZvcmVEb3QpIHtcbiAgICAgICAgICAgIGxldCB0YWJsZV9uYW1lID0gbnVsbCBhcyBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgICAgaWYgKHNjaGVtYVRhYmxlTmFtZXNTZXQuaGFzKGxhc3RUb2tlbkJlZm9yZURvdCkpIHtcbiAgICAgICAgICAgICAgdGFibGVfbmFtZSA9IGxhc3RUb2tlbkJlZm9yZURvdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGFibGVOYW1lc0FuZEFsaWFzZXMuZ2V0KGxhc3RUb2tlbkJlZm9yZURvdCkpIHtcbiAgICAgICAgICAgICAgdGFibGVfbmFtZSA9IHRhYmxlTmFtZXNBbmRBbGlhc2VzLmdldChsYXN0VG9rZW5CZWZvcmVEb3QpIGFzIHN0cmluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YWJsZV9uYW1lICYmIHRhYmxlU2NoZW1hKSB7XG4gICAgICAgICAgICAgIHN1Z2dlc3Rpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgLi4udGFibGVTY2hlbWFcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZCA9PiBkLnRhYmxlX25hbWUgPT09IHRhYmxlX25hbWUpXG4gICAgICAgICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgICAgICAoe2NvbHVtbl9uYW1lfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbHVtbl9uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbUtpbmQuRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRUZXh0OiBjb2x1bW5fbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogcmFuZ2UgaXMgbWlzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgIH0gYXMgbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VnZ2VzdGlvbnM6IHVuaXFCeShzdWdnZXN0aW9ucywgcyA9PiBzLmluc2VydFRleHQpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbdGFibGVTY2hlbWEsIHNjaGVtYVRhYmxlTmFtZXMsIHNjaGVtYVRhYmxlTmFtZXNTZXRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8RWRpdG9yXG4gICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgIHRoZW1lPVwidnMtZGFya1wiXG4gICAgICBkZWZhdWx0TGFuZ3VhZ2U9XCJzcWxcIlxuICAgICAgZGVmYXVsdFZhbHVlPXtjb2RlfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Nb3VudD17aGFuZGxlRWRpdG9yRGlkTW91bnR9XG4gICAgICBvcHRpb25zPXt7XG4gICAgICAgIC4uLk1PTkFDT19PUFRJT05TLFxuICAgICAgICByZWFkT25seTogaXNSZWFkT25seVxuICAgICAgfX1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uYWNvRWRpdG9yO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLFFBQU8sT0FBTztBQUN6RCxPQUFP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
|