@sap-ux/cds-annotation-parser 0.1.1

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 (55) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +74 -0
  3. package/dist/constants.d.ts +6 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +10 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/find-annotation-node.d.ts +40 -0
  8. package/dist/find-annotation-node.d.ts.map +1 -0
  9. package/dist/find-annotation-node.js +135 -0
  10. package/dist/find-annotation-node.js.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +52 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/parser/factory.d.ts +6 -0
  16. package/dist/parser/factory.d.ts.map +1 -0
  17. package/dist/parser/factory.js +13 -0
  18. package/dist/parser/factory.js.map +1 -0
  19. package/dist/parser/index.d.ts +11 -0
  20. package/dist/parser/index.d.ts.map +1 -0
  21. package/dist/parser/index.js +17 -0
  22. package/dist/parser/index.js.map +1 -0
  23. package/dist/parser/parser.d.ts +242 -0
  24. package/dist/parser/parser.d.ts.map +1 -0
  25. package/dist/parser/parser.js +385 -0
  26. package/dist/parser/parser.js.map +1 -0
  27. package/dist/parser/tokens.d.ts +103 -0
  28. package/dist/parser/tokens.d.ts.map +1 -0
  29. package/dist/parser/tokens.js +287 -0
  30. package/dist/parser/tokens.js.map +1 -0
  31. package/dist/transformer/annotation-ast-nodes.d.ts +178 -0
  32. package/dist/transformer/annotation-ast-nodes.d.ts.map +1 -0
  33. package/dist/transformer/annotation-ast-nodes.js +69 -0
  34. package/dist/transformer/annotation-ast-nodes.js.map +1 -0
  35. package/dist/transformer/ast.d.ts +6 -0
  36. package/dist/transformer/ast.d.ts.map +1 -0
  37. package/dist/transformer/ast.js +1227 -0
  38. package/dist/transformer/ast.js.map +1 -0
  39. package/dist/transformer/expressions.d.ts +87 -0
  40. package/dist/transformer/expressions.d.ts.map +1 -0
  41. package/dist/transformer/expressions.js +548 -0
  42. package/dist/transformer/expressions.js.map +1 -0
  43. package/dist/transformer/index.d.ts +5 -0
  44. package/dist/transformer/index.d.ts.map +1 -0
  45. package/dist/transformer/index.js +42 -0
  46. package/dist/transformer/index.js.map +1 -0
  47. package/dist/transformer/range.d.ts +20 -0
  48. package/dist/transformer/range.d.ts.map +1 -0
  49. package/dist/transformer/range.js +31 -0
  50. package/dist/transformer/range.js.map +1 -0
  51. package/dist/utils/index.d.ts +4 -0
  52. package/dist/utils/index.d.ts.map +1 -0
  53. package/dist/utils/index.js +17 -0
  54. package/dist/utils/index.js.map +1 -0
  55. package/package.json +38 -0
