@steedos/odata-v4-parser 2.2.53-beta.3
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/LICENSE.txt +22 -0
- package/README.md +31 -0
- package/lib/expressions.d.ts +94 -0
- package/lib/expressions.js +942 -0
- package/lib/expressions.js.map +1 -0
- package/lib/json.d.ts +24 -0
- package/lib/json.js +391 -0
- package/lib/json.js.map +1 -0
- package/lib/lexer.d.ts +243 -0
- package/lib/lexer.js +595 -0
- package/lib/lexer.js.map +1 -0
- package/lib/nameOrIdentifier.d.ts +56 -0
- package/lib/nameOrIdentifier.js +850 -0
- package/lib/nameOrIdentifier.js.map +1 -0
- package/lib/odataUri.d.ts +6 -0
- package/lib/odataUri.js +34 -0
- package/lib/odataUri.js.map +1 -0
- package/lib/parser.d.ts +16 -0
- package/lib/parser.js +50 -0
- package/lib/parser.js.map +1 -0
- package/lib/primitiveLiteral.d.ts +63 -0
- package/lib/primitiveLiteral.js +793 -0
- package/lib/primitiveLiteral.js.map +1 -0
- package/lib/query.d.ts +42 -0
- package/lib/query.js +903 -0
- package/lib/query.js.map +1 -0
- package/lib/resourcePath.d.ts +31 -0
- package/lib/resourcePath.js +469 -0
- package/lib/resourcePath.js.map +1 -0
- package/lib/utils.d.ts +8 -0
- package/lib/utils.js +37 -0
- package/lib/utils.js.map +1 -0
- package/package.json +24 -0
- package/src/expressions.ts +825 -0
- package/src/json.ts +372 -0
- package/src/lexer.ts +491 -0
- package/src/nameOrIdentifier.ts +749 -0
- package/src/odataUri.ts +37 -0
- package/src/parser.ts +37 -0
- package/src/primitiveLiteral.ts +684 -0
- package/src/query.ts +884 -0
- package/src/resourcePath.ts +461 -0
- package/src/utils.ts +36 -0
- package/tsconfig.json +33 -0
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Steedos Licensing
|
|
2
|
+
|
|
3
|
+
SOFTWARE LICENSING
|
|
4
|
+
|
|
5
|
+
To determine under which license you may use a file from the Steedos source code,
|
|
6
|
+
please resort to the header of that file.
|
|
7
|
+
|
|
8
|
+
If the file has no header, the following rules apply
|
|
9
|
+
1. enterprise features are licensed under Steedos Enterprise Terms, see License.enterprise.txt
|
|
10
|
+
2. source code that is neither (1) is licensed under MIT, see https://opensource.org/licenses/MIT
|
|
11
|
+
|
|
12
|
+
On request, licenses under different terms are available.
|
|
13
|
+
|
|
14
|
+
Source code of enterprise features are files that
|
|
15
|
+
* are in folders named "ee" or start with "ee_", or in subfolders of such folders.
|
|
16
|
+
* contain the strings "ee_" in its filename name.
|
|
17
|
+
The files can be found by running the command `find . -iname ee -or -iname "*_ee*" -or -iname "*ee_*"`
|
|
18
|
+
|
|
19
|
+
STEEDOS TRADEMARK GUIDELINES
|
|
20
|
+
|
|
21
|
+
Your use of the mark Steedos is subject to Steedos, Inc's prior written approval. For trademark approval or any questions
|
|
22
|
+
you have about using these trademarks, please email zhuangjianguo@steedos.com
|
package/README.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# OData v4 Parser
|
|
2
|
+
|
|
3
|
+
OData v4 parser based on OASIS Standard OData v4 ABNF grammar
|
|
4
|
+
|
|
5
|
+
## How to build
|
|
6
|
+
|
|
7
|
+
Simply just use ```$ npm run build```
|
|
8
|
+
|
|
9
|
+
Run TDD tests using ```$ npm run tdd```
|
|
10
|
+
|
|
11
|
+
## How to use
|
|
12
|
+
|
|
13
|
+
Parser functions:
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
var parser = require('odata-v4-parser');
|
|
17
|
+
parser.filter("Title eq 'Article1'");
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Low-level functional:
|
|
21
|
+
|
|
22
|
+
```javascript
|
|
23
|
+
require('odata-v4-parser/lib/expressions').boolCommonExpr(new Uint8Array(new Buffer("contains(@word,Title)")), 0);
|
|
24
|
+
require('odata-v4-parser/lib/json').arrayOrObject(new Uint8Array(new Buffer('{"a":1}')), 0);
|
|
25
|
+
require('odata-v4-parser/lib/expressions').commonExpr(new Uint8Array(new Buffer('Items/all(d:d/Quantity gt 100)')), 0);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## TODO
|
|
29
|
+
|
|
30
|
+
* more unit testing
|
|
31
|
+
* use metadata for correct OData identifier type detection (complex types, navigation properties, etc.)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import Utils from "./utils";
|
|
2
|
+
import Lexer from "./lexer";
|
|
3
|
+
export declare namespace Expressions {
|
|
4
|
+
function commonExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
5
|
+
function boolCommonExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
6
|
+
function andExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
7
|
+
function orExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
8
|
+
function leftRightExpr(value: Utils.SourceArray, index: number, expr: string, tokenType: Lexer.TokenType): Lexer.Token;
|
|
9
|
+
function eqExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
10
|
+
function neExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
11
|
+
function ltExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
12
|
+
function leExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
13
|
+
function gtExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
14
|
+
function geExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
15
|
+
function hasExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
16
|
+
function addExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
17
|
+
function subExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
18
|
+
function mulExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
19
|
+
function divExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
20
|
+
function modExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
21
|
+
function inExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
22
|
+
function notExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
23
|
+
function boolParenExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
24
|
+
function parenExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
25
|
+
function boolMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
26
|
+
function methodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
27
|
+
function methodCallExprFactory(value: Utils.SourceArray, index: number, method: string, min?: number, max?: number): Lexer.Token;
|
|
28
|
+
function containsMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
29
|
+
function startsWithMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
30
|
+
function endsWithMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
31
|
+
function lengthMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
32
|
+
function indexOfMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
33
|
+
function substringMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
34
|
+
function substringOfMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
35
|
+
function toLowerMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
36
|
+
function toUpperMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
37
|
+
function trimMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
38
|
+
function concatMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
39
|
+
function yearMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
40
|
+
function monthMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
41
|
+
function dayMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
42
|
+
function hourMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
43
|
+
function minuteMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
44
|
+
function secondMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
45
|
+
function fractionalsecondsMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
46
|
+
function totalsecondsMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
47
|
+
function dateMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
48
|
+
function timeMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
49
|
+
function totalOffsetMinutesMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
50
|
+
function minDateTimeMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
51
|
+
function maxDateTimeMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
52
|
+
function nowMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
53
|
+
function roundMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
54
|
+
function floorMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
55
|
+
function ceilingMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
56
|
+
function distanceMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
57
|
+
function geoLengthMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
58
|
+
function intersectsMethodCallExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
59
|
+
function isofExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
60
|
+
function castExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
61
|
+
function negateExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
62
|
+
function firstMemberExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
63
|
+
function memberExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
64
|
+
function propertyPathExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
65
|
+
function inscopeVariableExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
66
|
+
function implicitVariableExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
67
|
+
function lambdaVariableExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
68
|
+
function lambdaPredicateExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
69
|
+
function anyExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
70
|
+
function allExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
71
|
+
function collectionNavigationExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
72
|
+
function keyPredicate(value: Utils.SourceArray, index: number, metadataContext?: any): Lexer.Token;
|
|
73
|
+
function simpleKey(value: Utils.SourceArray, index: number, metadataContext?: any): Lexer.Token;
|
|
74
|
+
function compoundKey(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
75
|
+
function keyValuePair(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
76
|
+
function keyPropertyValue(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
77
|
+
function keyPropertyAlias(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
78
|
+
function singleNavigationExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
79
|
+
function collectionPathExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
80
|
+
function complexPathExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
81
|
+
function singlePathExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
82
|
+
function functionExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
83
|
+
function boundFunctionExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
84
|
+
function functionExprParameters(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
85
|
+
function functionExprParameter(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
86
|
+
function parameterName(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
87
|
+
function parameterAlias(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
88
|
+
function parameterValue(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
89
|
+
function countExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
90
|
+
function refExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
91
|
+
function valueExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
92
|
+
function rootExpr(value: Utils.SourceArray, index: number): Lexer.Token;
|
|
93
|
+
}
|
|
94
|
+
export default Expressions;
|