@cloudcare/codemirror-dql 0.0.57 → 0.0.61
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/complete/dql.terms.d.ts +6 -0
- package/dist/cjs/complete/dql.terms.js +60 -4
- package/dist/cjs/complete/dql.terms.js.map +1 -1
- package/dist/cjs/complete/hybrid.d.ts +2 -1
- package/dist/cjs/complete/hybrid.js +49 -5
- package/dist/cjs/complete/hybrid.js.map +1 -1
- package/dist/cjs/complete/studioql.d.ts +3 -0
- package/dist/cjs/complete/studioql.js +159 -0
- package/dist/cjs/complete/studioql.js.map +1 -0
- package/dist/cjs/parser/parser.d.ts +16 -0
- package/dist/cjs/parser/parser.js +625 -30
- package/dist/cjs/parser/parser.js.map +1 -1
- package/dist/esm/complete/dql.terms.d.ts +6 -0
- package/dist/esm/complete/dql.terms.js +22 -1
- package/dist/esm/complete/dql.terms.js.map +1 -1
- package/dist/esm/complete/hybrid.d.ts +2 -1
- package/dist/esm/complete/hybrid.js +51 -7
- package/dist/esm/complete/hybrid.js.map +1 -1
- package/dist/esm/complete/studioql.d.ts +3 -0
- package/dist/esm/complete/studioql.js +144 -0
- package/dist/esm/complete/studioql.js.map +1 -0
- package/dist/esm/parser/parser.d.ts +16 -0
- package/dist/esm/parser/parser.js +588 -28
- package/dist/esm/parser/parser.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.studioQLNamespaceTerm = void 0;
|
|
15
|
+
exports.completeStudioQuery = completeStudioQuery;
|
|
16
|
+
var autocomplete_1 = require("@codemirror/autocomplete");
|
|
17
|
+
var language_1 = require("@codemirror/language");
|
|
18
|
+
var incidentsFunctions = [
|
|
19
|
+
{ name: 'incidents_total_count', info: 'Total incident count' },
|
|
20
|
+
{ name: 'open_incidents_count', info: 'Open incident count' },
|
|
21
|
+
{ name: 'working_incidents_count', info: 'Working incident count' },
|
|
22
|
+
{ name: 'incidents_duration_by_assignee', info: 'Incident duration by assignee', extraParameter: 'top' },
|
|
23
|
+
{ name: 'unresolved_incidents_assignee_distribution', info: 'Unresolved incident distribution by assignee' },
|
|
24
|
+
{ name: 'incidents_count_distribution_by_level', info: 'Incident count distribution by level' },
|
|
25
|
+
{ name: 'incidents_count_by_assignee', info: 'Incident count by assignee', extraParameter: 'top' },
|
|
26
|
+
{ name: 'max_incidents_duration', info: 'Maximum incident duration' },
|
|
27
|
+
{ name: 'unresolved_incidents_list', info: 'Unresolved incident list', extraParameter: 'limit' },
|
|
28
|
+
{ name: 'resolved_issue_count', info: 'Resolved issue count' },
|
|
29
|
+
];
|
|
30
|
+
exports.studioQLNamespaceTerm = {
|
|
31
|
+
label: 'STUDIOQL',
|
|
32
|
+
type: 'namespace',
|
|
33
|
+
detail: 'Studio query',
|
|
34
|
+
apply: 'STUDIOQL.',
|
|
35
|
+
};
|
|
36
|
+
function completeStudioQuery(context) {
|
|
37
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
38
|
+
var state = context.state, pos = context.pos;
|
|
39
|
+
var tree = (0, language_1.syntaxTree)(state);
|
|
40
|
+
var query = (_a = tree.topNode.getChild('QueryExpr')) === null || _a === void 0 ? void 0 : _a.getChild('StudioQuery');
|
|
41
|
+
if (!query || pos < query.from)
|
|
42
|
+
return null;
|
|
43
|
+
var endTime = Date.now();
|
|
44
|
+
var timeRangeSnippet = "time_range=[${1:".concat(endTime - 60 * 60 * 1000, "}, ${2:").concat(endTime, "}]");
|
|
45
|
+
var parameterSnippets = {
|
|
46
|
+
time_range: timeRangeSnippet,
|
|
47
|
+
top: "top='${3:10}'",
|
|
48
|
+
limit: "limit='${3:500}'",
|
|
49
|
+
};
|
|
50
|
+
var result = function (from, to, options) { return ({
|
|
51
|
+
from: from,
|
|
52
|
+
to: to,
|
|
53
|
+
options: options,
|
|
54
|
+
validFor: /^[a-zA-Z0-9_]*$/,
|
|
55
|
+
}); };
|
|
56
|
+
var empty = function () { return result(pos, pos, []); };
|
|
57
|
+
if (tree.resolve(pos, -1).name === 'LineComment')
|
|
58
|
+
return empty();
|
|
59
|
+
var skipTrivia = function (from) {
|
|
60
|
+
while (from < state.doc.length) {
|
|
61
|
+
var comment = tree.resolve(from, 1);
|
|
62
|
+
if (comment.name === 'LineComment' && comment.to > from) {
|
|
63
|
+
from = comment.to;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
var whitespace = state.sliceDoc(from).match(/^\s+/);
|
|
67
|
+
if (!whitespace)
|
|
68
|
+
break;
|
|
69
|
+
from += whitespace[0].length;
|
|
70
|
+
}
|
|
71
|
+
return from;
|
|
72
|
+
};
|
|
73
|
+
var hasFollowing = function (to, char) {
|
|
74
|
+
var next = skipTrivia(to);
|
|
75
|
+
return state.sliceDoc(next, next + 1) === char;
|
|
76
|
+
};
|
|
77
|
+
var completeDotGap = function (from, nextFrom) {
|
|
78
|
+
if (pos <= from || (nextFrom !== undefined && pos >= nextFrom))
|
|
79
|
+
return null;
|
|
80
|
+
var dot = skipTrivia(from);
|
|
81
|
+
if (state.sliceDoc(dot, dot + 1) !== '.')
|
|
82
|
+
return result(pos, pos, [{ label: '.', apply: '.' }]);
|
|
83
|
+
return pos <= dot ? empty() : null;
|
|
84
|
+
};
|
|
85
|
+
var prefix = query.getChild('StudioQL');
|
|
86
|
+
var module = query.getChild('StudioModule');
|
|
87
|
+
var func = query.getChild('StudioFunction');
|
|
88
|
+
var body = query.getChild('StudioCallBody');
|
|
89
|
+
if (prefix && pos <= prefix.to) {
|
|
90
|
+
return result(prefix.from, prefix.to, [__assign(__assign({}, exports.studioQLNamespaceTerm), { apply: hasFollowing(prefix.to, '.') ? 'STUDIOQL' : 'STUDIOQL.' })]);
|
|
91
|
+
}
|
|
92
|
+
var moduleGap = prefix && completeDotGap(prefix.to, module === null || module === void 0 ? void 0 : module.from);
|
|
93
|
+
if (moduleGap)
|
|
94
|
+
return moduleGap;
|
|
95
|
+
if (!module || pos <= module.to) {
|
|
96
|
+
var from_1 = Math.min((_b = module === null || module === void 0 ? void 0 : module.from) !== null && _b !== void 0 ? _b : pos, pos);
|
|
97
|
+
var to = (_c = module === null || module === void 0 ? void 0 : module.to) !== null && _c !== void 0 ? _c : pos;
|
|
98
|
+
return result(from_1, to, [{ label: 'incidents', type: 'namespace', apply: hasFollowing(to, '.') ? 'incidents' : 'incidents.' }]);
|
|
99
|
+
}
|
|
100
|
+
if (state.sliceDoc(module.from, module.to).toLowerCase() !== 'incidents')
|
|
101
|
+
return empty();
|
|
102
|
+
var functionGap = completeDotGap(module.to, func === null || func === void 0 ? void 0 : func.from);
|
|
103
|
+
if (functionGap)
|
|
104
|
+
return functionGap;
|
|
105
|
+
if (!func || pos <= func.to || (!body && !state.sliceDoc(func.to, pos).trim())) {
|
|
106
|
+
var from_2 = Math.min((_d = func === null || func === void 0 ? void 0 : func.from) !== null && _d !== void 0 ? _d : pos, pos);
|
|
107
|
+
var to_1 = (_e = func === null || func === void 0 ? void 0 : func.to) !== null && _e !== void 0 ? _e : pos;
|
|
108
|
+
return result(from_2, to_1, incidentsFunctions.map(function (fn) { return ({
|
|
109
|
+
label: fn.name,
|
|
110
|
+
type: 'function',
|
|
111
|
+
detail: fn.extraParameter ? "(time_range, ".concat(fn.extraParameter, ")") : '(time_range)',
|
|
112
|
+
info: fn.info,
|
|
113
|
+
apply: hasFollowing(to_1, '(')
|
|
114
|
+
? fn.name
|
|
115
|
+
: (0, autocomplete_1.snippet)("".concat(fn.name, "(").concat(timeRangeSnippet).concat(fn.extraParameter ? ', ' + parameterSnippets[fn.extraParameter] : '', ")")),
|
|
116
|
+
}); }));
|
|
117
|
+
}
|
|
118
|
+
if (!body)
|
|
119
|
+
return empty();
|
|
120
|
+
var fn = incidentsFunctions.find(function (fn) { return fn.name === state.sliceDoc(func.from, func.to).toLowerCase(); });
|
|
121
|
+
if (!fn || pos <= body.from || (pos >= body.to && state.sliceDoc(body.to - 1, body.to) === ')'))
|
|
122
|
+
return empty();
|
|
123
|
+
var args = body.getChildren('StudioArgument');
|
|
124
|
+
var current = (_f = args.find(function (arg) { return arg.from <= pos && pos <= arg.to; })) !== null && _f !== void 0 ? _f : args.find(function (arg) { return arg.from === skipTrivia(pos); });
|
|
125
|
+
var identifier = current === null || current === void 0 ? void 0 : current.getChild('Identifier');
|
|
126
|
+
if (current && (!identifier || pos > identifier.to))
|
|
127
|
+
return empty();
|
|
128
|
+
if (identifier && pos < identifier.from && !(current === null || current === void 0 ? void 0 : current.getChild('EqlSingle')))
|
|
129
|
+
return empty();
|
|
130
|
+
if (!current) {
|
|
131
|
+
var previous = args.filter(function (arg) { return arg.to < pos; }).pop();
|
|
132
|
+
var slot = skipTrivia((_g = previous === null || previous === void 0 ? void 0 : previous.to) !== null && _g !== void 0 ? _g : body.from + 1);
|
|
133
|
+
if (previous) {
|
|
134
|
+
if (slot >= pos || state.sliceDoc(slot, slot + 1) !== ',')
|
|
135
|
+
return empty();
|
|
136
|
+
slot = skipTrivia(slot + 1);
|
|
137
|
+
}
|
|
138
|
+
if (slot < pos)
|
|
139
|
+
return empty();
|
|
140
|
+
}
|
|
141
|
+
var used = new Set(args
|
|
142
|
+
.filter(function (arg) { return arg !== current && arg.getChild('EqlSingle'); })
|
|
143
|
+
.map(function (arg) {
|
|
144
|
+
var key = arg.getChild('Identifier');
|
|
145
|
+
return key ? state.sliceDoc(key.from, key.to).toLowerCase() : '';
|
|
146
|
+
}));
|
|
147
|
+
var parameters = fn.extraParameter ? ['time_range', fn.extraParameter] : ['time_range'];
|
|
148
|
+
var from = Math.min((_h = identifier === null || identifier === void 0 ? void 0 : identifier.from) !== null && _h !== void 0 ? _h : pos, pos);
|
|
149
|
+
var leadingTrivia = identifier ? state.sliceDoc(from, identifier.from) : '';
|
|
150
|
+
return result(from, (_j = identifier === null || identifier === void 0 ? void 0 : identifier.to) !== null && _j !== void 0 ? _j : pos, parameters
|
|
151
|
+
.filter(function (name) { return !used.has(name); })
|
|
152
|
+
.map(function (name) { return ({
|
|
153
|
+
label: name,
|
|
154
|
+
type: 'property',
|
|
155
|
+
detail: name === 'time_range' ? '[start_time, end_time]' : 'string',
|
|
156
|
+
apply: (current === null || current === void 0 ? void 0 : current.getChild('EqlSingle')) ? leadingTrivia + name : (0, autocomplete_1.snippet)(parameterSnippets[name]),
|
|
157
|
+
}); }));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=studioql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioql.js","sourceRoot":"","sources":["../../../src/complete/studioql.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export declare class Parser {
|
|
|
15
15
|
private quotedQueryDelimiterInfo;
|
|
16
16
|
private caseResultDiagnostics;
|
|
17
17
|
private caseResultRecoveryErrors;
|
|
18
|
+
private caseShiftPresence;
|
|
18
19
|
constructor(state: EditorState, deadline?: number);
|
|
19
20
|
getDiagnostics(): Diagnostic[];
|
|
20
21
|
analyze(): void;
|
|
@@ -60,6 +61,7 @@ export declare class Parser {
|
|
|
60
61
|
private maskLineComments;
|
|
61
62
|
private maskStringsAndLineComments;
|
|
62
63
|
private containsError;
|
|
64
|
+
private firstErrorFrom;
|
|
63
65
|
private looksLikeProjectionAfterMissingColon;
|
|
64
66
|
private containsNode;
|
|
65
67
|
private findAncestor;
|
|
@@ -93,22 +95,36 @@ export declare class Parser {
|
|
|
93
95
|
private findStringNewlineRecovery;
|
|
94
96
|
checkAST(node: SyntaxNode | null): void;
|
|
95
97
|
private checkDuplicateQueryClauses;
|
|
98
|
+
private checkQueryShiftPlacement;
|
|
99
|
+
private checkExpressionShiftOffsets;
|
|
100
|
+
private checkShiftDuration;
|
|
101
|
+
private checkShiftExpression;
|
|
102
|
+
private checkEvalFieldReferenceContext;
|
|
103
|
+
private checkEvalReferences;
|
|
96
104
|
private checkDuplicateShowClauses;
|
|
97
105
|
private checkIntegerClause;
|
|
98
106
|
private checkTimeRangeShape;
|
|
99
107
|
private checkBareRollup;
|
|
100
108
|
private checkRollupFunctionCall;
|
|
101
109
|
private checkFunctionCall;
|
|
110
|
+
private functionArityMessage;
|
|
102
111
|
private checkOuterFunctionCall;
|
|
103
112
|
private checkProjectionAlias;
|
|
104
113
|
private checkFilterSubqueryOperator;
|
|
105
114
|
private checkFieldName;
|
|
106
115
|
private checkCaseFunction;
|
|
116
|
+
private caseContainsShift;
|
|
107
117
|
private checkCaseResults;
|
|
108
118
|
private checkShowFunctionRequirements;
|
|
109
119
|
private pushSemanticDiagnostic;
|
|
110
120
|
private pushSemanticDiagnosticAt;
|
|
111
121
|
private directChildren;
|
|
122
|
+
private descendantsNamed;
|
|
123
|
+
private shiftOperandFunctionCalls;
|
|
124
|
+
private errorDescendantsWithText;
|
|
125
|
+
private functionCallName;
|
|
126
|
+
private isPositiveFixedDuration;
|
|
127
|
+
private fixedDurationMilliseconds;
|
|
112
128
|
private numericValue;
|
|
113
129
|
private splitTopLevelSegments;
|
|
114
130
|
private describeUnknownFunction;
|