@libs-ui/components-preview-text-data 0.2.357-2 → 0.2.357-20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +327 -187
- package/editor/editor-completions.d.ts +8 -0
- package/editor/editor-forbidden.d.ts +8 -0
- package/editor/editor-height.d.ts +21 -0
- package/esm2022/editor/editor-completions.mjs +36 -0
- package/esm2022/editor/editor-forbidden.mjs +65 -0
- package/esm2022/editor/editor-height.mjs +87 -0
- package/esm2022/linters/js-linter.mjs +348 -0
- package/esm2022/linters/json-linter.mjs +14 -0
- package/esm2022/linters/linter-shared.mjs +8 -0
- package/esm2022/linters/python-linter.mjs +52 -0
- package/esm2022/linters/sql-linter.mjs +34 -0
- package/esm2022/preview-text-data.component.mjs +43 -319
- package/esm2022/preview-text-data.define.mjs +13 -1
- package/esm2022/preview-text-data.type.mjs +2 -0
- package/fesm2022/libs-ui-components-preview-text-data.mjs +684 -320
- package/fesm2022/libs-ui-components-preview-text-data.mjs.map +1 -1
- package/linters/js-linter.d.ts +45 -0
- package/linters/json-linter.d.ts +4 -0
- package/linters/linter-shared.d.ts +3 -0
- package/linters/python-linter.d.ts +4 -0
- package/linters/sql-linter.d.ts +4 -0
- package/package.json +9 -7
- package/preview-text-data.component.d.ts +20 -35
- package/preview-text-data.define.d.ts +12 -0
- package/preview-text-data.type.d.ts +33 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Lấy token (chuỗi không khoảng trắng) liền trước vị trí `pos` trong document. Dùng chung cho JS/SQL/Python. */
|
|
2
|
+
export const getTokenBefore = (doc, pos) => {
|
|
3
|
+
const start = Math.max(0, pos - 30);
|
|
4
|
+
const text = doc.sliceString(start, pos);
|
|
5
|
+
const match = /(\S+)\s*$/.exec(text);
|
|
6
|
+
return match?.[1] ?? '';
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLXNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9wcmV2aWV3LXRleHQtZGF0YS9zcmMvbGludGVycy9saW50ZXItc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGlIQUFpSDtBQUNqSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFTLEVBQUUsR0FBVyxFQUFVLEVBQUU7SUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dCB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcblxuLyoqIEzhuqV5IHRva2VuIChjaHXhu5dpIGtow7RuZyBraG/huqNuZyB0cuG6r25nKSBsaeG7gW4gdHLGsOG7m2MgduG7iyB0csOtIGBwb3NgIHRyb25nIGRvY3VtZW50LiBEw7luZyBjaHVuZyBjaG8gSlMvU1FML1B5dGhvbi4gKi9cbmV4cG9ydCBjb25zdCBnZXRUb2tlbkJlZm9yZSA9IChkb2M6IFRleHQsIHBvczogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heCgwLCBwb3MgLSAzMCk7XG4gIGNvbnN0IHRleHQgPSBkb2Muc2xpY2VTdHJpbmcoc3RhcnQsIHBvcyk7XG4gIGNvbnN0IG1hdGNoID0gLyhcXFMrKVxccyokLy5leGVjKHRleHQpO1xuICByZXR1cm4gbWF0Y2g/LlsxXSA/PyAnJztcbn07XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { syntaxTree } from '@codemirror/language';
|
|
2
|
+
import { getTokenBefore } from './linter-shared';
|
|
3
|
+
const buildPythonErrorMessage = (doc, node) => {
|
|
4
|
+
if (node.from !== node.to) {
|
|
5
|
+
const text = doc.sliceString(node.from, node.to).trim();
|
|
6
|
+
return `Python syntax error${text ? ` near "${text}"` : ''}`;
|
|
7
|
+
}
|
|
8
|
+
const prevToken = getTokenBefore(doc, node.from);
|
|
9
|
+
if (!prevToken)
|
|
10
|
+
return 'Python syntax error';
|
|
11
|
+
if (/^def$/i.test(prevToken))
|
|
12
|
+
return 'Expected function name after "def"';
|
|
13
|
+
if (/^class$/i.test(prevToken))
|
|
14
|
+
return 'Expected class name after "class"';
|
|
15
|
+
if (/^return$/i.test(prevToken))
|
|
16
|
+
return 'Invalid expression after "return"';
|
|
17
|
+
if (/^import$/i.test(prevToken))
|
|
18
|
+
return 'Expected module name after "import"';
|
|
19
|
+
if (/^from$/i.test(prevToken))
|
|
20
|
+
return 'Expected module name after "from"';
|
|
21
|
+
if (/^if$/i.test(prevToken))
|
|
22
|
+
return 'Expected condition after "if"';
|
|
23
|
+
if (/^elif$/i.test(prevToken))
|
|
24
|
+
return 'Expected condition after "elif"';
|
|
25
|
+
if (/^while$/i.test(prevToken))
|
|
26
|
+
return 'Expected condition after "while"';
|
|
27
|
+
if (/^for$/i.test(prevToken))
|
|
28
|
+
return 'Expected variable after "for"';
|
|
29
|
+
if (prevToken.endsWith('.'))
|
|
30
|
+
return `Incomplete attribute access on "${prevToken.slice(0, -1)}"`;
|
|
31
|
+
if (prevToken.endsWith('('))
|
|
32
|
+
return 'Missing closing ")"';
|
|
33
|
+
if (prevToken.endsWith('['))
|
|
34
|
+
return 'Missing closing "]"';
|
|
35
|
+
return `Python syntax error near "${prevToken}"`;
|
|
36
|
+
};
|
|
37
|
+
/** Phát hiện lỗi cú pháp Python từ error node của syntaxTree (Lezer) — cùng approach SQL. */
|
|
38
|
+
export const computePythonDiagnostics = (view) => {
|
|
39
|
+
const diagnostics = [];
|
|
40
|
+
const doc = view.state.doc;
|
|
41
|
+
syntaxTree(view.state).iterate({
|
|
42
|
+
enter: (node) => {
|
|
43
|
+
if (!node.type.isError)
|
|
44
|
+
return;
|
|
45
|
+
const from = Math.max(0, node.from - 1);
|
|
46
|
+
const to = node.from === node.to ? node.from + 1 : node.to;
|
|
47
|
+
diagnostics.push({ from, to: Math.min(to, doc.length), severity: 'error', message: buildPythonErrorMessage(doc, node) });
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
return diagnostics;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLWxpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9wcmV2aWV3LXRleHQtZGF0YS9zcmMvbGludGVycy9weXRob24tbGludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUtsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQVMsRUFBRSxJQUFtQixFQUFVLEVBQUU7SUFDekUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hELE9BQU8sc0JBQXNCLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxxQkFBcUIsQ0FBQztJQUM3QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxvQ0FBb0MsQ0FBQztJQUMxRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxtQ0FBbUMsQ0FBQztJQUMzRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxtQ0FBbUMsQ0FBQztJQUM1RSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxxQ0FBcUMsQ0FBQztJQUM5RSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxtQ0FBbUMsQ0FBQztJQUMxRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTywrQkFBK0IsQ0FBQztJQUNwRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxpQ0FBaUMsQ0FBQztJQUN4RSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxrQ0FBa0MsQ0FBQztJQUMxRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTywrQkFBK0IsQ0FBQztJQUNyRSxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxtQ0FBbUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2pHLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLHFCQUFxQixDQUFDO0lBQzFELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLHFCQUFxQixDQUFDO0lBQzFELE9BQU8sNkJBQTZCLFNBQVMsR0FBRyxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGLDZGQUE2RjtBQUM3RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLElBQWdCLEVBQWdCLEVBQUU7SUFDekUsTUFBTSxXQUFXLEdBQWlCLEVBQUUsQ0FBQztJQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUM3QixLQUFLLEVBQUUsQ0FBQyxJQUFtQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPO1lBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzSCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3ludGF4VHJlZSB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmd1YWdlJztcbmltcG9ydCB7IERpYWdub3N0aWMgfSBmcm9tICdAY29kZW1pcnJvci9saW50JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgdHlwZSB7IFN5bnRheE5vZGVSZWYgfSBmcm9tICdAbGV6ZXIvY29tbW9uJztcbmltcG9ydCB7IGdldFRva2VuQmVmb3JlIH0gZnJvbSAnLi9saW50ZXItc2hhcmVkJztcblxuY29uc3QgYnVpbGRQeXRob25FcnJvck1lc3NhZ2UgPSAoZG9jOiBUZXh0LCBub2RlOiBTeW50YXhOb2RlUmVmKTogc3RyaW5nID0+IHtcbiAgaWYgKG5vZGUuZnJvbSAhPT0gbm9kZS50bykge1xuICAgIGNvbnN0IHRleHQgPSBkb2Muc2xpY2VTdHJpbmcobm9kZS5mcm9tLCBub2RlLnRvKS50cmltKCk7XG4gICAgcmV0dXJuIGBQeXRob24gc3ludGF4IGVycm9yJHt0ZXh0ID8gYCBuZWFyIFwiJHt0ZXh0fVwiYCA6ICcnfWA7XG4gIH1cbiAgY29uc3QgcHJldlRva2VuID0gZ2V0VG9rZW5CZWZvcmUoZG9jLCBub2RlLmZyb20pO1xuICBpZiAoIXByZXZUb2tlbikgcmV0dXJuICdQeXRob24gc3ludGF4IGVycm9yJztcbiAgaWYgKC9eZGVmJC9pLnRlc3QocHJldlRva2VuKSkgcmV0dXJuICdFeHBlY3RlZCBmdW5jdGlvbiBuYW1lIGFmdGVyIFwiZGVmXCInO1xuICBpZiAoL15jbGFzcyQvaS50ZXN0KHByZXZUb2tlbikpIHJldHVybiAnRXhwZWN0ZWQgY2xhc3MgbmFtZSBhZnRlciBcImNsYXNzXCInO1xuICBpZiAoL15yZXR1cm4kL2kudGVzdChwcmV2VG9rZW4pKSByZXR1cm4gJ0ludmFsaWQgZXhwcmVzc2lvbiBhZnRlciBcInJldHVyblwiJztcbiAgaWYgKC9eaW1wb3J0JC9pLnRlc3QocHJldlRva2VuKSkgcmV0dXJuICdFeHBlY3RlZCBtb2R1bGUgbmFtZSBhZnRlciBcImltcG9ydFwiJztcbiAgaWYgKC9eZnJvbSQvaS50ZXN0KHByZXZUb2tlbikpIHJldHVybiAnRXhwZWN0ZWQgbW9kdWxlIG5hbWUgYWZ0ZXIgXCJmcm9tXCInO1xuICBpZiAoL15pZiQvaS50ZXN0KHByZXZUb2tlbikpIHJldHVybiAnRXhwZWN0ZWQgY29uZGl0aW9uIGFmdGVyIFwiaWZcIic7XG4gIGlmICgvXmVsaWYkL2kudGVzdChwcmV2VG9rZW4pKSByZXR1cm4gJ0V4cGVjdGVkIGNvbmRpdGlvbiBhZnRlciBcImVsaWZcIic7XG4gIGlmICgvXndoaWxlJC9pLnRlc3QocHJldlRva2VuKSkgcmV0dXJuICdFeHBlY3RlZCBjb25kaXRpb24gYWZ0ZXIgXCJ3aGlsZVwiJztcbiAgaWYgKC9eZm9yJC9pLnRlc3QocHJldlRva2VuKSkgcmV0dXJuICdFeHBlY3RlZCB2YXJpYWJsZSBhZnRlciBcImZvclwiJztcbiAgaWYgKHByZXZUb2tlbi5lbmRzV2l0aCgnLicpKSByZXR1cm4gYEluY29tcGxldGUgYXR0cmlidXRlIGFjY2VzcyBvbiBcIiR7cHJldlRva2VuLnNsaWNlKDAsIC0xKX1cImA7XG4gIGlmIChwcmV2VG9rZW4uZW5kc1dpdGgoJygnKSkgcmV0dXJuICdNaXNzaW5nIGNsb3NpbmcgXCIpXCInO1xuICBpZiAocHJldlRva2VuLmVuZHNXaXRoKCdbJykpIHJldHVybiAnTWlzc2luZyBjbG9zaW5nIFwiXVwiJztcbiAgcmV0dXJuIGBQeXRob24gc3ludGF4IGVycm9yIG5lYXIgXCIke3ByZXZUb2tlbn1cImA7XG59O1xuXG4vKiogUGjDoXQgaGnhu4duIGzhu5dpIGPDuiBwaMOhcCBQeXRob24gdOG7qyBlcnJvciBub2RlIGPhu6dhIHN5bnRheFRyZWUgKExlemVyKSDigJQgY8O5bmcgYXBwcm9hY2ggU1FMLiAqL1xuZXhwb3J0IGNvbnN0IGNvbXB1dGVQeXRob25EaWFnbm9zdGljcyA9ICh2aWV3OiBFZGl0b3JWaWV3KTogRGlhZ25vc3RpY1tdID0+IHtcbiAgY29uc3QgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXSA9IFtdO1xuICBjb25zdCBkb2MgPSB2aWV3LnN0YXRlLmRvYztcbiAgc3ludGF4VHJlZSh2aWV3LnN0YXRlKS5pdGVyYXRlKHtcbiAgICBlbnRlcjogKG5vZGU6IFN5bnRheE5vZGVSZWYpID0+IHtcbiAgICAgIGlmICghbm9kZS50eXBlLmlzRXJyb3IpIHJldHVybjtcbiAgICAgIGNvbnN0IGZyb20gPSBNYXRoLm1heCgwLCBub2RlLmZyb20gLSAxKTtcbiAgICAgIGNvbnN0IHRvID0gbm9kZS5mcm9tID09PSBub2RlLnRvID8gbm9kZS5mcm9tICsgMSA6IG5vZGUudG87XG4gICAgICBkaWFnbm9zdGljcy5wdXNoKHsgZnJvbSwgdG86IE1hdGgubWluKHRvLCBkb2MubGVuZ3RoKSwgc2V2ZXJpdHk6ICdlcnJvcicsIG1lc3NhZ2U6IGJ1aWxkUHl0aG9uRXJyb3JNZXNzYWdlKGRvYywgbm9kZSkgfSk7XG4gICAgfSxcbiAgfSk7XG4gIHJldHVybiBkaWFnbm9zdGljcztcbn07XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { syntaxTree } from '@codemirror/language';
|
|
2
|
+
import { getTokenBefore } from './linter-shared';
|
|
3
|
+
const buildSqlErrorMessage = (doc, node) => {
|
|
4
|
+
if (node.from !== node.to) {
|
|
5
|
+
const text = doc.sliceString(node.from, node.to);
|
|
6
|
+
return `SQL syntax error near "${text}"`;
|
|
7
|
+
}
|
|
8
|
+
const prevToken = getTokenBefore(doc, node.from);
|
|
9
|
+
if (!prevToken)
|
|
10
|
+
return 'SQL syntax error at beginning of statement';
|
|
11
|
+
if (/FROM$/i.test(prevToken))
|
|
12
|
+
return 'Expected table name after FROM';
|
|
13
|
+
if (/SELECT$/i.test(prevToken))
|
|
14
|
+
return 'Expected column list after SELECT';
|
|
15
|
+
if (/WHERE$/i.test(prevToken))
|
|
16
|
+
return 'Expected condition after WHERE';
|
|
17
|
+
if (prevToken.endsWith('('))
|
|
18
|
+
return 'Missing closing ")"';
|
|
19
|
+
return `Unexpected end of SQL after "${prevToken}"`;
|
|
20
|
+
};
|
|
21
|
+
/** Phát hiện lỗi cú pháp SQL từ error node của syntaxTree (Lezer). */
|
|
22
|
+
export const computeSqlDiagnostics = (view) => {
|
|
23
|
+
const diagnostics = [];
|
|
24
|
+
const doc = view.state.doc;
|
|
25
|
+
syntaxTree(view.state).iterate({
|
|
26
|
+
enter: (node) => {
|
|
27
|
+
if (!node.type.isError)
|
|
28
|
+
return;
|
|
29
|
+
diagnostics.push({ from: Math.max(0, node.from - 1), to: node.from, severity: 'error', message: buildSqlErrorMessage(doc, node) });
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
return diagnostics;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLWxpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9wcmV2aWV3LXRleHQtZGF0YS9zcmMvbGludGVycy9zcWwtbGludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUtsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVMsRUFBRSxJQUFtQixFQUFVLEVBQUU7SUFDdEUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sMEJBQTBCLElBQUksR0FBRyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sNENBQTRDLENBQUM7SUFDcEUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUFFLE9BQU8sZ0NBQWdDLENBQUM7SUFDdEUsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUFFLE9BQU8sbUNBQW1DLENBQUM7SUFDM0UsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUFFLE9BQU8sZ0NBQWdDLENBQUM7SUFDdkUsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8scUJBQXFCLENBQUM7SUFDMUQsT0FBTyxnQ0FBZ0MsU0FBUyxHQUFHLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsc0VBQXNFO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsSUFBZ0IsRUFBZ0IsRUFBRTtJQUN0RSxNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzdCLEtBQUssRUFBRSxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFDL0IsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckksQ0FBQztLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN5bnRheFRyZWUgfSBmcm9tICdAY29kZW1pcnJvci9sYW5ndWFnZSc7XG5pbXBvcnQgeyBEaWFnbm9zdGljIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGludCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHR5cGUgeyBTeW50YXhOb2RlUmVmIH0gZnJvbSAnQGxlemVyL2NvbW1vbic7XG5pbXBvcnQgeyBnZXRUb2tlbkJlZm9yZSB9IGZyb20gJy4vbGludGVyLXNoYXJlZCc7XG5cbmNvbnN0IGJ1aWxkU3FsRXJyb3JNZXNzYWdlID0gKGRvYzogVGV4dCwgbm9kZTogU3ludGF4Tm9kZVJlZik6IHN0cmluZyA9PiB7XG4gIGlmIChub2RlLmZyb20gIT09IG5vZGUudG8pIHtcbiAgICBjb25zdCB0ZXh0ID0gZG9jLnNsaWNlU3RyaW5nKG5vZGUuZnJvbSwgbm9kZS50byk7XG4gICAgcmV0dXJuIGBTUUwgc3ludGF4IGVycm9yIG5lYXIgXCIke3RleHR9XCJgO1xuICB9XG4gIGNvbnN0IHByZXZUb2tlbiA9IGdldFRva2VuQmVmb3JlKGRvYywgbm9kZS5mcm9tKTtcbiAgaWYgKCFwcmV2VG9rZW4pIHJldHVybiAnU1FMIHN5bnRheCBlcnJvciBhdCBiZWdpbm5pbmcgb2Ygc3RhdGVtZW50JztcbiAgaWYgKC9GUk9NJC9pLnRlc3QocHJldlRva2VuKSkgcmV0dXJuICdFeHBlY3RlZCB0YWJsZSBuYW1lIGFmdGVyIEZST00nO1xuICBpZiAoL1NFTEVDVCQvaS50ZXN0KHByZXZUb2tlbikpIHJldHVybiAnRXhwZWN0ZWQgY29sdW1uIGxpc3QgYWZ0ZXIgU0VMRUNUJztcbiAgaWYgKC9XSEVSRSQvaS50ZXN0KHByZXZUb2tlbikpIHJldHVybiAnRXhwZWN0ZWQgY29uZGl0aW9uIGFmdGVyIFdIRVJFJztcbiAgaWYgKHByZXZUb2tlbi5lbmRzV2l0aCgnKCcpKSByZXR1cm4gJ01pc3NpbmcgY2xvc2luZyBcIilcIic7XG4gIHJldHVybiBgVW5leHBlY3RlZCBlbmQgb2YgU1FMIGFmdGVyIFwiJHtwcmV2VG9rZW59XCJgO1xufTtcblxuLyoqIFBow6F0IGhp4buHbiBs4buXaSBjw7ogcGjDoXAgU1FMIHThu6sgZXJyb3Igbm9kZSBj4bunYSBzeW50YXhUcmVlIChMZXplcikuICovXG5leHBvcnQgY29uc3QgY29tcHV0ZVNxbERpYWdub3N0aWNzID0gKHZpZXc6IEVkaXRvclZpZXcpOiBEaWFnbm9zdGljW10gPT4ge1xuICBjb25zdCBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdID0gW107XG4gIGNvbnN0IGRvYyA9IHZpZXcuc3RhdGUuZG9jO1xuICBzeW50YXhUcmVlKHZpZXcuc3RhdGUpLml0ZXJhdGUoe1xuICAgIGVudGVyOiAobm9kZTogU3ludGF4Tm9kZVJlZikgPT4ge1xuICAgICAgaWYgKCFub2RlLnR5cGUuaXNFcnJvcikgcmV0dXJuO1xuICAgICAgZGlhZ25vc3RpY3MucHVzaCh7IGZyb206IE1hdGgubWF4KDAsIG5vZGUuZnJvbSAtIDEpLCB0bzogbm9kZS5mcm9tLCBzZXZlcml0eTogJ2Vycm9yJywgbWVzc2FnZTogYnVpbGRTcWxFcnJvck1lc3NhZ2UoZG9jLCBub2RlKSB9KTtcbiAgICB9LFxuICB9KTtcbiAgcmV0dXJuIGRpYWdub3N0aWNzO1xufTtcbiJdfQ==
|