@kepler.gl/duckdb 3.3.0-alpha.0 → 3.3.0-alpha.10
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 +670 -0
- package/dist/cjs/table/duckdb-table.js +482 -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 +645 -0
- package/dist/esm/table/duckdb-table.js +477 -0
- package/dist/esm/table/index.js +5 -0
- package/dist/esm/utils/perf.js +40 -0
- package/dist/table/duckdb-table-utils.d.ts +7 -0
- package/package.json +28 -24
- 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
package/package.json
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/duckdb",
|
|
3
3
|
"author": "Shan He <heshan0131@gmail.com>",
|
|
4
|
-
"version": "3.3.0-alpha.
|
|
4
|
+
"version": "3.3.0-alpha.10",
|
|
5
5
|
"description": "DuckDB plugin for Kepler.gl",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"main": "dist/index.js",
|
|
7
|
+
"main": "dist/cjs/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
|
-
"import": "./dist/index.js",
|
|
13
|
-
"require": "./dist/index.js"
|
|
12
|
+
"import": "./dist/esm/index.js",
|
|
13
|
+
"require": "./dist/cjs/index.js",
|
|
14
|
+
"default": "./dist/cjs/index.js"
|
|
14
15
|
},
|
|
15
16
|
"./components": {
|
|
16
17
|
"types": "./dist/components/index.d.ts",
|
|
17
|
-
"import": "./dist/components/index.js",
|
|
18
|
-
"require": "./dist/components/index.js"
|
|
18
|
+
"import": "./dist/esm/components/index.js",
|
|
19
|
+
"require": "./dist/cjs/components/index.js",
|
|
20
|
+
"default": "./dist/cjs/components/index.js"
|
|
19
21
|
},
|
|
20
22
|
"./table": {
|
|
21
23
|
"types": "./dist/table/index.d.ts",
|
|
22
|
-
"import": "./dist/table/index.js",
|
|
23
|
-
"require": "./dist/table/index.js"
|
|
24
|
+
"import": "./dist/esm/table/index.js",
|
|
25
|
+
"require": "./dist/cjs/table/index.js",
|
|
26
|
+
"default": "./dist/cjs/table/index.js"
|
|
24
27
|
}
|
|
25
28
|
},
|
|
26
29
|
"keywords": [
|
|
@@ -31,27 +34,26 @@
|
|
|
31
34
|
"url": "https://github.com/keplergl/kepler.gl.git"
|
|
32
35
|
},
|
|
33
36
|
"scripts": {
|
|
34
|
-
"build": "rm -fr dist && babel src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'",
|
|
35
|
-
"build:umd": "NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack/umd.js --progress --env.prod",
|
|
37
|
+
"build": "rm -fr dist && babel src --out-dir dist/cjs --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts' && BABEL_ENV=esm babel src --out-dir dist/esm --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'",
|
|
36
38
|
"build:types": "tsc --project ./tsconfig.production.json",
|
|
37
39
|
"prepublishOnly": "babel-node ../../scripts/license-header/bin --license ../../FILE-HEADER && yarn build && yarn build:types",
|
|
38
|
-
"stab": "mkdir -p dist/components dist/table && echo \"export * from '
|
|
40
|
+
"stab": "mkdir -p dist/cjs/components dist/cjs/table dist/esm/components dist/esm/table && echo \"'use strict'; Object.assign(module.exports, require('../../src'));\" > dist/cjs/index.js && echo \"export * from '../../src';\" > dist/esm/index.js && echo \"'use strict'; Object.assign(module.exports, require('../../../src/components'));\" > dist/cjs/components/index.js && echo \"export * from '../../../src/components';\" > dist/esm/components/index.js && echo \"'use strict'; Object.assign(module.exports, require('../../../src/table'));\" > dist/cjs/table/index.js && echo \"export * from '../../../src/table';\" > dist/esm/table/index.js"
|
|
39
41
|
},
|
|
40
42
|
"files": [
|
|
41
|
-
"dist"
|
|
42
|
-
"umd"
|
|
43
|
+
"dist"
|
|
43
44
|
],
|
|
44
45
|
"dependencies": {
|
|
45
46
|
"@duckdb/duckdb-wasm": "^1.28.0",
|
|
46
|
-
"@kepler.gl/common-utils": "3.3.0-alpha.
|
|
47
|
-
"@kepler.gl/constants": "3.3.0-alpha.
|
|
48
|
-
"@kepler.gl/processors": "3.3.0-alpha.
|
|
49
|
-
"@kepler.gl/table": "3.3.0-alpha.
|
|
50
|
-
"@kepler.gl/types": "3.3.0-alpha.
|
|
51
|
-
"@kepler.gl/utils": "3.3.0-alpha.
|
|
52
|
-
"@monaco-editor/react": "^4.
|
|
47
|
+
"@kepler.gl/common-utils": "3.3.0-alpha.10",
|
|
48
|
+
"@kepler.gl/constants": "3.3.0-alpha.10",
|
|
49
|
+
"@kepler.gl/processors": "3.3.0-alpha.10",
|
|
50
|
+
"@kepler.gl/table": "3.3.0-alpha.10",
|
|
51
|
+
"@kepler.gl/types": "3.3.0-alpha.10",
|
|
52
|
+
"@kepler.gl/utils": "3.3.0-alpha.10",
|
|
53
|
+
"@monaco-editor/react": "^4.7.0",
|
|
53
54
|
"@radix-ui/react-collapsible": "^1.1.0",
|
|
54
55
|
"apache-arrow": ">=15.0.0",
|
|
56
|
+
"es-toolkit": "^1.39.10",
|
|
55
57
|
"monaco-editor": "^0.52.0",
|
|
56
58
|
"react-resizable-panels": "^2.1.7"
|
|
57
59
|
},
|
|
@@ -62,14 +64,16 @@
|
|
|
62
64
|
"maintainers": [
|
|
63
65
|
"Shan He <heshan0131@gmail.com>",
|
|
64
66
|
"Igor Dykhta <dikhta.igor@gmail.com>",
|
|
65
|
-
"Ilya Boyandin <ilya@boyandin.me>"
|
|
67
|
+
"Ilya Boyandin <ilya@boyandin.me>",
|
|
68
|
+
"Xun Li <lixun910@gmail.com>"
|
|
66
69
|
],
|
|
67
70
|
"engines": {
|
|
68
|
-
"node": ">=
|
|
71
|
+
"node": ">=20"
|
|
69
72
|
},
|
|
70
73
|
"volta": {
|
|
71
|
-
"node": "
|
|
74
|
+
"node": "20.19.3",
|
|
72
75
|
"yarn": "4.4.0"
|
|
73
76
|
},
|
|
74
|
-
"packageManager": "yarn@4.4.0"
|
|
77
|
+
"packageManager": "yarn@4.4.0",
|
|
78
|
+
"module": "dist/esm/index.js"
|
|
75
79
|
}
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.DuckDBWasmAdapter = void 0;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _duckdbWasm = _interopRequireWildcard(require("@duckdb/duckdb-wasm"));
|
|
15
|
-
var duckdb = _duckdbWasm;
|
|
16
|
-
var _perf = require("../utils/perf");
|
|
17
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
19
|
-
// SPDX-License-Identifier: MIT
|
|
20
|
-
// Copyright contributors to the kepler.gl project
|
|
21
|
-
var Connection = /*#__PURE__*/function () {
|
|
22
|
-
function Connection(connection) {
|
|
23
|
-
(0, _classCallCheck2["default"])(this, Connection);
|
|
24
|
-
(0, _defineProperty2["default"])(this, "connection", void 0);
|
|
25
|
-
this.connection = connection;
|
|
26
|
-
}
|
|
27
|
-
return (0, _createClass2["default"])(Connection, [{
|
|
28
|
-
key: "query",
|
|
29
|
-
value: function () {
|
|
30
|
-
var _query = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(statement) {
|
|
31
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
32
|
-
while (1) switch (_context.prev = _context.next) {
|
|
33
|
-
case 0:
|
|
34
|
-
return _context.abrupt("return", this.connection.query(statement));
|
|
35
|
-
case 1:
|
|
36
|
-
case "end":
|
|
37
|
-
return _context.stop();
|
|
38
|
-
}
|
|
39
|
-
}, _callee, this);
|
|
40
|
-
}));
|
|
41
|
-
function query(_x) {
|
|
42
|
-
return _query.apply(this, arguments);
|
|
43
|
-
}
|
|
44
|
-
return query;
|
|
45
|
-
}()
|
|
46
|
-
}, {
|
|
47
|
-
key: "insertArrowTable",
|
|
48
|
-
value: function () {
|
|
49
|
-
var _insertArrowTable = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(arrowTable, params) {
|
|
50
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
51
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
52
|
-
case 0:
|
|
53
|
-
_context2.next = 2;
|
|
54
|
-
return this.connection.insertArrowTable(arrowTable, params);
|
|
55
|
-
case 2:
|
|
56
|
-
case "end":
|
|
57
|
-
return _context2.stop();
|
|
58
|
-
}
|
|
59
|
-
}, _callee2, this);
|
|
60
|
-
}));
|
|
61
|
-
function insertArrowTable(_x2, _x3) {
|
|
62
|
-
return _insertArrowTable.apply(this, arguments);
|
|
63
|
-
}
|
|
64
|
-
return insertArrowTable;
|
|
65
|
-
}()
|
|
66
|
-
}, {
|
|
67
|
-
key: "close",
|
|
68
|
-
value: function () {
|
|
69
|
-
var _close = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
70
|
-
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
71
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
72
|
-
case 0:
|
|
73
|
-
_context3.next = 2;
|
|
74
|
-
return this.connection.close();
|
|
75
|
-
case 2:
|
|
76
|
-
case "end":
|
|
77
|
-
return _context3.stop();
|
|
78
|
-
}
|
|
79
|
-
}, _callee3, this);
|
|
80
|
-
}));
|
|
81
|
-
function close() {
|
|
82
|
-
return _close.apply(this, arguments);
|
|
83
|
-
}
|
|
84
|
-
return close;
|
|
85
|
-
}()
|
|
86
|
-
}]);
|
|
87
|
-
}();
|
|
88
|
-
var DuckDBWasmAdapter = exports.DuckDBWasmAdapter = /*#__PURE__*/function () {
|
|
89
|
-
function DuckDBWasmAdapter(options) {
|
|
90
|
-
(0, _classCallCheck2["default"])(this, DuckDBWasmAdapter);
|
|
91
|
-
(0, _defineProperty2["default"])(this, "duckDB", void 0);
|
|
92
|
-
// pass existing AsyncDuckDB object created elsewhere
|
|
93
|
-
if (options instanceof Promise || options instanceof _duckdbWasm.AsyncDuckDB) {
|
|
94
|
-
this.duckDB = options;
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// or create a new AsyncDuckDB object
|
|
99
|
-
var _ref = options || {},
|
|
100
|
-
_ref$debug = _ref.debug,
|
|
101
|
-
debug = _ref$debug === void 0 ? false : _ref$debug,
|
|
102
|
-
config = _ref.config;
|
|
103
|
-
this.duckDB = initializeDuckDbWasm(config, debug);
|
|
104
|
-
}
|
|
105
|
-
return (0, _createClass2["default"])(DuckDBWasmAdapter, [{
|
|
106
|
-
key: "connect",
|
|
107
|
-
value: function () {
|
|
108
|
-
var _connect = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
109
|
-
var db, c;
|
|
110
|
-
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
111
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
112
|
-
case 0:
|
|
113
|
-
_context4.next = 2;
|
|
114
|
-
return this.duckDB;
|
|
115
|
-
case 2:
|
|
116
|
-
db = _context4.sent;
|
|
117
|
-
_context4.next = 5;
|
|
118
|
-
return db.connect();
|
|
119
|
-
case 5:
|
|
120
|
-
c = _context4.sent;
|
|
121
|
-
return _context4.abrupt("return", new Connection(c));
|
|
122
|
-
case 7:
|
|
123
|
-
case "end":
|
|
124
|
-
return _context4.stop();
|
|
125
|
-
}
|
|
126
|
-
}, _callee4, this);
|
|
127
|
-
}));
|
|
128
|
-
function connect() {
|
|
129
|
-
return _connect.apply(this, arguments);
|
|
130
|
-
}
|
|
131
|
-
return connect;
|
|
132
|
-
}()
|
|
133
|
-
}, {
|
|
134
|
-
key: "registerFileText",
|
|
135
|
-
value: function () {
|
|
136
|
-
var _registerFileText = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(filename, content) {
|
|
137
|
-
var db;
|
|
138
|
-
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
139
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
140
|
-
case 0:
|
|
141
|
-
_context5.next = 2;
|
|
142
|
-
return this.duckDB;
|
|
143
|
-
case 2:
|
|
144
|
-
db = _context5.sent;
|
|
145
|
-
_context5.next = 5;
|
|
146
|
-
return db.registerFileText(filename, content);
|
|
147
|
-
case 5:
|
|
148
|
-
case "end":
|
|
149
|
-
return _context5.stop();
|
|
150
|
-
}
|
|
151
|
-
}, _callee5, this);
|
|
152
|
-
}));
|
|
153
|
-
function registerFileText(_x4, _x5) {
|
|
154
|
-
return _registerFileText.apply(this, arguments);
|
|
155
|
-
}
|
|
156
|
-
return registerFileText;
|
|
157
|
-
}()
|
|
158
|
-
}, {
|
|
159
|
-
key: "registerFileHandle",
|
|
160
|
-
value: function () {
|
|
161
|
-
var _registerFileHandle = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(name, handle, protocol, directIO) {
|
|
162
|
-
var db;
|
|
163
|
-
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
164
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
165
|
-
case 0:
|
|
166
|
-
_context6.next = 2;
|
|
167
|
-
return this.duckDB;
|
|
168
|
-
case 2:
|
|
169
|
-
db = _context6.sent;
|
|
170
|
-
_context6.next = 5;
|
|
171
|
-
return db.registerFileHandle(name, handle, protocol, directIO);
|
|
172
|
-
case 5:
|
|
173
|
-
case "end":
|
|
174
|
-
return _context6.stop();
|
|
175
|
-
}
|
|
176
|
-
}, _callee6, this);
|
|
177
|
-
}));
|
|
178
|
-
function registerFileHandle(_x6, _x7, _x8, _x9) {
|
|
179
|
-
return _registerFileHandle.apply(this, arguments);
|
|
180
|
-
}
|
|
181
|
-
return registerFileHandle;
|
|
182
|
-
}()
|
|
183
|
-
}]);
|
|
184
|
-
}();
|
|
185
|
-
/**
|
|
186
|
-
* Initialize DuckDB with a browser-specific Wasm bundle.
|
|
187
|
-
*/
|
|
188
|
-
var initializeDuckDbWasm = /*#__PURE__*/function () {
|
|
189
|
-
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(config, debug) {
|
|
190
|
-
var start, JSDELIVR_BUNDLES, bundle, worker_url, worker, logger, db, res, buffer, fileNameMatch;
|
|
191
|
-
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
192
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
193
|
-
case 0:
|
|
194
|
-
start = performance.now(); // Select a bundle based on browser checks
|
|
195
|
-
JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles();
|
|
196
|
-
_context7.next = 4;
|
|
197
|
-
return duckdb.selectBundle(JSDELIVR_BUNDLES);
|
|
198
|
-
case 4:
|
|
199
|
-
bundle = _context7.sent;
|
|
200
|
-
if (bundle.mainWorker) {
|
|
201
|
-
_context7.next = 7;
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
throw new Error('Failed to initialize DuckDB');
|
|
205
|
-
case 7:
|
|
206
|
-
worker_url = URL.createObjectURL(new Blob(["importScripts(\"".concat(bundle.mainWorker, "\");")], {
|
|
207
|
-
type: 'text/javascript'
|
|
208
|
-
})); // Instantiate the async version of DuckDB-wasm
|
|
209
|
-
worker = new Worker(worker_url);
|
|
210
|
-
logger = debug ? new duckdb.ConsoleLogger() : new duckdb.VoidLogger();
|
|
211
|
-
db = new _duckdbWasm.AsyncDuckDB(logger, worker);
|
|
212
|
-
_context7.next = 13;
|
|
213
|
-
return db.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
214
|
-
case 13:
|
|
215
|
-
URL.revokeObjectURL(worker_url);
|
|
216
|
-
if (!config) {
|
|
217
|
-
_context7.next = 28;
|
|
218
|
-
break;
|
|
219
|
-
}
|
|
220
|
-
if (!config.path) {
|
|
221
|
-
_context7.next = 26;
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
_context7.next = 18;
|
|
225
|
-
return fetch(config.path);
|
|
226
|
-
case 18:
|
|
227
|
-
res = _context7.sent;
|
|
228
|
-
_context7.next = 21;
|
|
229
|
-
return res.arrayBuffer();
|
|
230
|
-
case 21:
|
|
231
|
-
buffer = _context7.sent;
|
|
232
|
-
fileNameMatch = config.path.match(/[^/]*$/);
|
|
233
|
-
if (fileNameMatch) {
|
|
234
|
-
config.path = fileNameMatch[0];
|
|
235
|
-
}
|
|
236
|
-
_context7.next = 26;
|
|
237
|
-
return db.registerFileBuffer(config.path, new Uint8Array(buffer));
|
|
238
|
-
case 26:
|
|
239
|
-
_context7.next = 28;
|
|
240
|
-
return db.open(config);
|
|
241
|
-
case 28:
|
|
242
|
-
if (debug) {
|
|
243
|
-
(0, _perf.logElapsedTime)('DuckDB initialized', start);
|
|
244
|
-
if (config) {
|
|
245
|
-
console.debug("DuckDbConfig: ".concat(JSON.stringify(config, null, 2)));
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return _context7.abrupt("return", db);
|
|
249
|
-
case 30:
|
|
250
|
-
case "end":
|
|
251
|
-
return _context7.stop();
|
|
252
|
-
}
|
|
253
|
-
}, _callee7);
|
|
254
|
-
}));
|
|
255
|
-
return function initializeDuckDbWasm(_x10, _x11) {
|
|
256
|
-
return _ref2.apply(this, arguments);
|
|
257
|
-
};
|
|
258
|
-
}();
|
|
259
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZHVja2RiV2FzbSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsImR1Y2tkYiIsIl9wZXJmIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiQ29ubmVjdGlvbiIsImNvbm5lY3Rpb24iLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsIl9xdWVyeSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwic3RhdGVtZW50Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInF1ZXJ5Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfaW5zZXJ0QXJyb3dUYWJsZSIsIl9jYWxsZWUyIiwiYXJyb3dUYWJsZSIsInBhcmFtcyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImluc2VydEFycm93VGFibGUiLCJfeDIiLCJfeDMiLCJfY2xvc2UiLCJfY2FsbGVlMyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImNsb3NlIiwiRHVja0RCV2FzbUFkYXB0ZXIiLCJleHBvcnRzIiwib3B0aW9ucyIsIlByb21pc2UiLCJBc3luY0R1Y2tEQiIsImR1Y2tEQiIsIl9yZWYiLCJfcmVmJGRlYnVnIiwiZGVidWciLCJjb25maWciLCJpbml0aWFsaXplRHVja0RiV2FzbSIsIl9jb25uZWN0IiwiX2NhbGxlZTQiLCJkYiIsImMiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJzZW50IiwiY29ubmVjdCIsIl9yZWdpc3RlckZpbGVUZXh0IiwiX2NhbGxlZTUiLCJmaWxlbmFtZSIsImNvbnRlbnQiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJyZWdpc3RlckZpbGVUZXh0IiwiX3g0IiwiX3g1IiwiX3JlZ2lzdGVyRmlsZUhhbmRsZSIsIl9jYWxsZWU2IiwibmFtZSIsImhhbmRsZSIsInByb3RvY29sIiwiZGlyZWN0SU8iLCJfY2FsbGVlNiQiLCJfY29udGV4dDYiLCJyZWdpc3RlckZpbGVIYW5kbGUiLCJfeDYiLCJfeDciLCJfeDgiLCJfeDkiLCJfcmVmMiIsIl9jYWxsZWU3Iiwic3RhcnQiLCJKU0RFTElWUl9CVU5ETEVTIiwiYnVuZGxlIiwid29ya2VyX3VybCIsIndvcmtlciIsImxvZ2dlciIsInJlcyIsImJ1ZmZlciIsImZpbGVOYW1lTWF0Y2giLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJwZXJmb3JtYW5jZSIsIm5vdyIsImdldEpzRGVsaXZyQnVuZGxlcyIsInNlbGVjdEJ1bmRsZSIsIm1haW5Xb3JrZXIiLCJFcnJvciIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsIkJsb2IiLCJjb25jYXQiLCJ0eXBlIiwiV29ya2VyIiwiQ29uc29sZUxvZ2dlciIsIlZvaWRMb2dnZXIiLCJpbnN0YW50aWF0ZSIsIm1haW5Nb2R1bGUiLCJwdGhyZWFkV29ya2VyIiwicmV2b2tlT2JqZWN0VVJMIiwicGF0aCIsImZldGNoIiwiYXJyYXlCdWZmZXIiLCJtYXRjaCIsInJlZ2lzdGVyRmlsZUJ1ZmZlciIsIlVpbnQ4QXJyYXkiLCJvcGVuIiwibG9nRWxhcHNlZFRpbWUiLCJjb25zb2xlIiwiSlNPTiIsInN0cmluZ2lmeSIsIl94MTAiLCJfeDExIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYXB0ZXJzL2R1Y2tkYi13YXNtLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0ICogYXMgYXJyb3cgZnJvbSAnYXBhY2hlLWFycm93JztcbmltcG9ydCAqIGFzIGR1Y2tkYiBmcm9tICdAZHVja2RiL2R1Y2tkYi13YXNtJztcbmltcG9ydCB7QXN5bmNEdWNrREIsIER1Y2tEQkNvbmZpZywgQXN5bmNEdWNrREJDb25uZWN0aW9ufSBmcm9tICdAZHVja2RiL2R1Y2tkYi13YXNtJztcblxuaW1wb3J0IHtEYXRhYmFzZUFkYXB0ZXIsIERhdGFiYXNlQ29ubmVjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7bG9nRWxhcHNlZFRpbWV9IGZyb20gJy4uL3V0aWxzL3BlcmYnO1xuXG5jbGFzcyBDb25uZWN0aW9uIGltcGxlbWVudHMgRGF0YWJhc2VDb25uZWN0aW9uIHtcbiAgcHJpdmF0ZSBjb25uZWN0aW9uOiBBc3luY0R1Y2tEQkNvbm5lY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29ubmVjdGlvbjogQXN5bmNEdWNrREJDb25uZWN0aW9uKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcbiAgfVxuXG4gIGFzeW5jIHF1ZXJ5KHN0YXRlbWVudDogc3RyaW5nKTogUHJvbWlzZTxhcnJvdy5UYWJsZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucXVlcnkoc3RhdGVtZW50KTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydEFycm93VGFibGUoYXJyb3dUYWJsZTogYXJyb3cuVGFibGUsIHBhcmFtczoge25hbWU6IHN0cmluZ30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uaW5zZXJ0QXJyb3dUYWJsZShhcnJvd1RhYmxlLCBwYXJhbXMpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmNsb3NlKCk7XG4gIH1cbn1cblxudHlwZSBEdWNrREJXYXNtQWRhcHRlclByb3BzID1cbiAgfCB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgICBjb25maWc/OiBEdWNrREJDb25maWc7XG4gICAgfVxuICB8IFByb21pc2U8QXN5bmNEdWNrREI+O1xuXG5leHBvcnQgY2xhc3MgRHVja0RCV2FzbUFkYXB0ZXIgaW1wbGVtZW50cyBEYXRhYmFzZUFkYXB0ZXIge1xuICBwcml2YXRlIGR1Y2tEQjogUHJvbWlzZTxBc3luY0R1Y2tEQj47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogRHVja0RCV2FzbUFkYXB0ZXJQcm9wcykge1xuICAgIC8vIHBhc3MgZXhpc3RpbmcgQXN5bmNEdWNrREIgb2JqZWN0IGNyZWF0ZWQgZWxzZXdoZXJlXG4gICAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBQcm9taXNlIHx8IG9wdGlvbnMgaW5zdGFuY2VvZiBBc3luY0R1Y2tEQikge1xuICAgICAgdGhpcy5kdWNrREIgPSBvcHRpb25zIGFzIGFueTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBvciBjcmVhdGUgYSBuZXcgQXN5bmNEdWNrREIgb2JqZWN0XG4gICAgY29uc3Qge2RlYnVnID0gZmFsc2UsIGNvbmZpZ30gPSBvcHRpb25zIHx8IHt9O1xuICAgIHRoaXMuZHVja0RCID0gaW5pdGlhbGl6ZUR1Y2tEYldhc20oY29uZmlnLCBkZWJ1Zyk7XG4gIH1cblxuICBhc3luYyBjb25uZWN0KCkge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgdGhpcy5kdWNrREI7XG4gICAgY29uc3QgYyA9IGF3YWl0IGRiLmNvbm5lY3QoKTtcbiAgICByZXR1cm4gbmV3IENvbm5lY3Rpb24oYyk7XG4gIH1cblxuICBhc3luYyByZWdpc3RlckZpbGVUZXh0KGZpbGVuYW1lOiBzdHJpbmcsIGNvbnRlbnQpIHtcbiAgICBjb25zdCBkYiA9IGF3YWl0IHRoaXMuZHVja0RCO1xuICAgIGF3YWl0IGRiLnJlZ2lzdGVyRmlsZVRleHQoZmlsZW5hbWUsIGNvbnRlbnQpO1xuICB9XG5cbiAgYXN5bmMgcmVnaXN0ZXJGaWxlSGFuZGxlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBoYW5kbGU6IGFueSxcbiAgICBwcm90b2NvbDogZHVja2RiLkR1Y2tEQkRhdGFQcm90b2NvbCxcbiAgICBkaXJlY3RJTzogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkYiA9IGF3YWl0IHRoaXMuZHVja0RCO1xuICAgIGF3YWl0IGRiLnJlZ2lzdGVyRmlsZUhhbmRsZShuYW1lLCBoYW5kbGUsIHByb3RvY29sLCBkaXJlY3RJTyk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbml0aWFsaXplIER1Y2tEQiB3aXRoIGEgYnJvd3Nlci1zcGVjaWZpYyBXYXNtIGJ1bmRsZS5cbiAqL1xuY29uc3QgaW5pdGlhbGl6ZUR1Y2tEYldhc20gPSBhc3luYyAoXG4gIGNvbmZpZz86IER1Y2tEQkNvbmZpZyxcbiAgZGVidWc/OiBib29sZWFuXG4pOiBQcm9taXNlPEFzeW5jRHVja0RCPiA9PiB7XG4gIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgLy8gU2VsZWN0IGEgYnVuZGxlIGJhc2VkIG9uIGJyb3dzZXIgY2hlY2tzXG4gIGNvbnN0IEpTREVMSVZSX0JVTkRMRVMgPSBkdWNrZGIuZ2V0SnNEZWxpdnJCdW5kbGVzKCk7XG4gIGNvbnN0IGJ1bmRsZSA9IGF3YWl0IGR1Y2tkYi5zZWxlY3RCdW5kbGUoSlNERUxJVlJfQlVORExFUyk7XG4gIGlmICghYnVuZGxlLm1haW5Xb3JrZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIER1Y2tEQicpO1xuICB9XG5cbiAgY29uc3Qgd29ya2VyX3VybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoXG4gICAgbmV3IEJsb2IoW2BpbXBvcnRTY3JpcHRzKFwiJHtidW5kbGUubWFpbldvcmtlcn1cIik7YF0sIHtcbiAgICAgIHR5cGU6ICd0ZXh0L2phdmFzY3JpcHQnXG4gICAgfSlcbiAgKTtcblxuICAvLyBJbnN0YW50aWF0ZSB0aGUgYXN5bmMgdmVyc2lvbiBvZiBEdWNrREItd2FzbVxuICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpO1xuICBjb25zdCBsb2dnZXIgPSBkZWJ1ZyA/IG5ldyBkdWNrZGIuQ29uc29sZUxvZ2dlcigpIDogbmV3IGR1Y2tkYi5Wb2lkTG9nZ2VyKCk7XG4gIGNvbnN0IGRiID0gbmV3IEFzeW5jRHVja0RCKGxvZ2dlciwgd29ya2VyKTtcbiAgYXdhaXQgZGIuaW5zdGFudGlhdGUoYnVuZGxlLm1haW5Nb2R1bGUsIGJ1bmRsZS5wdGhyZWFkV29ya2VyKTtcbiAgVVJMLnJldm9rZU9iamVjdFVSTCh3b3JrZXJfdXJsKTtcblxuICBpZiAoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5wYXRoKSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChjb25maWcucGF0aCk7XG4gICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCByZXMuYXJyYXlCdWZmZXIoKTtcbiAgICAgIGNvbnN0IGZpbGVOYW1lTWF0Y2ggPSBjb25maWcucGF0aC5tYXRjaCgvW14vXSokLyk7XG4gICAgICBpZiAoZmlsZU5hbWVNYXRjaCkge1xuICAgICAgICBjb25maWcucGF0aCA9IGZpbGVOYW1lTWF0Y2hbMF07XG4gICAgICB9XG4gICAgICBhd2FpdCBkYi5yZWdpc3RlckZpbGVCdWZmZXIoY29uZmlnLnBhdGgsIG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpO1xuICAgIH1cbiAgICBhd2FpdCBkYi5vcGVuKGNvbmZpZyk7XG4gIH1cblxuICBpZiAoZGVidWcpIHtcbiAgICBsb2dFbGFwc2VkVGltZSgnRHVja0RCIGluaXRpYWxpemVkJywgc3RhcnQpO1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYER1Y2tEYkNvbmZpZzogJHtKU09OLnN0cmluZ2lmeShjb25maWcsIG51bGwsIDIpfWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGI7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsV0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQThDLElBQUFDLE1BQUEsR0FBQUgsV0FBQTtBQUs5QyxJQUFBSSxLQUFBLEdBQUFGLE9BQUE7QUFBNkMsU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFMLHdCQUFBSyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLGNBQUFSLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBVDdDO0FBQ0E7QUFBQSxJQVVNVyxVQUFVO0VBR2QsU0FBQUEsV0FBWUMsVUFBaUMsRUFBRTtJQUFBLElBQUFDLGdCQUFBLG1CQUFBRixVQUFBO0lBQUEsSUFBQUcsZ0JBQUE7SUFDN0MsSUFBSSxDQUFDRixVQUFVLEdBQUdBLFVBQVU7RUFDOUI7RUFBQyxXQUFBRyxhQUFBLGFBQUFKLFVBQUE7SUFBQUssR0FBQTtJQUFBQyxLQUFBO01BQUEsSUFBQUMsTUFBQSxPQUFBQyxrQkFBQSwyQkFBQUMsWUFBQSxZQUFBQyxJQUFBLENBRUQsU0FBQUMsUUFBWUMsU0FBaUI7UUFBQSxPQUFBSCxZQUFBLFlBQUFJLElBQUEsVUFBQUMsU0FBQUMsUUFBQTtVQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1lBQUE7Y0FBQSxPQUFBRixRQUFBLENBQUFHLE1BQUEsV0FDcEIsSUFBSSxDQUFDakIsVUFBVSxDQUFDa0IsS0FBSyxDQUFDUCxTQUFTLENBQUM7WUFBQTtZQUFBO2NBQUEsT0FBQUcsUUFBQSxDQUFBSyxJQUFBO1VBQUE7UUFBQSxHQUFBVCxPQUFBO01BQUEsQ0FDeEM7TUFBQSxTQUZLUSxLQUFLQSxDQUFBRSxFQUFBO1FBQUEsT0FBQWQsTUFBQSxDQUFBZSxLQUFBLE9BQUFDLFNBQUE7TUFBQTtNQUFBLE9BQUxKLEtBQUs7SUFBQTtFQUFBO0lBQUFkLEdBQUE7SUFBQUMsS0FBQTtNQUFBLElBQUFrQixpQkFBQSxPQUFBaEIsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUlYLFNBQUFlLFNBQXVCQyxVQUF1QixFQUFFQyxNQUFzQjtRQUFBLE9BQUFsQixZQUFBLFlBQUFJLElBQUEsVUFBQWUsVUFBQUMsU0FBQTtVQUFBLGtCQUFBQSxTQUFBLENBQUFiLElBQUEsR0FBQWEsU0FBQSxDQUFBWixJQUFBO1lBQUE7Y0FBQVksU0FBQSxDQUFBWixJQUFBO2NBQUEsT0FDOUQsSUFBSSxDQUFDaEIsVUFBVSxDQUFDNkIsZ0JBQWdCLENBQUNKLFVBQVUsRUFBRUMsTUFBTSxDQUFDO1lBQUE7WUFBQTtjQUFBLE9BQUFFLFNBQUEsQ0FBQVQsSUFBQTtVQUFBO1FBQUEsR0FBQUssUUFBQTtNQUFBLENBQzNEO01BQUEsU0FGS0ssZ0JBQWdCQSxDQUFBQyxHQUFBLEVBQUFDLEdBQUE7UUFBQSxPQUFBUixpQkFBQSxDQUFBRixLQUFBLE9BQUFDLFNBQUE7TUFBQTtNQUFBLE9BQWhCTyxnQkFBZ0I7SUFBQTtFQUFBO0lBQUF6QixHQUFBO0lBQUFDLEtBQUE7TUFBQSxJQUFBMkIsTUFBQSxPQUFBekIsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUl0QixTQUFBd0IsU0FBQTtRQUFBLE9BQUF6QixZQUFBLFlBQUFJLElBQUEsVUFBQXNCLFVBQUFDLFNBQUE7VUFBQSxrQkFBQUEsU0FBQSxDQUFBcEIsSUFBQSxHQUFBb0IsU0FBQSxDQUFBbkIsSUFBQTtZQUFBO2NBQUFtQixTQUFBLENBQUFuQixJQUFBO2NBQUEsT0FDUSxJQUFJLENBQUNoQixVQUFVLENBQUNvQyxLQUFLLENBQUMsQ0FBQztZQUFBO1lBQUE7Y0FBQSxPQUFBRCxTQUFBLENBQUFoQixJQUFBO1VBQUE7UUFBQSxHQUFBYyxRQUFBO01BQUEsQ0FDOUI7TUFBQSxTQUZLRyxLQUFLQSxDQUFBO1FBQUEsT0FBQUosTUFBQSxDQUFBWCxLQUFBLE9BQUFDLFNBQUE7TUFBQTtNQUFBLE9BQUxjLEtBQUs7SUFBQTtFQUFBO0FBQUE7QUFBQSxJQVlBQyxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQTtFQUc1QixTQUFBQSxrQkFBWUUsT0FBK0IsRUFBRTtJQUFBLElBQUF0QyxnQkFBQSxtQkFBQW9DLGlCQUFBO0lBQUEsSUFBQW5DLGdCQUFBO0lBQzNDO0lBQ0EsSUFBSXFDLE9BQU8sWUFBWUMsT0FBTyxJQUFJRCxPQUFPLFlBQVlFLHVCQUFXLEVBQUU7TUFDaEUsSUFBSSxDQUFDQyxNQUFNLEdBQUdILE9BQWM7TUFDNUI7SUFDRjs7SUFFQTtJQUNBLElBQUFJLElBQUEsR0FBZ0NKLE9BQU8sSUFBSSxDQUFDLENBQUM7TUFBQUssVUFBQSxHQUFBRCxJQUFBLENBQXRDRSxLQUFLO01BQUxBLEtBQUssR0FBQUQsVUFBQSxjQUFHLEtBQUssR0FBQUEsVUFBQTtNQUFFRSxNQUFNLEdBQUFILElBQUEsQ0FBTkcsTUFBTTtJQUM1QixJQUFJLENBQUNKLE1BQU0sR0FBR0ssb0JBQW9CLENBQUNELE1BQU0sRUFBRUQsS0FBSyxDQUFDO0VBQ25EO0VBQUMsV0FBQTFDLGFBQUEsYUFBQWtDLGlCQUFBO0lBQUFqQyxHQUFBO0lBQUFDLEtBQUE7TUFBQSxJQUFBMkMsUUFBQSxPQUFBekMsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUVELFNBQUF3QyxTQUFBO1FBQUEsSUFBQUMsRUFBQSxFQUFBQyxDQUFBO1FBQUEsT0FBQTNDLFlBQUEsWUFBQUksSUFBQSxVQUFBd0MsVUFBQUMsU0FBQTtVQUFBLGtCQUFBQSxTQUFBLENBQUF0QyxJQUFBLEdBQUFzQyxTQUFBLENBQUFyQyxJQUFBO1lBQUE7Y0FBQXFDLFNBQUEsQ0FBQXJDLElBQUE7Y0FBQSxPQUNtQixJQUFJLENBQUMwQixNQUFNO1lBQUE7Y0FBdEJRLEVBQUUsR0FBQUcsU0FBQSxDQUFBQyxJQUFBO2NBQUFELFNBQUEsQ0FBQXJDLElBQUE7Y0FBQSxPQUNRa0MsRUFBRSxDQUFDSyxPQUFPLENBQUMsQ0FBQztZQUFBO2NBQXRCSixDQUFDLEdBQUFFLFNBQUEsQ0FBQUMsSUFBQTtjQUFBLE9BQUFELFNBQUEsQ0FBQXBDLE1BQUEsV0FDQSxJQUFJbEIsVUFBVSxDQUFDb0QsQ0FBQyxDQUFDO1lBQUE7WUFBQTtjQUFBLE9BQUFFLFNBQUEsQ0FBQWxDLElBQUE7VUFBQTtRQUFBLEdBQUE4QixRQUFBO01BQUEsQ0FDekI7TUFBQSxTQUpLTSxPQUFPQSxDQUFBO1FBQUEsT0FBQVAsUUFBQSxDQUFBM0IsS0FBQSxPQUFBQyxTQUFBO01BQUE7TUFBQSxPQUFQaUMsT0FBTztJQUFBO0VBQUE7SUFBQW5ELEdBQUE7SUFBQUMsS0FBQTtNQUFBLElBQUFtRCxpQkFBQSxPQUFBakQsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQU1iLFNBQUFnRCxTQUF1QkMsUUFBZ0IsRUFBRUMsT0FBTztRQUFBLElBQUFULEVBQUE7UUFBQSxPQUFBMUMsWUFBQSxZQUFBSSxJQUFBLFVBQUFnRCxVQUFBQyxTQUFBO1VBQUEsa0JBQUFBLFNBQUEsQ0FBQTlDLElBQUEsR0FBQThDLFNBQUEsQ0FBQTdDLElBQUE7WUFBQTtjQUFBNkMsU0FBQSxDQUFBN0MsSUFBQTtjQUFBLE9BQzdCLElBQUksQ0FBQzBCLE1BQU07WUFBQTtjQUF0QlEsRUFBRSxHQUFBVyxTQUFBLENBQUFQLElBQUE7Y0FBQU8sU0FBQSxDQUFBN0MsSUFBQTtjQUFBLE9BQ0ZrQyxFQUFFLENBQUNZLGdCQUFnQixDQUFDSixRQUFRLEVBQUVDLE9BQU8sQ0FBQztZQUFBO1lBQUE7Y0FBQSxPQUFBRSxTQUFBLENBQUExQyxJQUFBO1VBQUE7UUFBQSxHQUFBc0MsUUFBQTtNQUFBLENBQzdDO01BQUEsU0FIS0ssZ0JBQWdCQSxDQUFBQyxHQUFBLEVBQUFDLEdBQUE7UUFBQSxPQUFBUixpQkFBQSxDQUFBbkMsS0FBQSxPQUFBQyxTQUFBO01BQUE7TUFBQSxPQUFoQndDLGdCQUFnQjtJQUFBO0VBQUE7SUFBQTFELEdBQUE7SUFBQUMsS0FBQTtNQUFBLElBQUE0RCxtQkFBQSxPQUFBMUQsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUt0QixTQUFBeUQsU0FDRUMsSUFBWSxFQUNaQyxNQUFXLEVBQ1hDLFFBQW1DLEVBQ25DQyxRQUFpQjtRQUFBLElBQUFwQixFQUFBO1FBQUEsT0FBQTFDLFlBQUEsWUFBQUksSUFBQSxVQUFBMkQsVUFBQUMsU0FBQTtVQUFBLGtCQUFBQSxTQUFBLENBQUF6RCxJQUFBLEdBQUF5RCxTQUFBLENBQUF4RCxJQUFBO1lBQUE7Y0FBQXdELFNBQUEsQ0FBQXhELElBQUE7Y0FBQSxPQUVBLElBQUksQ0FBQzBCLE1BQU07WUFBQTtjQUF0QlEsRUFBRSxHQUFBc0IsU0FBQSxDQUFBbEIsSUFBQTtjQUFBa0IsU0FBQSxDQUFBeEQsSUFBQTtjQUFBLE9BQ0ZrQyxFQUFFLENBQUN1QixrQkFBa0IsQ0FBQ04sSUFBSSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxDQUFDO1lBQUE7WUFBQTtjQUFBLE9BQUFFLFNBQUEsQ0FBQXJELElBQUE7VUFBQTtRQUFBLEdBQUErQyxRQUFBO01BQUEsQ0FDOUQ7TUFBQSxTQVJLTyxrQkFBa0JBLENBQUFDLEdBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7UUFBQSxPQUFBWixtQkFBQSxDQUFBNUMsS0FBQSxPQUFBQyxTQUFBO01BQUE7TUFBQSxPQUFsQm1ELGtCQUFrQjtJQUFBO0VBQUE7QUFBQTtBQVcxQjtBQUNBO0FBQ0E7QUFDQSxJQUFNMUIsb0JBQW9CO0VBQUEsSUFBQStCLEtBQUEsT0FBQXZFLGtCQUFBLDJCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0FBRyxTQUFBc0UsU0FDM0JqQyxNQUFxQixFQUNyQkQsS0FBZTtJQUFBLElBQUFtQyxLQUFBLEVBQUFDLGdCQUFBLEVBQUFDLE1BQUEsRUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQW5DLEVBQUEsRUFBQW9DLEdBQUEsRUFBQUMsTUFBQSxFQUFBQyxhQUFBO0lBQUEsT0FBQWhGLFlBQUEsWUFBQUksSUFBQSxVQUFBNkUsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUEzRSxJQUFBLEdBQUEyRSxTQUFBLENBQUExRSxJQUFBO1FBQUE7VUFFVGdFLEtBQUssR0FBR1csV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUUvQjtVQUNNWCxnQkFBZ0IsR0FBR3hHLE1BQU0sQ0FBQ29ILGtCQUFrQixDQUFDLENBQUM7VUFBQUgsU0FBQSxDQUFBMUUsSUFBQTtVQUFBLE9BQy9CdkMsTUFBTSxDQUFDcUgsWUFBWSxDQUFDYixnQkFBZ0IsQ0FBQztRQUFBO1VBQXBEQyxNQUFNLEdBQUFRLFNBQUEsQ0FBQXBDLElBQUE7VUFBQSxJQUNQNEIsTUFBTSxDQUFDYSxVQUFVO1lBQUFMLFNBQUEsQ0FBQTFFLElBQUE7WUFBQTtVQUFBO1VBQUEsTUFDZCxJQUFJZ0YsS0FBSyxDQUFDLDZCQUE2QixDQUFDO1FBQUE7VUFHMUNiLFVBQVUsR0FBR2MsR0FBRyxDQUFDQyxlQUFlLENBQ3BDLElBQUlDLElBQUksQ0FBQyxvQkFBQUMsTUFBQSxDQUFtQmxCLE1BQU0sQ0FBQ2EsVUFBVSxVQUFNLEVBQUU7WUFDbkRNLElBQUksRUFBRTtVQUNSLENBQUMsQ0FDSCxDQUFDLEVBRUQ7VUFDTWpCLE1BQU0sR0FBRyxJQUFJa0IsTUFBTSxDQUFDbkIsVUFBVSxDQUFDO1VBQy9CRSxNQUFNLEdBQUd4QyxLQUFLLEdBQUcsSUFBSXBFLE1BQU0sQ0FBQzhILGFBQWEsQ0FBQyxDQUFDLEdBQUcsSUFBSTlILE1BQU0sQ0FBQytILFVBQVUsQ0FBQyxDQUFDO1VBQ3JFdEQsRUFBRSxHQUFHLElBQUlULHVCQUFXLENBQUM0QyxNQUFNLEVBQUVELE1BQU0sQ0FBQztVQUFBTSxTQUFBLENBQUExRSxJQUFBO1VBQUEsT0FDcENrQyxFQUFFLENBQUN1RCxXQUFXLENBQUN2QixNQUFNLENBQUN3QixVQUFVLEVBQUV4QixNQUFNLENBQUN5QixhQUFhLENBQUM7UUFBQTtVQUM3RFYsR0FBRyxDQUFDVyxlQUFlLENBQUN6QixVQUFVLENBQUM7VUFBQyxLQUU1QnJDLE1BQU07WUFBQTRDLFNBQUEsQ0FBQTFFLElBQUE7WUFBQTtVQUFBO1VBQUEsS0FDSjhCLE1BQU0sQ0FBQytELElBQUk7WUFBQW5CLFNBQUEsQ0FBQTFFLElBQUE7WUFBQTtVQUFBO1VBQUEwRSxTQUFBLENBQUExRSxJQUFBO1VBQUEsT0FDSzhGLEtBQUssQ0FBQ2hFLE1BQU0sQ0FBQytELElBQUksQ0FBQztRQUFBO1VBQTlCdkIsR0FBRyxHQUFBSSxTQUFBLENBQUFwQyxJQUFBO1VBQUFvQyxTQUFBLENBQUExRSxJQUFBO1VBQUEsT0FDWXNFLEdBQUcsQ0FBQ3lCLFdBQVcsQ0FBQyxDQUFDO1FBQUE7VUFBaEN4QixNQUFNLEdBQUFHLFNBQUEsQ0FBQXBDLElBQUE7VUFDTmtDLGFBQWEsR0FBRzFDLE1BQU0sQ0FBQytELElBQUksQ0FBQ0csS0FBSyxDQUFDLFFBQVEsQ0FBQztVQUNqRCxJQUFJeEIsYUFBYSxFQUFFO1lBQ2pCMUMsTUFBTSxDQUFDK0QsSUFBSSxHQUFHckIsYUFBYSxDQUFDLENBQUMsQ0FBQztVQUNoQztVQUFDRSxTQUFBLENBQUExRSxJQUFBO1VBQUEsT0FDS2tDLEVBQUUsQ0FBQytELGtCQUFrQixDQUFDbkUsTUFBTSxDQUFDK0QsSUFBSSxFQUFFLElBQUlLLFVBQVUsQ0FBQzNCLE1BQU0sQ0FBQyxDQUFDO1FBQUE7VUFBQUcsU0FBQSxDQUFBMUUsSUFBQTtVQUFBLE9BRTVEa0MsRUFBRSxDQUFDaUUsSUFBSSxDQUFDckUsTUFBTSxDQUFDO1FBQUE7VUFHdkIsSUFBSUQsS0FBSyxFQUFFO1lBQ1QsSUFBQXVFLG9CQUFjLEVBQUMsb0JBQW9CLEVBQUVwQyxLQUFLLENBQUM7WUFDM0MsSUFBSWxDLE1BQU0sRUFBRTtjQUNWdUUsT0FBTyxDQUFDeEUsS0FBSyxrQkFBQXVELE1BQUEsQ0FBa0JrQixJQUFJLENBQUNDLFNBQVMsQ0FBQ3pFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUUsQ0FBQztZQUNuRTtVQUNGO1VBQUMsT0FBQTRDLFNBQUEsQ0FBQXpFLE1BQUEsV0FDTWlDLEVBQUU7UUFBQTtRQUFBO1VBQUEsT0FBQXdDLFNBQUEsQ0FBQXZFLElBQUE7TUFBQTtJQUFBLEdBQUE0RCxRQUFBO0VBQUEsQ0FDVjtFQUFBLGdCQTlDS2hDLG9CQUFvQkEsQ0FBQXlFLElBQUEsRUFBQUMsSUFBQTtJQUFBLE9BQUEzQyxLQUFBLENBQUF6RCxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBOEN6QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _react2 = _interopRequireDefault(require("@monaco-editor/react"));
|
|
13
|
-
var monaco = _interopRequireWildcard(require("monaco-editor"));
|
|
14
|
-
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
15
|
-
var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
|
|
16
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
18
|
-
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; }
|
|
19
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
20
|
-
// Copyright contributors to the kepler.gl project
|
|
21
|
-
// import {tableSchema as DEFAULT_SCHEMA} from './table-schema';
|
|
22
|
-
var MONACO_OPTIONS = {
|
|
23
|
-
minimap: {
|
|
24
|
-
enabled: false
|
|
25
|
-
},
|
|
26
|
-
language: 'sql',
|
|
27
|
-
contextmenu: false,
|
|
28
|
-
renderLineHighlight: 'none',
|
|
29
|
-
scrollBeyondLastLine: false,
|
|
30
|
-
scrollbar: {
|
|
31
|
-
alwaysConsumeMouseWheel: false
|
|
32
|
-
},
|
|
33
|
-
overviewRulerLanes: 0,
|
|
34
|
-
automaticLayout: true,
|
|
35
|
-
acceptSuggestionOnEnter: 'on',
|
|
36
|
-
quickSuggestionsDelay: 400,
|
|
37
|
-
matchOnWordStartOnly: false,
|
|
38
|
-
tabCompletion: 'off',
|
|
39
|
-
lineNumbers: 'off'
|
|
40
|
-
};
|
|
41
|
-
function parseSqlAndFindTableNameAndAliases(sql) {
|
|
42
|
-
var regex = /\b(?:FROM|JOIN)\s+([^\s.]+(?:\.[^\s.]+)?)\s*(?:AS)?\s*([^\s,]+)?/gi;
|
|
43
|
-
var tables = [];
|
|
44
|
-
while (true) {
|
|
45
|
-
var match = regex.exec(sql);
|
|
46
|
-
if (!match) {
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
var table_name = match[1];
|
|
50
|
-
if (!/\(/.test(table_name)) {
|
|
51
|
-
// exclude function calls
|
|
52
|
-
var alias = match[2];
|
|
53
|
-
if (alias && /on|where|inner|left|right|join/.test(alias)) {
|
|
54
|
-
alias = null;
|
|
55
|
-
}
|
|
56
|
-
tables.push({
|
|
57
|
-
table_name: table_name,
|
|
58
|
-
alias: alias || table_name
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return tables;
|
|
63
|
-
}
|
|
64
|
-
var MonacoEditor = function MonacoEditor(_ref) {
|
|
65
|
-
var onRunQuery = _ref.onRunQuery,
|
|
66
|
-
onChange = _ref.onChange,
|
|
67
|
-
code = _ref.code,
|
|
68
|
-
tableSchema = _ref.tableSchema,
|
|
69
|
-
isReadOnly = _ref.isReadOnly;
|
|
70
|
-
// private editor?: monaco.editor.IStandaloneCodeEditor;
|
|
71
|
-
var schemaTableNames = (0, _react.useMemo)(function () {
|
|
72
|
-
return tableSchema ? (0, _uniq["default"])(tableSchema.map(function (d) {
|
|
73
|
-
return d.table_name;
|
|
74
|
-
})) : [];
|
|
75
|
-
}, [tableSchema]);
|
|
76
|
-
var schemaTableNamesSet = (0, _react.useMemo)(function () {
|
|
77
|
-
return new Set(schemaTableNames);
|
|
78
|
-
}, [schemaTableNames]);
|
|
79
|
-
var handleRunQueryRef = (0, _react.useRef)(onRunQuery);
|
|
80
|
-
handleRunQueryRef.current = onRunQuery;
|
|
81
|
-
var handleEditorDidMount = (0, _react.useCallback)(function (editor) {
|
|
82
|
-
// this.editor = editor;
|
|
83
|
-
editor.focus();
|
|
84
|
-
editor.addAction({
|
|
85
|
-
id: 'run-query',
|
|
86
|
-
label: 'Run Query',
|
|
87
|
-
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter, monaco.KeyMod.Shift | monaco.KeyCode.Enter],
|
|
88
|
-
contextMenuGroupId: 'custom',
|
|
89
|
-
contextMenuOrder: 0,
|
|
90
|
-
run: function run() {
|
|
91
|
-
return handleRunQueryRef.current();
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
monaco.languages.registerCompletionItemProvider('*', {
|
|
95
|
-
provideCompletionItems: function provideCompletionItems(model, position, _context, _cancelationToken) {
|
|
96
|
-
var _thisLine$trim$split$, _exec, _exec2;
|
|
97
|
-
var suggestions = [{
|
|
98
|
-
label: 'myCustomSnippet',
|
|
99
|
-
kind: monaco.languages.CompletionItemKind.Snippet,
|
|
100
|
-
insertText: 'This is a piece of custom code',
|
|
101
|
-
insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
|
|
102
|
-
documentation: 'This is a piece of custom code'
|
|
103
|
-
// TODO: range is missing
|
|
104
|
-
}];
|
|
105
|
-
var fullQueryText = model.getValue();
|
|
106
|
-
var tableNamesAndAliases = new Map(parseSqlAndFindTableNameAndAliases(fullQueryText).map(function (_ref2) {
|
|
107
|
-
var table_name = _ref2.table_name,
|
|
108
|
-
alias = _ref2.alias;
|
|
109
|
-
return [alias, table_name];
|
|
110
|
-
}));
|
|
111
|
-
var thisLine = model.getValueInRange({
|
|
112
|
-
startLineNumber: position.lineNumber,
|
|
113
|
-
startColumn: 1,
|
|
114
|
-
endLineNumber: position.lineNumber,
|
|
115
|
-
endColumn: position.column
|
|
116
|
-
});
|
|
117
|
-
var thisToken = ((_thisLine$trim$split$ = thisLine.trim().split(' ').slice(-1)) === null || _thisLine$trim$split$ === void 0 ? void 0 : _thisLine$trim$split$[0]) || '';
|
|
118
|
-
var lastTokenBeforeSpace = (_exec = /\s?(\w+)\s+\w+$/.exec(thisLine.trim())) === null || _exec === void 0 ? void 0 : _exec[1];
|
|
119
|
-
var lastTokenBeforeDot = (_exec2 = /(\w+)\.\w*$/.exec(thisToken)) === null || _exec2 === void 0 ? void 0 : _exec2[1];
|
|
120
|
-
|
|
121
|
-
// console.log(tableNamesAndAliases, thisToken, lastTokenBeforeSpace, lastTokenBeforeDot);
|
|
122
|
-
|
|
123
|
-
if (lastTokenBeforeSpace && /from|join|update|into/.test(lastTokenBeforeSpace)) {
|
|
124
|
-
suggestions.push.apply(suggestions, (0, _toConsumableArray2["default"])(schemaTableNames.map(function (table_name) {
|
|
125
|
-
return {
|
|
126
|
-
label: table_name,
|
|
127
|
-
kind: monaco.languages.CompletionItemKind.Field,
|
|
128
|
-
insertText: table_name
|
|
129
|
-
// TODO: range is missing
|
|
130
|
-
};
|
|
131
|
-
})));
|
|
132
|
-
}
|
|
133
|
-
if (lastTokenBeforeDot) {
|
|
134
|
-
var table_name = null;
|
|
135
|
-
if (schemaTableNamesSet.has(lastTokenBeforeDot)) {
|
|
136
|
-
table_name = lastTokenBeforeDot;
|
|
137
|
-
} else if (tableNamesAndAliases.get(lastTokenBeforeDot)) {
|
|
138
|
-
table_name = tableNamesAndAliases.get(lastTokenBeforeDot);
|
|
139
|
-
}
|
|
140
|
-
if (table_name && tableSchema) {
|
|
141
|
-
suggestions.push.apply(suggestions, (0, _toConsumableArray2["default"])(tableSchema.filter(function (d) {
|
|
142
|
-
return d.table_name === table_name;
|
|
143
|
-
}).map(function (_ref3) {
|
|
144
|
-
var column_name = _ref3.column_name;
|
|
145
|
-
return {
|
|
146
|
-
label: column_name,
|
|
147
|
-
kind: monaco.languages.CompletionItemKind.Field,
|
|
148
|
-
insertText: column_name
|
|
149
|
-
// TODO: range is missing
|
|
150
|
-
};
|
|
151
|
-
})));
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
suggestions: (0, _uniqBy["default"])(suggestions, function (s) {
|
|
156
|
-
return s.insertText;
|
|
157
|
-
})
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
}, [tableSchema, schemaTableNames, schemaTableNamesSet]);
|
|
162
|
-
return /*#__PURE__*/_react["default"].createElement(_react2["default"], {
|
|
163
|
-
height: "100%",
|
|
164
|
-
theme: "vs-dark",
|
|
165
|
-
defaultLanguage: "sql",
|
|
166
|
-
defaultValue: code,
|
|
167
|
-
onChange: onChange,
|
|
168
|
-
onMount: handleEditorDidMount,
|
|
169
|
-
options: _objectSpread(_objectSpread({}, MONACO_OPTIONS), {}, {
|
|
170
|
-
readOnly: isReadOnly
|
|
171
|
-
})
|
|
172
|
-
});
|
|
173
|
-
};
|
|
174
|
-
var _default = exports["default"] = MonacoEditor;
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3QyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm1vbmFjbyIsIl91bmlxIiwiX3VuaXFCeSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIk1PTkFDT19PUFRJT05TIiwibWluaW1hcCIsImVuYWJsZWQiLCJsYW5ndWFnZSIsImNvbnRleHRtZW51IiwicmVuZGVyTGluZUhpZ2hsaWdodCIsInNjcm9sbEJleW9uZExhc3RMaW5lIiwic2Nyb2xsYmFyIiwiYWx3YXlzQ29uc3VtZU1vdXNlV2hlZWwiLCJvdmVydmlld1J1bGVyTGFuZXMiLCJhdXRvbWF0aWNMYXlvdXQiLCJhY2NlcHRTdWdnZXN0aW9uT25FbnRlciIsInF1aWNrU3VnZ2VzdGlvbnNEZWxheSIsIm1hdGNoT25Xb3JkU3RhcnRPbmx5IiwidGFiQ29tcGxldGlvbiIsImxpbmVOdW1iZXJzIiwicGFyc2VTcWxBbmRGaW5kVGFibGVOYW1lQW5kQWxpYXNlcyIsInNxbCIsInJlZ2V4IiwidGFibGVzIiwibWF0Y2giLCJleGVjIiwidGFibGVfbmFtZSIsInRlc3QiLCJhbGlhcyIsIk1vbmFjb0VkaXRvciIsIl9yZWYiLCJvblJ1blF1ZXJ5Iiwib25DaGFuZ2UiLCJjb2RlIiwidGFibGVTY2hlbWEiLCJpc1JlYWRPbmx5Iiwic2NoZW1hVGFibGVOYW1lcyIsInVzZU1lbW8iLCJ1bmlxIiwibWFwIiwiZCIsInNjaGVtYVRhYmxlTmFtZXNTZXQiLCJTZXQiLCJoYW5kbGVSdW5RdWVyeVJlZiIsInVzZVJlZiIsImN1cnJlbnQiLCJoYW5kbGVFZGl0b3JEaWRNb3VudCIsInVzZUNhbGxiYWNrIiwiZWRpdG9yIiwiZm9jdXMiLCJhZGRBY3Rpb24iLCJpZCIsImxhYmVsIiwia2V5YmluZGluZ3MiLCJLZXlNb2QiLCJDdHJsQ21kIiwiS2V5Q29kZSIsIkVudGVyIiwiU2hpZnQiLCJjb250ZXh0TWVudUdyb3VwSWQiLCJjb250ZXh0TWVudU9yZGVyIiwicnVuIiwibGFuZ3VhZ2VzIiwicmVnaXN0ZXJDb21wbGV0aW9uSXRlbVByb3ZpZGVyIiwicHJvdmlkZUNvbXBsZXRpb25JdGVtcyIsIm1vZGVsIiwicG9zaXRpb24iLCJfY29udGV4dCIsIl9jYW5jZWxhdGlvblRva2VuIiwiX3RoaXNMaW5lJHRyaW0kc3BsaXQkIiwiX2V4ZWMiLCJfZXhlYzIiLCJzdWdnZXN0aW9ucyIsImtpbmQiLCJDb21wbGV0aW9uSXRlbUtpbmQiLCJTbmlwcGV0IiwiaW5zZXJ0VGV4dCIsImluc2VydFRleHRSdWxlcyIsIkNvbXBsZXRpb25JdGVtSW5zZXJ0VGV4dFJ1bGUiLCJJbnNlcnRBc1NuaXBwZXQiLCJkb2N1bWVudGF0aW9uIiwiZnVsbFF1ZXJ5VGV4dCIsImdldFZhbHVlIiwidGFibGVOYW1lc0FuZEFsaWFzZXMiLCJNYXAiLCJfcmVmMiIsInRoaXNMaW5lIiwiZ2V0VmFsdWVJblJhbmdlIiwic3RhcnRMaW5lTnVtYmVyIiwibGluZU51bWJlciIsInN0YXJ0Q29sdW1uIiwiZW5kTGluZU51bWJlciIsImVuZENvbHVtbiIsImNvbHVtbiIsInRoaXNUb2tlbiIsInRyaW0iLCJzcGxpdCIsInNsaWNlIiwibGFzdFRva2VuQmVmb3JlU3BhY2UiLCJsYXN0VG9rZW5CZWZvcmVEb3QiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiRmllbGQiLCJfcmVmMyIsImNvbHVtbl9uYW1lIiwidW5pcUJ5IiwicyIsImNyZWF0ZUVsZW1lbnQiLCJoZWlnaHQiLCJ0aGVtZSIsImRlZmF1bHRMYW5ndWFnZSIsImRlZmF1bHRWYWx1ZSIsIm9uTW91bnQiLCJvcHRpb25zIiwicmVhZE9ubHkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9tb25hY28tZWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRWRpdG9yLCB7T25DaGFuZ2UsIE9uTW91bnR9IGZyb20gJ0Btb25hY28tZWRpdG9yL3JlYWN0JztcbmltcG9ydCAqIGFzIG1vbmFjbyBmcm9tICdtb25hY28tZWRpdG9yJztcbi8vIGltcG9ydCB7dGFibGVTY2hlbWEgYXMgREVGQVVMVF9TQ0hFTUF9IGZyb20gJy4vdGFibGUtc2NoZW1hJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC91bmlxJztcbmltcG9ydCB1bmlxQnkgZnJvbSAnbG9kYXNoL3VuaXFCeSc7XG5cbmNvbnN0IE1PTkFDT19PUFRJT05TOiBtb25hY28uZWRpdG9yLklTdGFuZGFsb25lRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgbWluaW1hcDoge2VuYWJsZWQ6IGZhbHNlfSxcbiAgbGFuZ3VhZ2U6ICdzcWwnLFxuICBjb250ZXh0bWVudTogZmFsc2UsXG4gIHJlbmRlckxpbmVIaWdobGlnaHQ6ICdub25lJyxcbiAgc2Nyb2xsQmV5b25kTGFzdExpbmU6IGZhbHNlLFxuICBzY3JvbGxiYXI6IHthbHdheXNDb25zdW1lTW91c2VXaGVlbDogZmFsc2V9LFxuICBvdmVydmlld1J1bGVyTGFuZXM6IDAsXG4gIGF1dG9tYXRpY0xheW91dDogdHJ1ZSxcbiAgYWNjZXB0U3VnZ2VzdGlvbk9uRW50ZXI6ICdvbicsXG4gIHF1aWNrU3VnZ2VzdGlvbnNEZWxheTogNDAwLFxuICBtYXRjaE9uV29yZFN0YXJ0T25seTogZmFsc2UsXG4gIHRhYkNvbXBsZXRpb246ICdvZmYnLFxuICBsaW5lTnVtYmVyczogJ29mZidcbn07XG5cbmZ1bmN0aW9uIHBhcnNlU3FsQW5kRmluZFRhYmxlTmFtZUFuZEFsaWFzZXMoc3FsOiBzdHJpbmcpIHtcbiAgY29uc3QgcmVnZXggPSAvXFxiKD86RlJPTXxKT0lOKVxccysoW15cXHMuXSsoPzpcXC5bXlxccy5dKyk/KVxccyooPzpBUyk/XFxzKihbXlxccyxdKyk/L2dpO1xuICBjb25zdCB0YWJsZXM6IHt0YWJsZV9uYW1lOiBzdHJpbmc7IGFsaWFzOiBzdHJpbmd9W10gPSBbXTtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhzcWwpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCB0YWJsZV9uYW1lID0gbWF0Y2hbMV07XG4gICAgaWYgKCEvXFwoLy50ZXN0KHRhYmxlX25hbWUpKSB7XG4gICAgICAvLyBleGNsdWRlIGZ1bmN0aW9uIGNhbGxzXG4gICAgICBsZXQgYWxpYXMgPSBtYXRjaFsyXSBhcyBzdHJpbmcgfCBudWxsO1xuICAgICAgaWYgKGFsaWFzICYmIC9vbnx3aGVyZXxpbm5lcnxsZWZ0fHJpZ2h0fGpvaW4vLnRlc3QoYWxpYXMpKSB7XG4gICAgICAgIGFsaWFzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRhYmxlcy5wdXNoKHtcbiAgICAgICAgdGFibGVfbmFtZSxcbiAgICAgICAgYWxpYXM6IGFsaWFzIHx8IHRhYmxlX25hbWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YWJsZXM7XG59XG5cbmludGVyZmFjZSBNb25hY29FZGl0b3JQcm9wcyB7XG4gIGNvZGU6IHN0cmluZztcbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIG9uQ2hhbmdlOiBPbkNoYW5nZTtcbiAgb25SdW5RdWVyeTogKCkgPT4gdm9pZDtcbiAgdGFibGVTY2hlbWE/OiB7dGFibGVfbmFtZTogc3RyaW5nOyBjb2x1bW5fbmFtZTogc3RyaW5nfVtdO1xufVxuXG5jb25zdCBNb25hY29FZGl0b3I6IFJlYWN0LkZDPE1vbmFjb0VkaXRvclByb3BzPiA9ICh7XG4gIG9uUnVuUXVlcnksXG4gIG9uQ2hhbmdlLFxuICBjb2RlLFxuICB0YWJsZVNjaGVtYSxcbiAgaXNSZWFkT25seVxufSkgPT4ge1xuICAvLyBwcml2YXRlIGVkaXRvcj86IG1vbmFjby5lZGl0b3IuSVN0YW5kYWxvbmVDb2RlRWRpdG9yO1xuICBjb25zdCBzY2hlbWFUYWJsZU5hbWVzID0gdXNlTWVtbyhcbiAgICAoKSA9PiAodGFibGVTY2hlbWEgPyB1bmlxKHRhYmxlU2NoZW1hLm1hcChkID0+IGQudGFibGVfbmFtZSkpIDogW10pLFxuICAgIFt0YWJsZVNjaGVtYV1cbiAgKTtcbiAgY29uc3Qgc2NoZW1hVGFibGVOYW1lc1NldCA9IHVzZU1lbW8oKCkgPT4gbmV3IFNldChzY2hlbWFUYWJsZU5hbWVzKSwgW3NjaGVtYVRhYmxlTmFtZXNdKTtcbiAgY29uc3QgaGFuZGxlUnVuUXVlcnlSZWYgPSB1c2VSZWYob25SdW5RdWVyeSk7XG4gIGhhbmRsZVJ1blF1ZXJ5UmVmLmN1cnJlbnQgPSBvblJ1blF1ZXJ5O1xuXG4gIGNvbnN0IGhhbmRsZUVkaXRvckRpZE1vdW50OiBPbk1vdW50ID0gdXNlQ2FsbGJhY2soXG4gICAgZWRpdG9yID0+IHtcbiAgICAgIC8vIHRoaXMuZWRpdG9yID0gZWRpdG9yO1xuICAgICAgZWRpdG9yLmZvY3VzKCk7XG5cbiAgICAgIGVkaXRvci5hZGRBY3Rpb24oe1xuICAgICAgICBpZDogJ3J1bi1xdWVyeScsXG4gICAgICAgIGxhYmVsOiAnUnVuIFF1ZXJ5JyxcbiAgICAgICAga2V5YmluZGluZ3M6IFtcbiAgICAgICAgICBtb25hY28uS2V5TW9kLkN0cmxDbWQgfCBtb25hY28uS2V5Q29kZS5FbnRlcixcbiAgICAgICAgICBtb25hY28uS2V5TW9kLlNoaWZ0IHwgbW9uYWNvLktleUNvZGUuRW50ZXJcbiAgICAgICAgXSxcbiAgICAgICAgY29udGV4dE1lbnVHcm91cElkOiAnY3VzdG9tJyxcbiAgICAgICAgY29udGV4dE1lbnVPcmRlcjogMCxcbiAgICAgICAgcnVuOiAoKSA9PiBoYW5kbGVSdW5RdWVyeVJlZi5jdXJyZW50KClcbiAgICAgIH0pO1xuXG4gICAgICBtb25hY28ubGFuZ3VhZ2VzLnJlZ2lzdGVyQ29tcGxldGlvbkl0ZW1Qcm92aWRlcignKicsIHtcbiAgICAgICAgcHJvdmlkZUNvbXBsZXRpb25JdGVtczogKG1vZGVsLCBwb3NpdGlvbiwgX2NvbnRleHQsIF9jYW5jZWxhdGlvblRva2VuKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VnZ2VzdGlvbnM6IG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW1bXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdteUN1c3RvbVNuaXBwZXQnLFxuICAgICAgICAgICAgICBraW5kOiBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtS2luZC5TbmlwcGV0LFxuICAgICAgICAgICAgICBpbnNlcnRUZXh0OiAnVGhpcyBpcyBhIHBpZWNlIG9mIGN1c3RvbSBjb2RlJyxcbiAgICAgICAgICAgICAgaW5zZXJ0VGV4dFJ1bGVzOiBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtSW5zZXJ0VGV4dFJ1bGUuSW5zZXJ0QXNTbmlwcGV0LFxuICAgICAgICAgICAgICBkb2N1bWVudGF0aW9uOiAnVGhpcyBpcyBhIHBpZWNlIG9mIGN1c3RvbSBjb2RlJ1xuICAgICAgICAgICAgICAvLyBUT0RPOiByYW5nZSBpcyBtaXNzaW5nXG4gICAgICAgICAgICB9IGFzIG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW1cbiAgICAgICAgICBdO1xuXG4gICAgICAgICAgY29uc3QgZnVsbFF1ZXJ5VGV4dCA9IG1vZGVsLmdldFZhbHVlKCk7XG5cbiAgICAgICAgICBjb25zdCB0YWJsZU5hbWVzQW5kQWxpYXNlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFxuICAgICAgICAgICAgcGFyc2VTcWxBbmRGaW5kVGFibGVOYW1lQW5kQWxpYXNlcyhmdWxsUXVlcnlUZXh0KS5tYXAoKHt0YWJsZV9uYW1lLCBhbGlhc30pID0+IFtcbiAgICAgICAgICAgICAgYWxpYXMsXG4gICAgICAgICAgICAgIHRhYmxlX25hbWVcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IHRoaXNMaW5lID0gbW9kZWwuZ2V0VmFsdWVJblJhbmdlKHtcbiAgICAgICAgICAgIHN0YXJ0TGluZU51bWJlcjogcG9zaXRpb24ubGluZU51bWJlcixcbiAgICAgICAgICAgIHN0YXJ0Q29sdW1uOiAxLFxuICAgICAgICAgICAgZW5kTGluZU51bWJlcjogcG9zaXRpb24ubGluZU51bWJlcixcbiAgICAgICAgICAgIGVuZENvbHVtbjogcG9zaXRpb24uY29sdW1uXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgdGhpc1Rva2VuID0gdGhpc0xpbmUudHJpbSgpLnNwbGl0KCcgJykuc2xpY2UoLTEpPy5bMF0gfHwgJyc7XG5cbiAgICAgICAgICBjb25zdCBsYXN0VG9rZW5CZWZvcmVTcGFjZSA9IC9cXHM/KFxcdyspXFxzK1xcdyskLy5leGVjKHRoaXNMaW5lLnRyaW0oKSk/LlsxXTtcbiAgICAgICAgICBjb25zdCBsYXN0VG9rZW5CZWZvcmVEb3QgPSAvKFxcdyspXFwuXFx3KiQvLmV4ZWModGhpc1Rva2VuKT8uWzFdO1xuXG4gICAgICAgICAgLy8gY29uc29sZS5sb2codGFibGVOYW1lc0FuZEFsaWFzZXMsIHRoaXNUb2tlbiwgbGFzdFRva2VuQmVmb3JlU3BhY2UsIGxhc3RUb2tlbkJlZm9yZURvdCk7XG5cbiAgICAgICAgICBpZiAobGFzdFRva2VuQmVmb3JlU3BhY2UgJiYgL2Zyb218am9pbnx1cGRhdGV8aW50by8udGVzdChsYXN0VG9rZW5CZWZvcmVTcGFjZSkpIHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zLnB1c2goXG4gICAgICAgICAgICAgIC4uLnNjaGVtYVRhYmxlTmFtZXMubWFwKFxuICAgICAgICAgICAgICAgIHRhYmxlX25hbWUgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0YWJsZV9uYW1lLFxuICAgICAgICAgICAgICAgICAgICBraW5kOiBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtS2luZC5GaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0VGV4dDogdGFibGVfbmFtZVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiByYW5nZSBpcyBtaXNzaW5nXG4gICAgICAgICAgICAgICAgICB9IGFzIG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGxhc3RUb2tlbkJlZm9yZURvdCkge1xuICAgICAgICAgICAgbGV0IHRhYmxlX25hbWUgPSBudWxsIGFzIHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgICBpZiAoc2NoZW1hVGFibGVOYW1lc1NldC5oYXMobGFzdFRva2VuQmVmb3JlRG90KSkge1xuICAgICAgICAgICAgICB0YWJsZV9uYW1lID0gbGFzdFRva2VuQmVmb3JlRG90O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0YWJsZU5hbWVzQW5kQWxpYXNlcy5nZXQobGFzdFRva2VuQmVmb3JlRG90KSkge1xuICAgICAgICAgICAgICB0YWJsZV9uYW1lID0gdGFibGVOYW1lc0FuZEFsaWFzZXMuZ2V0KGxhc3RUb2tlbkJlZm9yZURvdCkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRhYmxlX25hbWUgJiYgdGFibGVTY2hlbWEpIHtcbiAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICAuLi50YWJsZVNjaGVtYVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcihkID0+IGQudGFibGVfbmFtZSA9PT0gdGFibGVfbmFtZSlcbiAgICAgICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgICAgICh7Y29sdW1uX25hbWV9KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogY29sdW1uX25hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtS2luZC5GaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydFRleHQ6IGNvbHVtbl9uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiByYW5nZSBpcyBtaXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgfSBhcyBtb25hY28ubGFuZ3VhZ2VzLkNvbXBsZXRpb25JdGVtKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWdnZXN0aW9uczogdW5pcUJ5KHN1Z2dlc3Rpb25zLCBzID0+IHMuaW5zZXJ0VGV4dClcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFt0YWJsZVNjaGVtYSwgc2NoZW1hVGFibGVOYW1lcywgc2NoZW1hVGFibGVOYW1lc1NldF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxFZGl0b3JcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgdGhlbWU9XCJ2cy1kYXJrXCJcbiAgICAgIGRlZmF1bHRMYW5ndWFnZT1cInNxbFwiXG4gICAgICBkZWZhdWx0VmFsdWU9e2NvZGV9XG4gICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICBvbk1vdW50PXtoYW5kbGVFZGl0b3JEaWRNb3VudH1cbiAgICAgIG9wdGlvbnM9e3tcbiAgICAgICAgLi4uTU9OQUNPX09QVElPTlMsXG4gICAgICAgIHJlYWRPbmx5OiBpc1JlYWRPbmx5XG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNb25hY29FZGl0b3I7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxLQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFBbUMsU0FBQU0seUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFSLHdCQUFBUSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFH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
|