@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.
Files changed (42) hide show
  1. package/dist/cjs/adapters/duckdb-wasm-adapter.js +258 -0
  2. package/dist/{components → cjs/components}/index.js +1 -1
  3. package/dist/cjs/components/monaco-editor.js +174 -0
  4. package/dist/cjs/components/preview-data-panel.js +127 -0
  5. package/dist/cjs/components/schema-panel.js +170 -0
  6. package/dist/cjs/components/sql-panel.js +395 -0
  7. package/dist/cjs/components/tree.js +90 -0
  8. package/dist/{index.js → cjs/index.js} +1 -1
  9. package/dist/{plugin.js → cjs/plugin.js} +2 -2
  10. package/dist/cjs/processors/data-processor.js +353 -0
  11. package/dist/cjs/table/duckdb-table-utils.js +675 -0
  12. package/dist/cjs/table/duckdb-table.js +553 -0
  13. package/dist/{table → cjs/table}/index.js +1 -1
  14. package/dist/cjs/utils/perf.js +46 -0
  15. package/dist/esm/adapters/duckdb-wasm-adapter.js +251 -0
  16. package/dist/esm/components/index.js +9 -0
  17. package/dist/esm/components/monaco-editor.js +167 -0
  18. package/dist/esm/components/preview-data-panel.js +120 -0
  19. package/dist/esm/components/schema-panel.js +164 -0
  20. package/dist/esm/components/sql-panel.js +388 -0
  21. package/dist/esm/components/tree.js +82 -0
  22. package/dist/esm/index.js +9 -0
  23. package/dist/esm/plugin.js +22 -0
  24. package/dist/esm/processors/data-processor.js +342 -0
  25. package/dist/esm/table/duckdb-table-utils.js +650 -0
  26. package/dist/esm/table/duckdb-table.js +548 -0
  27. package/dist/esm/table/index.js +5 -0
  28. package/dist/esm/utils/perf.js +40 -0
  29. package/dist/processors/data-processor.d.ts +2 -0
  30. package/dist/table/duckdb-table-utils.d.ts +11 -2
  31. package/dist/table/duckdb-table.d.ts +7 -0
  32. package/package.json +25 -22
  33. package/dist/adapters/duckdb-wasm-adapter.js +0 -259
  34. package/dist/components/monaco-editor.js +0 -175
  35. package/dist/components/preview-data-panel.js +0 -128
  36. package/dist/components/schema-panel.js +0 -171
  37. package/dist/components/sql-panel.js +0 -396
  38. package/dist/components/tree.js +0 -91
  39. package/dist/processors/data-processor.js +0 -353
  40. package/dist/table/duckdb-table-utils.js +0 -669
  41. package/dist/table/duckdb-table.js +0 -480
  42. 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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZHVja2RiVGFibGVVdGlscyIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFibGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuZXhwb3J0ICogZnJvbSAnLi9kdWNrZGItdGFibGUtdXRpbHMnO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUdBLElBQUFBLGlCQUFBLEdBQUFDLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFILGlCQUFBLEVBQUFJLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFMLGlCQUFBLENBQUFLLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUFULGlCQUFBLENBQUFLLEdBQUE7SUFBQTtFQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
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+IHtcbiAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAvLyBTZWxlY3QgYSBidW5kbGUgYmFzZWQgb24gYnJvd3NlciBjaGVja3NcbiAgY29uc3QgSlNERUxJVlJfQlVORExFUyA9IGR1Y2tkYi5nZXRKc0RlbGl2ckJ1bmRsZXMoKTtcbiAgY29uc3QgYnVuZGxlID0gYXdhaXQgZHVja2RiLnNlbGVjdEJ1bmRsZShKU0RFTElWUl9CVU5ETEVTKTtcbiAgaWYgKCFidW5kbGUubWFpbldvcmtlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgRHVja0RCJyk7XG4gIH1cblxuICBjb25zdCB3b3JrZXJfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChcbiAgICBuZXcgQmxvYihbYGltcG9ydFNjcmlwdHMoXCIke2J1bmRsZS5tYWluV29ya2VyfVwiKTtgXSwge1xuICAgICAgdHlwZTogJ3RleHQvamF2YXNjcmlwdCdcbiAgICB9KVxuICApO1xuXG4gIC8vIEluc3RhbnRpYXRlIHRoZSBhc3luYyB2ZXJzaW9uIG9mIER1Y2tEQi13YXNtXG4gIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7XG4gIGNvbnN0IGxvZ2dlciA9IGRlYnVnID8gbmV3IGR1Y2tkYi5Db25zb2xlTG9nZ2VyKCkgOiBuZXcgZHVja2RiLlZvaWRMb2dnZXIoKTtcbiAgY29uc3QgZGIgPSBuZXcgQXN5bmNEdWNrREIobG9nZ2VyLCB3b3JrZXIpO1xuICBhd2FpdCBkYi5pbnN0YW50aWF0ZShidW5kbGUubWFpbk1vZHVsZSwgYnVuZGxlLnB0aHJlYWRXb3JrZXIpO1xuICBVUkwucmV2b2tlT2JqZWN0VVJMKHdvcmtlcl91cmwpO1xuXG4gIGlmIChjb25maWcpIHtcbiAgICBpZiAoY29uZmlnLnBhdGgpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGNvbmZpZy5wYXRoKTtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpO1xuICAgICAgY29uc3QgZmlsZU5hbWVNYXRjaCA9IGNvbmZpZy5wYXRoLm1hdGNoKC9bXi9dKiQvKTtcbiAgICAgIGlmIChmaWxlTmFtZU1hdGNoKSB7XG4gICAgICAgIGNvbmZpZy5wYXRoID0gZmlsZU5hbWVNYXRjaFswXTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGRiLnJlZ2lzdGVyRmlsZUJ1ZmZlcihjb25maWcucGF0aCwgbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSk7XG4gICAgfVxuICAgIGF3YWl0IGRiLm9wZW4oY29uZmlnKTtcbiAgfVxuXG4gIGlmIChkZWJ1Zykge1xuICAgIGxvZ0VsYXBzZWRUaW1lKCdEdWNrREIgaW5pdGlhbGl6ZWQnLCBzdGFydCk7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRHVja0RiQ29uZmlnOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMil9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYjtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFHQSxPQUFPLEtBQUtBLE1BQU0sTUFBTSxxQkFBcUI7QUFDN0MsU0FBUUMsV0FBVyxRQUE0QyxxQkFBcUI7QUFJcEYsU0FBUUMsY0FBYyxRQUFPLGVBQWU7QUFBQyxJQUV2Q0MsVUFBVTtFQUdkLFNBQUFBLFdBQVlDLFVBQWlDLEVBQUU7SUFBQUMsZUFBQSxPQUFBRixVQUFBO0lBQUFHLGVBQUE7SUFDN0MsSUFBSSxDQUFDRixVQUFVLEdBQUdBLFVBQVU7RUFDOUI7RUFBQyxPQUFBRyxZQUFBLENBQUFKLFVBQUE7SUFBQUssR0FBQTtJQUFBQyxLQUFBO01BQUEsSUFBQUMsTUFBQSxHQUFB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
@@ -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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