@@ -0,0 +1,548 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.containsIncorrectExpressions = exports.positionIsInExpressionWhiteSpace = exports.rebuildNumberSigns = exports.buildExpression = exports.getEdmOperatorMap = exports.operatorMap = exports.operatorImageMap = exports.OPERATOR_NAME_NOT_BETWEEN = exports.OPERATOR_NAME_BETWEEN = exports.OPERATOR_NAME_NOT_LIKE = exports.OPERATOR_NAME_LIKE = exports.OPERATOR_NAME_IS_NOT_NULL = exports.OPERATOR_NAME_IS_NULL = exports.OPERATOR_NAME_OR = exports.OPERATOR_NAME_AND = exports.OPERATOR_NAME_NOT = exports.OPERATOR_NAME_UNARY_MINUS = exports.OPERATOR_NAME_DIVIDE = exports.OPERATOR_NAME_MULTIPLY = exports.OPERATOR_NAME_MINUS = exports.OPERATOR_NAME_PLUS = exports.OPERATOR_NAME_CONCAT = exports.OPERATOR_NAME_TERNARY = exports.OPERATOR_NAME_LESS_OR_EQUAL = exports.OPERATOR_NAME_LESS_THEN = exports.OPERATOR_NAME_GREATER_OR_EQUAL = exports.OPERATOR_NAME_GREATER_THEN = exports.OPERATOR_NAME_EQUAL = exports.OPERATOR_NAME_NOT_EQUAL = void 0;
4
+ const odata_annotation_core_1 = require("@sap-ux/odata-annotation-core");
5
+ const annotation_ast_nodes_1 = require("./annotation-ast-nodes");
6
+ exports.OPERATOR_NAME_NOT_EQUAL = 'not-equal'; // '!=' or '<>'
7
+ exports.OPERATOR_NAME_EQUAL = 'equal'; // '=';
8
+ exports.OPERATOR_NAME_GREATER_THEN = 'greater-then'; // '>';
9
+ exports.OPERATOR_NAME_GREATER_OR_EQUAL = 'greater-or-equal'; // '>=';
10
+ exports.OPERATOR_NAME_LESS_THEN = 'less-then'; // '<';
11
+ exports.OPERATOR_NAME_LESS_OR_EQUAL = 'less-or-equal'; // '<=';
12
+ exports.OPERATOR_NAME_TERNARY = 'ternary'; // '?' <trueValue> : <falseValue>;
13
+ exports.OPERATOR_NAME_CONCAT = 'concat'; // '||';
14
+ exports.OPERATOR_NAME_PLUS = 'plus'; // '+';
15
+ exports.OPERATOR_NAME_MINUS = 'minus'; // '-';
16
+ exports.OPERATOR_NAME_MULTIPLY = 'multiply'; // '*';
17
+ exports.OPERATOR_NAME_DIVIDE = 'divide'; // '/';
18
+ exports.OPERATOR_NAME_UNARY_MINUS = 'unary-minus'; // '-';
19
+ exports.OPERATOR_NAME_NOT = 'not'; // 'NOT'
20
+ exports.OPERATOR_NAME_AND = 'and'; // 'AND';
21
+ exports.OPERATOR_NAME_OR = 'or'; // 'OR';
22
+ exports.OPERATOR_NAME_IS_NULL = 'is-null'; // 'IS NULL';
23
+ exports.OPERATOR_NAME_IS_NOT_NULL = 'is-not-null'; // 'IS NOT NULL';
24
+ exports.OPERATOR_NAME_LIKE = 'like'; // 'like';
25
+ exports.OPERATOR_NAME_NOT_LIKE = 'not-like'; // 'not like';
26
+ exports.OPERATOR_NAME_BETWEEN = 'between'; // 'BETWEEN <lower> AND <higher>';
27
+ exports.OPERATOR_NAME_NOT_BETWEEN = 'not-between'; // 'NOT BETWEEN <lower> AND <higher>';
28
+ // /!=?|==?|<>|>=?|<=?|\?|:|\|\||\+|-|\*|\/|\bIS NULL\b|\bIS NOT NULL\b|\bNOT LIKE\b|\bLIKE\b|\bNOT BETWEEN\b|\bBETWEEN\b|\bNOT\b|\bAND\b|\bOR\b/i
29
+ // operator image can stand for multiple operators, e.g. '-' can stand for negation operator or minus, list unary operators first
30
+ exports.operatorImageMap = {
31
+ '!=': [exports.OPERATOR_NAME_NOT_EQUAL],
32
+ '<>': [exports.OPERATOR_NAME_NOT_EQUAL],
33
+ '=': [exports.OPERATOR_NAME_EQUAL],
34
+ '>': [exports.OPERATOR_NAME_GREATER_THEN],
35
+ '>=': [exports.OPERATOR_NAME_GREATER_OR_EQUAL],
36
+ '<': [exports.OPERATOR_NAME_LESS_THEN],
37
+ '<=': [exports.OPERATOR_NAME_LESS_OR_EQUAL],
38
+ '?': [exports.OPERATOR_NAME_TERNARY],
39
+ ':': [],
40
+ '||': [exports.OPERATOR_NAME_CONCAT],
41
+ '+': [exports.OPERATOR_NAME_PLUS],
42
+ '-': [exports.OPERATOR_NAME_UNARY_MINUS, exports.OPERATOR_NAME_MINUS],
43
+ '*': [exports.OPERATOR_NAME_MULTIPLY],
44
+ '/': [exports.OPERATOR_NAME_DIVIDE],
45
+ NOT: [exports.OPERATOR_NAME_NOT],
46
+ AND: [exports.OPERATOR_NAME_AND],
47
+ OR: [exports.OPERATOR_NAME_OR],
48
+ 'IS NULL': [exports.OPERATOR_NAME_IS_NULL],
49
+ 'IS NOT NULL': [exports.OPERATOR_NAME_IS_NOT_NULL],
50
+ LIKE: [exports.OPERATOR_NAME_LIKE],
51
+ 'NOT LIKE': [exports.OPERATOR_NAME_NOT_LIKE],
52
+ BETWEEN: [exports.OPERATOR_NAME_BETWEEN],
53
+ 'NOT BETWEEN': [exports.OPERATOR_NAME_NOT_BETWEEN]
54
+ };
55
+ const UNARY_OPERATOR_KIND_PREFIX = 'prefix';
56
+ const UNARY_OPERATOR_KIND_SUFFIX = 'suffix';
57
+ const OPERATOR_TYPE_UNARY = 'unary-operator';
58
+ const OPERATOR_TYPE_BINARY = 'binary-operator';
59
+ const OPERATOR_TYPE_TERNARY = 'ternary-operator';
60
+ // Edm names see: http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#sec_ComparisonandLogicalOperators ff
61
+ // operator precedence see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence and
62
+ // https://help.sap.com/docs/SAP_HANA_PLATFORM/4fe29514fd584807ac9f2a04f6754767/20a380977519101494ceddd944e87527.html
63
+ exports.operatorMap = {
64
+ [exports.OPERATOR_NAME_UNARY_MINUS]: {
65
+ name: exports.OPERATOR_NAME_UNARY_MINUS,
66
+ type: OPERATOR_TYPE_UNARY,
67
+ kind: UNARY_OPERATOR_KIND_PREFIX,
68
+ edmName: "Neg" /* Edm.Neg */,
69
+ precedence: 14
70
+ },
71
+ [exports.OPERATOR_NAME_MULTIPLY]: {
72
+ name: exports.OPERATOR_NAME_MULTIPLY,
73
+ type: OPERATOR_TYPE_BINARY,
74
+ edmName: "Mul" /* Edm.Mul */,
75
+ precedence: 12
76
+ },
77
+ [exports.OPERATOR_NAME_DIVIDE]: {
78
+ name: exports.OPERATOR_NAME_DIVIDE,
79
+ type: OPERATOR_TYPE_BINARY,
80
+ edmName: "Div" /* Edm.Div */,
81
+ precedence: 12
82
+ },
83
+ [exports.OPERATOR_NAME_PLUS]: { name: exports.OPERATOR_NAME_PLUS, type: OPERATOR_TYPE_BINARY, edmName: "Add" /* Edm.Add */, precedence: 11 },
84
+ [exports.OPERATOR_NAME_MINUS]: { name: exports.OPERATOR_NAME_MINUS, type: OPERATOR_TYPE_BINARY, edmName: "Sub" /* Edm.Sub */, precedence: 11 },
85
+ [exports.OPERATOR_NAME_CONCAT]: {
86
+ name: exports.OPERATOR_NAME_CONCAT,
87
+ type: OPERATOR_TYPE_BINARY,
88
+ edmName: 'odata.concat',
89
+ precedence: 10
90
+ },
91
+ // support via Edm.If and Edm.Null if cds-compilers edmx generation does
92
+ [exports.OPERATOR_NAME_IS_NULL]: {
93
+ name: exports.OPERATOR_NAME_IS_NULL,
94
+ type: OPERATOR_TYPE_UNARY,
95
+ kind: UNARY_OPERATOR_KIND_SUFFIX,
96
+ precedence: 9
97
+ },
98
+ [exports.OPERATOR_NAME_IS_NOT_NULL]: {
99
+ name: exports.OPERATOR_NAME_IS_NOT_NULL,
100
+ type: OPERATOR_TYPE_UNARY,
101
+ kind: UNARY_OPERATOR_KIND_SUFFIX,
102
+ precedence: 9,
103
+ edmNot: true
104
+ },
105
+ [exports.OPERATOR_NAME_LIKE]: {
106
+ name: exports.OPERATOR_NAME_LIKE,
107
+ type: OPERATOR_TYPE_BINARY,
108
+ edmName: 'odata.matchesPattern',
109
+ precedence: 9
110
+ },
111
+ [exports.OPERATOR_NAME_NOT_LIKE]: {
112
+ name: exports.OPERATOR_NAME_NOT_LIKE,
113
+ type: OPERATOR_TYPE_BINARY,
114
+ edmName: 'odata.matchesPattern',
115
+ precedence: 9,
116
+ edmNot: true
117
+ },
118
+ // support via "Edm.Gt" "Edm.And" and "Edm.Lt" if cds-compilers edmx generation supports it
119
+ [exports.OPERATOR_NAME_BETWEEN]: {
120
+ name: exports.OPERATOR_NAME_BETWEEN,
121
+ type: OPERATOR_TYPE_TERNARY,
122
+ secondaryOperatorImage: 'AND',
123
+ precedence: 9
124
+ },
125
+ [exports.OPERATOR_NAME_NOT_BETWEEN]: {
126
+ name: exports.OPERATOR_NAME_NOT_BETWEEN,
127
+ type: OPERATOR_TYPE_TERNARY,
128
+ secondaryOperatorImage: 'AND',
129
+ precedence: 9,
130
+ edmNot: true
131
+ },
132
+ [exports.OPERATOR_NAME_GREATER_THEN]: {
133
+ name: exports.OPERATOR_NAME_GREATER_THEN,
134
+ type: OPERATOR_TYPE_BINARY,
135
+ edmName: "Gt" /* Edm.Gt */,
136
+ precedence: 9
137
+ },
138
+ [exports.OPERATOR_NAME_GREATER_OR_EQUAL]: {
139
+ name: exports.OPERATOR_NAME_GREATER_OR_EQUAL,
140
+ type: OPERATOR_TYPE_BINARY,
141
+ edmName: "Ge" /* Edm.Ge */,
142
+ precedence: 9
143
+ },
144
+ [exports.OPERATOR_NAME_LESS_THEN]: {
145
+ name: exports.OPERATOR_NAME_LESS_THEN,
146
+ type: OPERATOR_TYPE_BINARY,
147
+ edmName: "Lt" /* Edm.Lt */,
148
+ precedence: 9
149
+ },
150
+ [exports.OPERATOR_NAME_LESS_OR_EQUAL]: {
151
+ name: exports.OPERATOR_NAME_LESS_OR_EQUAL,
152
+ type: OPERATOR_TYPE_BINARY,
153
+ edmName: "Le" /* Edm.Le */,
154
+ precedence: 9
155
+ },
156
+ [exports.OPERATOR_NAME_NOT_EQUAL]: {
157
+ name: exports.OPERATOR_NAME_NOT_EQUAL,
158
+ type: OPERATOR_TYPE_BINARY,
159
+ edmName: "Ne" /* Edm.Ne */,
160
+ precedence: 8
161
+ },
162
+ [exports.OPERATOR_NAME_EQUAL]: { name: exports.OPERATOR_NAME_EQUAL, type: OPERATOR_TYPE_BINARY, edmName: "Eq" /* Edm.Eq */, precedence: 8 },
163
+ [exports.OPERATOR_NAME_NOT]: {
164
+ name: exports.OPERATOR_NAME_NOT,
165
+ type: OPERATOR_TYPE_UNARY,
166
+ kind: UNARY_OPERATOR_KIND_PREFIX,
167
+ edmName: "Not" /* Edm.Not */,
168
+ precedence: 6 // from hana operator precedences; in javascript '!' operator has much higher precedence
169
+ },
170
+ [exports.OPERATOR_NAME_AND]: { name: exports.OPERATOR_NAME_AND, type: OPERATOR_TYPE_BINARY, edmName: "And" /* Edm.And */, precedence: 4 },
171
+ [exports.OPERATOR_NAME_OR]: { name: exports.OPERATOR_NAME_OR, type: OPERATOR_TYPE_BINARY, edmName: "Or" /* Edm.Or */, precedence: 3 },
172
+ [exports.OPERATOR_NAME_TERNARY]: {
173
+ name: exports.OPERATOR_NAME_TERNARY,
174
+ type: OPERATOR_TYPE_TERNARY,
175
+ secondaryOperatorImage: ':',
176
+ edmName: "If" /* Edm.If */,
177
+ precedence: 2
178
+ }
179
+ };
180
+ /**
181
+ * @returns Edm operators map
182
+ */
183
+ function getEdmOperatorMap() {
184
+ var _a, _b, _c;
185
+ // find cds expression operator name for edm operator name/ odata function name
186
+ const operatorImageLookup = new Map();
187
+ for (const image of Object.keys(exports.operatorImageMap)) {
188
+ const names = exports.operatorImageMap[image];
189
+ for (const name of names) {
190
+ if (!operatorImageLookup.has(name)) {
191
+ operatorImageLookup.set(name, []);
192
+ }
193
+ (_a = operatorImageLookup.get(name)) === null || _a === void 0 ? void 0 : _a.push(image);
194
+ }
195
+ }
196
+ const result = new Map();
197
+ for (const name of Object.keys(exports.operatorMap)) {
198
+ const edmName = exports.operatorMap[name].edmName;
199
+ if (edmName) {
200
+ if (!result.has(edmName)) {
201
+ result.set(edmName, []);
202
+ }
203
+ (_b = result.get(edmName)) === null || _b === void 0 ? void 0 : _b.push(...((_c = operatorImageLookup.get(name)) !== null && _c !== void 0 ? _c : []));
204
+ }
205
+ }
206
+ return result;
207
+ }
208
+ exports.getEdmOperatorMap = getEdmOperatorMap;
209
+ /**
210
+ * Builds expression.
211
+ *
212
+ * @param protoExpression Expression prototype
213
+ * @returns Correct expression ast node
214
+ */
215
+ function buildExpression(protoExpression) {
216
+ const { operators, name } = getRootOperator(protoExpression);
217
+ const operands = getOperands(name, operators, protoExpression);
218
+ const CorrectExpression = {
219
+ type: annotation_ast_nodes_1.CORRECT_EXPRESSION_TYPE,
220
+ operatorName: name,
221
+ operators,
222
+ operands,
223
+ range: protoExpression.range
224
+ };
225
+ return CorrectExpression;
226
+ }
227
+ exports.buildExpression = buildExpression;
228
+ /**
229
+ * Checks if nodes are correctly sorted based on their ranges.
230
+ *
231
+ * @param nodes Array with nodes to check
232
+ * @returns True if nodes ranges are correctly ordered
233
+ */
234
+ function assertSequence(nodes) {
235
+ if (nodes.length < 2) {
236
+ return true;
237
+ }
238
+ let result = true;
239
+ let previousNode = nodes[0];
240
+ for (let index = 1; index < nodes.length && result; index++) {
241
+ const currentNode = nodes[index];
242
+ if (!(previousNode === null || previousNode === void 0 ? void 0 : previousNode.range) || !(currentNode === null || currentNode === void 0 ? void 0 : currentNode.range) || (0, odata_annotation_core_1.isBefore)(currentNode.range.start, previousNode.range.end)) {
243
+ result = false;
244
+ break;
245
+ }
246
+ previousNode = currentNode;
247
+ }
248
+ return result;
249
+ }
250
+ /**
251
+ * Searches for root operator in given expression prototype. Throws exceptions on errors.
252
+ *
253
+ * @param protoExpression Expression to process
254
+ * @returns Found operators data
255
+ */
256
+ function getRootOperator(protoExpression) {
257
+ var _a;
258
+ // operator with lowest precedence is root operator (remaining operators are used in sub expressions as operands)
259
+ let rootOperatorName = '';
260
+ let rootOperator;
261
+ const rootOperators = [];
262
+ let lowestPrecedence = 1000;
263
+ for (const operator of protoExpression.operators) {
264
+ if (rootOperatorName && exports.operatorMap[rootOperatorName].secondaryOperatorImage === operator.value.toUpperCase()) {
265
+ continue; // don't consider secondary operator name as root operator (e.g. 'and' in 'between a and b')
266
+ }
267
+ const operatorName = getOperatorName(operator, protoExpression);
268
+ const precedence = ((_a = exports.operatorMap[operatorName]) === null || _a === void 0 ? void 0 : _a.precedence) || 1000;
269
+ if (!rootOperator || precedence < lowestPrecedence) {
270
+ rootOperator = operator;
271
+ rootOperatorName = operatorName;
272
+ lowestPrecedence = precedence;
273
+ }
274
+ }
275
+ if (!rootOperator) {
276
+ throw new Error('no root operator found');
277
+ }
278
+ else {
279
+ rootOperators.push(rootOperator);
280
+ }
281
+ const operatorDef = exports.operatorMap[rootOperatorName]; // ternary operators have unique name
282
+ if (operatorDef.secondaryOperatorImage) {
283
+ const secondaryOperator = protoExpression.operators.find((operator) => operator.value.toUpperCase() === operatorDef.secondaryOperatorImage);
284
+ if (secondaryOperator) {
285
+ rootOperators.push(secondaryOperator);
286
+ }
287
+ else {
288
+ throw new Error(`for operator '${rootOperatorName}', missing '${operatorDef.secondaryOperatorImage}'`);
289
+ }
290
+ }
291
+ if (!assertSequence(rootOperators)) {
292
+ throw new Error(`for operator '${rootOperatorName}', misplaced '${operatorDef.secondaryOperatorImage}'`);
293
+ }
294
+ return { name: rootOperatorName, operators: rootOperators };
295
+ }
296
+ /**
297
+ * Searches operator name for the given operator based on expression data.
298
+ *
299
+ * @param operator Opertor AST node
300
+ * @param protoExpression Expression AST node
301
+ * @returns Operator name string
302
+ */
303
+ function getOperatorName(operator, protoExpression) {
304
+ const operatorNames = exports.operatorImageMap[operator.value.toUpperCase()];
305
+ const { range, operators, operands } = protoExpression;
306
+ let operatorName = '';
307
+ for (const name of operatorNames) {
308
+ // for multiple operator names: unary operator name is listed first
309
+ // ignore unary operator if operators/operands in wrong positions exist
310
+ // e.g. ('-' can stand for unary or binary operator)
311
+ const operatorDef = exports.operatorMap[name];
312
+ if (operatorDef.type === OPERATOR_TYPE_UNARY) {
313
+ const emptyRange = operatorDef.kind === UNARY_OPERATOR_KIND_PREFIX
314
+ ? { start: range.start, end: operator.range.start }
315
+ : { start: operator.range.end, end: range.end };
316
+ if (filterNodes([...operators, ...operands], emptyRange).length) {
317
+ continue;
318
+ }
319
+ }
320
+ operatorName = name;
321
+ break;
322
+ }
323
+ return operatorName;
324
+ }
325
+ /**
326
+ * Extract operands from given expression.
327
+ *
328
+ * @param rootOperatorName Name of the root operator
329
+ * @param rootOperators List with root operators (the first one is used only)
330
+ * @param protoExpression Expression object
331
+ * @returns Array with annotation values
332
+ */
333
+ function getOperands(rootOperatorName, rootOperators, protoExpression) {
334
+ const rootOperator = rootOperators[0];
335
+ const operatorDef = exports.operatorMap[rootOperatorName];
336
+ let operands = [];
337
+ switch (operatorDef.type) {
338
+ case OPERATOR_TYPE_UNARY: {
339
+ const operandRange = operatorDef.kind === UNARY_OPERATOR_KIND_PREFIX
340
+ ? { start: rootOperator.range.end, end: protoExpression.range.end }
341
+ : { start: protoExpression.range.start, end: rootOperator.range.start };
342
+ const emptyRange = operatorDef.kind === UNARY_OPERATOR_KIND_PREFIX
343
+ ? { start: protoExpression.range.start, end: rootOperator.range.start }
344
+ : { start: rootOperator.range.end, end: protoExpression.range.end };
345
+ if (filterNodes([...protoExpression.operators, ...protoExpression.operands], emptyRange).length) {
346
+ throw new Error(`unary operator '${rootOperatorName}': unsupported position of operand(s)`);
347
+ }
348
+ operands = [buildOperand(protoExpression, operandRange)];
349
+ break;
350
+ }
351
+ case OPERATOR_TYPE_BINARY: {
352
+ const leftRange = { start: protoExpression.range.start, end: rootOperator.range.start };
353
+ const rightRange = { start: rootOperator.range.end, end: protoExpression.range.end };
354
+ operands = [buildOperand(protoExpression, leftRange), buildOperand(protoExpression, rightRange)];
355
+ break;
356
+ }
357
+ case OPERATOR_TYPE_TERNARY: {
358
+ const secondaryOperator = protoExpression.operators.find((operator) => operator.value.toUpperCase() === operatorDef.secondaryOperatorImage);
359
+ if (!secondaryOperator) {
360
+ throw new Error(`ternary operator '${rootOperatorName}': secondary operator '${operatorDef.secondaryOperatorImage}' missing`);
361
+ }
362
+ const firstRange = { start: protoExpression.range.start, end: rootOperator.range.start };
363
+ const secondRange = { start: rootOperator.range.end, end: secondaryOperator.range.start };
364
+ const thirdRange = { start: secondaryOperator.range.end, end: protoExpression.range.end };
365
+ operands = [
366
+ buildOperand(protoExpression, firstRange),
367
+ buildOperand(protoExpression, secondRange),
368
+ buildOperand(protoExpression, thirdRange)
369
+ ];
370
+ break;
371
+ }
372
+ default:
373
+ break;
374
+ }
375
+ if (operands.some((operand) => !operand)) {
376
+ throw new Error(`missing operand for ${operatorDef.type} '${rootOperatorName}'`);
377
+ }
378
+ return operands;
379
+ }
380
+ /**
381
+ * Builds expression operand.
382
+ *
383
+ * @param protoExpression Expression node
384
+ * @param range Range for searching existing operand in the given expression
385
+ * @returns Found operand in the expression or new nested expression or undefined if no content in the given range
386
+ */
387
+ function buildOperand(protoExpression, range) {
388
+ const operators = filterNodes(protoExpression.operators, range);
389
+ const operands = filterNodes(protoExpression.operands, range);
390
+ if (operators.length === 0 && operands.length === 1) {
391
+ return operands[0];
392
+ }
393
+ const subRange = nodesRange([...operators, ...operands]);
394
+ if (!subRange) {
395
+ return undefined; // no content in range
396
+ }
397
+ // try to build operand as nested expression (without ())
398
+ return buildExpression({ operators, operands, range: subRange });
399
+ }
400
+ /**
401
+ * Filter given nodes based on their ranges and returns only those which are within the given range.
402
+ *
403
+ * @param nodes Node to filter
404
+ * @param range Range to check nodes inclusion
405
+ * @returns Filtered nodes array
406
+ */
407
+ function filterNodes(nodes, range) {
408
+ return (nodes || []).filter((node) => node.range && (0, odata_annotation_core_1.isBefore)(range.start, node.range.start, true) && (0, odata_annotation_core_1.isBefore)(node.range.end, range.end, true));
409
+ }
410
+ /**
411
+ * Creates a range covering all given nodes.
412
+ *
413
+ * @param nodes Nodes to be included in the result range
414
+ * @returns Range or undefined if nodes array is empty
415
+ */
416
+ function nodesRange(nodes) {
417
+ let start;
418
+ let end;
419
+ for (const node of nodes) {
420
+ if (node.range) {
421
+ if (!start || (0, odata_annotation_core_1.isBefore)(node.range.start, start)) {
422
+ start = node.range.start;
423
+ }
424
+ if (!end || (0, odata_annotation_core_1.isBefore)(end, node.range.end)) {
425
+ end = node.range.end;
426
+ }
427
+ }
428
+ }
429
+ if (!start || !end) {
430
+ return undefined;
431
+ }
432
+ else {
433
+ return { start, end };
434
+ }
435
+ }
436
+ /**
437
+ * Rebuilds number signes in the given exprssion.
438
+ *
439
+ * @param protoExpression Expression to process
440
+ * @returns Updated expression
441
+ */
442
+ function rebuildNumberSigns(protoExpression) {
443
+ var _a, _b, _c;
444
+ const { operators, operands, range } = Object.assign({}, protoExpression);
445
+ // revert '-' operators to number signs if they are followed by an unsigned number and not preceded by an operand
446
+ if (!(operators || []).some((operator) => operator.value === '-')) {
447
+ return { operators, operands, range };
448
+ }
449
+ const sortedNodes = getSortedNodes(protoExpression);
450
+ for (let i = sortedNodes.length - 1; i >= 0; i--) {
451
+ const currentNode = sortedNodes[i];
452
+ const nextNode = sortedNodes[i + 1];
453
+ const previousNode = sortedNodes[i - 1];
454
+ if (!nextNode || !doRebuildNumberSign(currentNode, nextNode, previousNode)) {
455
+ continue;
456
+ }
457
+ const numberNode = nextNode;
458
+ const numberValue = numberNode.value;
459
+ // add sign to number node
460
+ numberNode.value = typeof numberValue === 'string' ? `-${numberValue}` : -numberValue;
461
+ if (((_a = numberNode.range) === null || _a === void 0 ? void 0 : _a.start) && ((_b = currentNode.range) === null || _b === void 0 ? void 0 : _b.start)) {
462
+ numberNode.range.start.character = (_c = currentNode.range) === null || _c === void 0 ? void 0 : _c.start.character;
463
+ }
464
+ // remove '-' operator represented by current node
465
+ const index = operators.findIndex((operator) => operator.range === currentNode.range);
466
+ if (index >= 0) {
467
+ operators.splice(index, 1);
468
+ }
469
+ }
470
+ return { operators, operands, range };
471
+ }
472
+ exports.rebuildNumberSigns = rebuildNumberSigns;
473
+ /**
474
+ * Sorts expression operators and operands based on their ranges.
475
+ *
476
+ * @param protoExpression Expression node
477
+ * @returns Sorted expression operators and operands
478
+ */
479
+ function getSortedNodes(protoExpression) {
480
+ return [...protoExpression.operators, ...protoExpression.operands]
481
+ .filter((node) => !!node.range)
482
+ .sort((node1, node2) => node1.range && node2.range && (0, odata_annotation_core_1.isBefore)(node1.range.start, node2.range.start) ? -1 : +1);
483
+ }
484
+ /**
485
+ * Checks if rebuild of number sign is needed.
486
+ *
487
+ * @param currentNode Current operator or operand
488
+ * @param nextNode Next operator or operand
489
+ * @param previousNode Previous operator or operand
490
+ * @returns Boolean result
491
+ */
492
+ function doRebuildNumberSign(currentNode, nextNode, previousNode) {
493
+ var _a, _b, _c, _d;
494
+ if (currentNode.type !== annotation_ast_nodes_1.OPERATOR_TYPE || currentNode.value !== '-') {
495
+ return false; // no '-' operator
496
+ }
497
+ if ((nextNode === null || nextNode === void 0 ? void 0 : nextNode.type) !== annotation_ast_nodes_1.NUMBER_LITERAL_TYPE || !nextNode.value) {
498
+ return false; // no next node or next node is no number or initial number
499
+ }
500
+ if (((_a = currentNode.range) === null || _a === void 0 ? void 0 : _a.end.line) !== ((_b = nextNode.range) === null || _b === void 0 ? void 0 : _b.start.line) ||
501
+ ((_c = currentNode.range) === null || _c === void 0 ? void 0 : _c.end.character) !== ((_d = nextNode.range) === null || _d === void 0 ? void 0 : _d.start.character)) {
502
+ return false; // '-' operator is not directly followed by number (at least single space in between)
503
+ }
504
+ const numberValue = nextNode.value;
505
+ if ((typeof numberValue === 'string' && numberValue.startsWith('-')) ||
506
+ (typeof numberValue === 'number' && numberValue < 0)) {
507
+ return false; // number has already '-' sign
508
+ }
509
+ // make sure if previous node exists, it is operator
510
+ return !previousNode || previousNode.type === annotation_ast_nodes_1.OPERATOR_TYPE;
511
+ }
512
+ /**
513
+ * Checks if the given position is in the given expression white space.
514
+ *
515
+ * @param expression Expression node
516
+ * @param position Position to check
517
+ * @returns True if position is not occupied by some operand or operator, i.e. is in white space
518
+ */
519
+ function positionIsInExpressionWhiteSpace(expression, position) {
520
+ if (!(0, odata_annotation_core_1.positionContained)(expression.range, position)) {
521
+ return false;
522
+ }
523
+ const subNodes = [...expression.operators, ...expression.operands];
524
+ return !subNodes.some((entry) => (0, odata_annotation_core_1.positionContained)(entry.range, position));
525
+ }
526
+ exports.positionIsInExpressionWhiteSpace = positionIsInExpressionWhiteSpace;
527
+ /**
528
+ * Recursively checks if expression contains some incorrect nested expressions.
529
+ *
530
+ * @param expression Expression node to check
531
+ * @returns True if incorrect expression found
532
+ */
533
+ function containsIncorrectExpressions(expression) {
534
+ if (expression.type === annotation_ast_nodes_1.INCORRECT_EXPRESSION_TYPE) {
535
+ return true;
536
+ }
537
+ if (expression.operands.some((operand) => operand.type === annotation_ast_nodes_1.INCORRECT_EXPRESSION_TYPE)) {
538
+ return true;
539
+ }
540
+ for (const operand of expression.operands) {
541
+ if (annotation_ast_nodes_1.EXPRESSION_TYPES.includes(operand.type) && containsIncorrectExpressions(operand)) {
542
+ return true;
543
+ }
544
+ }
545
+ return false;
546
+ }
547
+ exports.containsIncorrectExpressions = containsIncorrectExpressions;
548
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../src/transformer/expressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { buildAst } from './ast';
2
+ export { EMPTY_VALUE_TYPE, RECORD_PROPERTY_TYPE, PATH_TYPE, STRING_LITERAL_TYPE, ANNOTATION_TYPE, RECORD_TYPE, ANNOTATION_GROUP_ITEMS_TYPE, ANNOTATION_GROUP_TYPE, BOOLEAN_TYPE, NUMBER_LITERAL_TYPE, ENUM_TYPE, COLLECTION_TYPE, TOKEN_TYPE, QUOTED_LITERAL_TYPE, QUALIFIER_TYPE, MULTI_LINE_STRING_LITERAL_TYPE, SEPARATOR_TYPE, IDENTIFIER_TYPE, OPERATOR_TYPE, UNSUPPORTED_OPERATOR_EXPRESSION_TYPE, INCORRECT_EXPRESSION_TYPE, CORRECT_EXPRESSION_TYPE, EXPRESSION_TYPES, Expression, UnsupportedOperatorExpression, IncorrectExpression, CorrectExpression, Record, Node, AnnotationValue, AnnotationGroup, AnnotationNodeType, AnnotationGroupItems, Collection, Enum, StringLiteral, Path, EmptyValue, BooleanLiteral, NumberLiteral, QuotedLiteralKind, Token, QuotedLiteral, MultiLineStringLiteral, Identifier, Annotation, RecordProperty, AnnotationNode, Assignment, Separator, NarrowAnnotationNode, nodeRange, isContainer } from './annotation-ast-nodes';
3
+ export { arePositionsEqual, copyPosition, copyRange, areRangesEqual } from './range';
4
+ export { operatorMap, positionIsInExpressionWhiteSpace, getEdmOperatorMap, containsIncorrectExpressions } from './expressions';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,2BAA2B,EAC3B,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,8BAA8B,EAC9B,cAAc,EACd,eAAe,EACf,aAAa,EACb,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,6BAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACV,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,WAAW,EACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErF,OAAO,EACH,WAAW,EACX,gCAAgC,EAChC,iBAAiB,EACjB,4BAA4B,EAC/B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.containsIncorrectExpressions = exports.getEdmOperatorMap = exports.positionIsInExpressionWhiteSpace = exports.operatorMap = exports.areRangesEqual = exports.copyRange = exports.copyPosition = exports.arePositionsEqual = exports.isContainer = exports.nodeRange = exports.EXPRESSION_TYPES = exports.CORRECT_EXPRESSION_TYPE = exports.INCORRECT_EXPRESSION_TYPE = exports.UNSUPPORTED_OPERATOR_EXPRESSION_TYPE = exports.OPERATOR_TYPE = exports.IDENTIFIER_TYPE = exports.SEPARATOR_TYPE = exports.MULTI_LINE_STRING_LITERAL_TYPE = exports.QUALIFIER_TYPE = exports.QUOTED_LITERAL_TYPE = exports.TOKEN_TYPE = exports.COLLECTION_TYPE = exports.ENUM_TYPE = exports.NUMBER_LITERAL_TYPE = exports.BOOLEAN_TYPE = exports.ANNOTATION_GROUP_TYPE = exports.ANNOTATION_GROUP_ITEMS_TYPE = exports.RECORD_TYPE = exports.ANNOTATION_TYPE = exports.STRING_LITERAL_TYPE = exports.PATH_TYPE = exports.RECORD_PROPERTY_TYPE = exports.EMPTY_VALUE_TYPE = exports.buildAst = void 0;
4
+ var ast_1 = require("./ast");
5
+ Object.defineProperty(exports, "buildAst", { enumerable: true, get: function () { return ast_1.buildAst; } });
6
+ var annotation_ast_nodes_1 = require("./annotation-ast-nodes");
7
+ Object.defineProperty(exports, "EMPTY_VALUE_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.EMPTY_VALUE_TYPE; } });
8
+ Object.defineProperty(exports, "RECORD_PROPERTY_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.RECORD_PROPERTY_TYPE; } });
9
+ Object.defineProperty(exports, "PATH_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.PATH_TYPE; } });
10
+ Object.defineProperty(exports, "STRING_LITERAL_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.STRING_LITERAL_TYPE; } });
11
+ Object.defineProperty(exports, "ANNOTATION_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.ANNOTATION_TYPE; } });
12
+ Object.defineProperty(exports, "RECORD_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.RECORD_TYPE; } });
13
+ Object.defineProperty(exports, "ANNOTATION_GROUP_ITEMS_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.ANNOTATION_GROUP_ITEMS_TYPE; } });
14
+ Object.defineProperty(exports, "ANNOTATION_GROUP_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.ANNOTATION_GROUP_TYPE; } });
15
+ Object.defineProperty(exports, "BOOLEAN_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.BOOLEAN_TYPE; } });
16
+ Object.defineProperty(exports, "NUMBER_LITERAL_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.NUMBER_LITERAL_TYPE; } });
17
+ Object.defineProperty(exports, "ENUM_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.ENUM_TYPE; } });
18
+ Object.defineProperty(exports, "COLLECTION_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.COLLECTION_TYPE; } });
19
+ Object.defineProperty(exports, "TOKEN_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.TOKEN_TYPE; } });
20
+ Object.defineProperty(exports, "QUOTED_LITERAL_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.QUOTED_LITERAL_TYPE; } });
21
+ Object.defineProperty(exports, "QUALIFIER_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.QUALIFIER_TYPE; } });
22
+ Object.defineProperty(exports, "MULTI_LINE_STRING_LITERAL_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.MULTI_LINE_STRING_LITERAL_TYPE; } });
23
+ Object.defineProperty(exports, "SEPARATOR_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.SEPARATOR_TYPE; } });
24
+ Object.defineProperty(exports, "IDENTIFIER_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.IDENTIFIER_TYPE; } });
25
+ Object.defineProperty(exports, "OPERATOR_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.OPERATOR_TYPE; } });
26
+ Object.defineProperty(exports, "UNSUPPORTED_OPERATOR_EXPRESSION_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.UNSUPPORTED_OPERATOR_EXPRESSION_TYPE; } });
27
+ Object.defineProperty(exports, "INCORRECT_EXPRESSION_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.INCORRECT_EXPRESSION_TYPE; } });
28
+ Object.defineProperty(exports, "CORRECT_EXPRESSION_TYPE", { enumerable: true, get: function () { return annotation_ast_nodes_1.CORRECT_EXPRESSION_TYPE; } });
29
+ Object.defineProperty(exports, "EXPRESSION_TYPES", { enumerable: true, get: function () { return annotation_ast_nodes_1.EXPRESSION_TYPES; } });
30
+ Object.defineProperty(exports, "nodeRange", { enumerable: true, get: function () { return annotation_ast_nodes_1.nodeRange; } });
31
+ Object.defineProperty(exports, "isContainer", { enumerable: true, get: function () { return annotation_ast_nodes_1.isContainer; } });
32
+ var range_1 = require("./range");
33
+ Object.defineProperty(exports, "arePositionsEqual", { enumerable: true, get: function () { return range_1.arePositionsEqual; } });
34
+ Object.defineProperty(exports, "copyPosition", { enumerable: true, get: function () { return range_1.copyPosition; } });
35
+ Object.defineProperty(exports, "copyRange", { enumerable: true, get: function () { return range_1.copyRange; } });
36
+ Object.defineProperty(exports, "areRangesEqual", { enumerable: true, get: function () { return range_1.areRangesEqual; } });
37
+ var expressions_1 = require("./expressions");
38
+ Object.defineProperty(exports, "operatorMap", { enumerable: true, get: function () { return expressions_1.operatorMap; } });
39
+ Object.defineProperty(exports, "positionIsInExpressionWhiteSpace", { enumerable: true, get: function () { return expressions_1.positionIsInExpressionWhiteSpace; } });
40
+ Object.defineProperty(exports, "getEdmOperatorMap", { enumerable: true, get: function () { return expressions_1.getEdmOperatorMap; } });
41
+ Object.defineProperty(exports, "containsIncorrectExpressions", { enumerable: true, get: function () { return expressions_1.containsIncorrectExpressions; } });
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":";;;AAAA,6BAAiC;AAAxB,+FAAA,QAAQ,OAAA;AAEjB,+DAsDgC;AArD5B,wHAAA,gBAAgB,OAAA;AAChB,4HAAA,oBAAoB,OAAA;AACpB,iHAAA,SAAS,OAAA;AACT,2HAAA,mBAAmB,OAAA;AACnB,uHAAA,eAAe,OAAA;AACf,mHAAA,WAAW,OAAA;AACX,mIAAA,2BAA2B,OAAA;AAC3B,6HAAA,qBAAqB,OAAA;AACrB,oHAAA,YAAY,OAAA;AACZ,2HAAA,mBAAmB,OAAA;AACnB,iHAAA,SAAS,OAAA;AACT,uHAAA,eAAe,OAAA;AACf,kHAAA,UAAU,OAAA;AACV,2HAAA,mBAAmB,OAAA;AACnB,sHAAA,cAAc,OAAA;AACd,sIAAA,8BAA8B,OAAA;AAC9B,sHAAA,cAAc,OAAA;AACd,uHAAA,eAAe,OAAA;AACf,qHAAA,aAAa,OAAA;AACb,4IAAA,oCAAoC,OAAA;AACpC,iIAAA,yBAAyB,OAAA;AACzB,+HAAA,uBAAuB,OAAA;AACvB,wHAAA,gBAAgB,OAAA;AA6BhB,iHAAA,SAAS,OAAA;AACT,mHAAA,WAAW,OAAA;AAGf,iCAAqF;AAA5E,0GAAA,iBAAiB,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,uGAAA,cAAc,OAAA;AAEnE,6CAKuB;AAJnB,0GAAA,WAAW,OAAA;AACX,+HAAA,gCAAgC,OAAA;AAChC,gHAAA,iBAAiB,OAAA;AACjB,2HAAA,4BAA4B,OAAA"}