@kusto/monaco-kusto 8.1.0 → 8.3.0

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 (32) hide show
  1. package/package.json +16 -16
  2. package/release/dev/Kusto.Language.Bridge.min.js +1 -1
  3. package/release/dev/kusto.javascript.client.min.js +1 -1
  4. package/release/dev/kustoMode.js +21 -21
  5. package/release/dev/kustoWorker.js +23 -21
  6. package/release/dev/{main-3a499de0.js → main-e6ef956d.js} +168 -381
  7. package/release/dev/monaco.contribution.js +6 -9
  8. package/release/dev/{schema-c5e21c0d.js → schema-7d65ed04.js} +4 -4
  9. package/release/esm/commandFormatter.js +37 -0
  10. package/release/esm/commandHighlighter.js +52 -0
  11. package/release/esm/extendedEditor.js +41 -0
  12. package/release/esm/kusto.worker.js +2 -2
  13. package/release/esm/kustoMode.js +139 -1158
  14. package/release/esm/kustoWorker.js +252 -0
  15. package/release/esm/languageFeatures.js +1072 -0
  16. package/release/esm/languageService/kustoLanguageService.js +1923 -0
  17. package/release/esm/languageService/kustoMonarchLanguageDefinition.js +211 -0
  18. package/release/esm/languageService/renderInfo.js +1 -0
  19. package/release/esm/languageService/schema.js +64 -0
  20. package/release/esm/languageService/settings.js +1 -0
  21. package/release/esm/monaco.contribution.js +178 -426
  22. package/release/esm/{schema-76f41b43.js → schema-ee621489.js} +1 -2
  23. package/release/esm/types.js +1 -0
  24. package/release/esm/workerManager.js +102 -0
  25. package/release/min/Kusto.Language.Bridge.min.js +1 -1
  26. package/release/min/kusto.javascript.client.min.js +1 -1
  27. package/release/min/kustoMode.js +2 -2
  28. package/release/min/kustoWorker.js +2 -2
  29. package/release/min/main-04a9f035.js +7 -0
  30. package/release/min/monaco.contribution.js +2 -2
  31. package/release/min/{schema-ac23be64.js → schema-095fdf5a.js} +2 -2
  32. package/release/min/main-33264011.js +0 -7
@@ -0,0 +1,211 @@
1
+ export var KustoLanguageDefinition = {
2
+ name: 'kusto',
3
+ mimeTypes: ['text/kusto'],
4
+ displayName: 'Kusto',
5
+ defaultToken: 'invalid',
6
+ brackets: [
7
+ ['[', ']', 'delimiter.square'],
8
+ ['(', ')', 'delimiter.parenthesis'],
9
+ ],
10
+ wordDefinition: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
11
+ // .slice() call is for creating a shallow copy of the array since bridge.net shoves a $type property on the array which monaco doesn't like.
12
+ // Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens.slice(0),
13
+ promotedOperatorCommandTokens: [
14
+ 'where',
15
+ 'count',
16
+ 'extend',
17
+ 'join',
18
+ 'limit',
19
+ 'order',
20
+ 'project',
21
+ 'project-away',
22
+ 'project-rename',
23
+ 'project-reorder',
24
+ 'project-keep',
25
+ 'render',
26
+ 'sort',
27
+ 'summarize',
28
+ 'distinct',
29
+ 'take',
30
+ 'top',
31
+ 'top-nested',
32
+ 'top-hitters',
33
+ 'union',
34
+ 'mv-expand',
35
+ 'mv-apply',
36
+ 'reduce',
37
+ 'evaluate',
38
+ 'parse',
39
+ 'parse-where',
40
+ 'parse-kv',
41
+ 'sample',
42
+ 'sample-distinct',
43
+ 'make-series',
44
+ 'getschema',
45
+ 'serialize',
46
+ 'invoke',
47
+ 'as',
48
+ 'scan',
49
+ ],
50
+ // Kusto.Data.IntelliSense.CslCommandParser.OperatorCommandTokens.slice(0),
51
+ operatorCommandTokens: [
52
+ 'filter',
53
+ 'fork',
54
+ 'facet',
55
+ 'range',
56
+ 'consume',
57
+ 'find',
58
+ 'search',
59
+ 'print',
60
+ 'partition',
61
+ 'lookup',
62
+ 'where',
63
+ 'count',
64
+ 'extend',
65
+ 'join',
66
+ 'limit',
67
+ 'order',
68
+ 'project',
69
+ 'project-away',
70
+ 'project-rename',
71
+ 'project-reorder',
72
+ 'project-keep',
73
+ 'render',
74
+ 'sort',
75
+ 'summarize',
76
+ 'distinct',
77
+ 'take',
78
+ 'top',
79
+ 'top-nested',
80
+ 'top-hitters',
81
+ 'union',
82
+ 'mv-expand',
83
+ 'mv-apply',
84
+ 'reduce',
85
+ 'evaluate',
86
+ 'parse',
87
+ 'parse-where',
88
+ 'parse-kv',
89
+ 'sample',
90
+ 'sample-distinct',
91
+ 'make-series',
92
+ 'getschema',
93
+ 'serialize',
94
+ 'invoke',
95
+ 'as',
96
+ 'scan',
97
+ ],
98
+ keywords: [
99
+ 'by',
100
+ 'on',
101
+ 'contains',
102
+ 'notcontains',
103
+ 'containscs',
104
+ 'notcontainscs',
105
+ 'startswith',
106
+ 'has',
107
+ 'matches',
108
+ 'regex',
109
+ 'true',
110
+ 'false',
111
+ 'and',
112
+ 'or',
113
+ 'typeof',
114
+ 'int',
115
+ 'string',
116
+ 'date',
117
+ 'datetime',
118
+ 'time',
119
+ 'long',
120
+ 'real',
121
+ '​boolean',
122
+ 'bool',
123
+ ],
124
+ operators: ['+', '-', '*', '/', '>', '<', '==', '<>', '<=', '>=', '~', '!~'],
125
+ builtinFunctions: [
126
+ 'countof',
127
+ 'bin',
128
+ 'extentid',
129
+ 'extract',
130
+ 'extractjson',
131
+ 'floor',
132
+ 'iif',
133
+ 'isnull',
134
+ 'isnotnull',
135
+ 'notnull',
136
+ 'isempty',
137
+ 'isnotempty',
138
+ 'notempty',
139
+ 'now',
140
+ 're2',
141
+ 'strcat',
142
+ 'strlen',
143
+ 'toupper',
144
+ 'tostring',
145
+ 'count',
146
+ 'cnt',
147
+ 'sum',
148
+ 'min',
149
+ 'max',
150
+ 'avg',
151
+ ],
152
+ tokenizer: {
153
+ root: [
154
+ { include: '@whitespace' },
155
+ { include: '@numbers' },
156
+ { include: '@strings' },
157
+ { include: '@dqstrings' },
158
+ { include: '@literals' },
159
+ { include: '@comments' },
160
+ [/[;,.]/, 'delimiter'],
161
+ [/[()\[\]]/, '@brackets'],
162
+ [/[<>=!%&+\-*/|~^]/, 'operator'],
163
+ [
164
+ /[\w@#\-$]+/,
165
+ {
166
+ cases: {
167
+ '@keywords': 'keyword',
168
+ '@promotedOperatorCommandTokens': 'operator.sql',
169
+ '@operatorCommandTokens': 'keyword',
170
+ '@operators': 'operator',
171
+ '@builtinFunctions': 'predefined',
172
+ '@default': 'identifier',
173
+ },
174
+ },
175
+ ],
176
+ ],
177
+ whitespace: [[/\s+/, 'white']],
178
+ comments: [['\\/\\/+.*', 'comment']],
179
+ numbers: [
180
+ [/0[xX][0-9a-fA-F]*/, 'number'],
181
+ [/[$][+-]*\d*(\.\d*)?/, 'number'],
182
+ [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'],
183
+ ],
184
+ strings: [
185
+ [/H'/, { token: 'string.quote', bracket: '@open', next: '@string' }],
186
+ [/h'/, { token: 'string.quote', bracket: '@open', next: '@string' }],
187
+ [/'/, { token: 'string.quote', bracket: '@open', next: '@string' }],
188
+ ],
189
+ string: [
190
+ [/[^']+/, 'string'],
191
+ [/''/, 'string'],
192
+ [/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }],
193
+ ],
194
+ dqstrings: [
195
+ [/H"/, { token: 'string.quote', bracket: '@open', next: '@dqstring' }],
196
+ [/h"/, { token: 'string.quote', bracket: '@open', next: '@dqstring' }],
197
+ [/"/, { token: 'string.quote', bracket: '@open', next: '@dqstring' }],
198
+ ],
199
+ dqstring: [
200
+ [/[^"]+/, 'string'],
201
+ [/""/, 'string'],
202
+ [/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }],
203
+ ],
204
+ literals: [
205
+ [/datetime\(\d{4}-\d{2}-\d{2}(\s+\d{2}:\d{2}(:\d{2}(\.\d{0,3})?)?)?\)/, 'number'],
206
+ [/time\((\d+(s(ec(onds?)?)?|m(in(utes?)?)?|h(ours?)?|d(ays?)?)|(\s*(('[^']+')|("[^"]+"))\s*))\)/, 'number'],
207
+ [/guid\([\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}\)/, 'number'],
208
+ [/typeof\((int|string|date|datetime|time|long|real|boolean|bool)\)/, 'number'],
209
+ ],
210
+ },
211
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ // Definition of schema object in the context of language services. This model is exposed to consumers of this library.
2
+ var dotnetTypeToKustoType = {
3
+ 'System.SByte': 'bool',
4
+ 'System.Byte': 'uint8',
5
+ 'System.Int16': 'int16',
6
+ 'System.UInt16': 'uint16',
7
+ 'System.Int32': 'int',
8
+ 'System.UInt32': 'uint',
9
+ 'System.Int64': 'long',
10
+ 'System.UInt64': 'ulong',
11
+ 'System.String': 'string',
12
+ 'System.Single': 'float',
13
+ 'System.Double': 'real',
14
+ 'System.DateTime': 'datetime',
15
+ 'System.TimeSpan': 'timespan',
16
+ 'System.Guid': 'guid',
17
+ 'System.Boolean': 'bool',
18
+ 'Newtonsoft.Json.Linq.JArray': 'dynamic',
19
+ 'Newtonsoft.Json.Linq.JObject': 'dynamic',
20
+ 'Newtonsoft.Json.Linq.JToken': 'dynamic',
21
+ 'System.Object': 'dynamic',
22
+ 'System.Data.SqlTypes.SqlDecimal': 'decimal',
23
+ };
24
+ export var getCslTypeNameFromClrType = function (clrType) { return dotnetTypeToKustoType[clrType] || clrType; };
25
+ var kustoTypeToEntityDataType = {
26
+ object: 'Object',
27
+ bool: 'Boolean',
28
+ uint8: 'Byte',
29
+ int16: 'Int16',
30
+ uint16: 'UInt16',
31
+ int: 'Int32',
32
+ uint: 'UInt32',
33
+ long: 'Int64',
34
+ ulong: 'UInt64',
35
+ float: 'Single',
36
+ real: 'Double',
37
+ decimal: 'Decimal',
38
+ datetime: 'DateTime',
39
+ string: 'String',
40
+ dynamic: 'Dynamic',
41
+ timespan: 'TimeSpan',
42
+ };
43
+ export var getEntityDataTypeFromCslType = function (cslType) { return kustoTypeToEntityDataType[cslType] || cslType; };
44
+ export var getCallName = function (fn) {
45
+ return "".concat(fn.name, "(").concat(fn.inputParameters.map(function (p) { return "{".concat(p.name, "}"); }).join(','), ")");
46
+ };
47
+ export var getExpression = function (fn) {
48
+ return "let ".concat(fn.name, " = ").concat(getInputParametersAsCslString(fn.inputParameters), " ").concat(fn.body);
49
+ };
50
+ export var getInputParametersAsCslString = function (inputParameters) {
51
+ return "(".concat(inputParameters.map(function (inputParameter) { return getInputParameterAsCslString(inputParameter); }).join(','), ")");
52
+ };
53
+ var getInputParameterAsCslString = function (inputParameter) {
54
+ // If this is a tabular parameter
55
+ if (inputParameter.columns && inputParameter.columns.length > 0) {
56
+ var attributesAsString = inputParameter.columns
57
+ .map(function (col) { return "".concat(col.name, ":").concat(col.cslType || getCslTypeNameFromClrType(col.type)); })
58
+ .join(',');
59
+ return "".concat(inputParameter.name, ":").concat(attributesAsString === '' ? '*' : attributesAsString);
60
+ }
61
+ else {
62
+ return "".concat(inputParameter.name, ":").concat(inputParameter.cslType || getCslTypeNameFromClrType(inputParameter.type));
63
+ }
64
+ };
@@ -0,0 +1 @@
1
+ export {};