@sap/cds-compiler 2.4.4 → 2.10.2
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/CHANGELOG.md +241 -1
- package/bin/.eslintrc.json +17 -0
- package/bin/cds_update_identifiers.js +8 -7
- package/bin/cdsc.js +180 -132
- package/bin/cdshi.js +18 -11
- package/bin/cdsse.js +38 -32
- package/bin/cdsv2m.js +8 -7
- package/doc/CHANGELOG_BETA.md +36 -1
- package/lib/api/main.js +81 -100
- package/lib/api/options.js +17 -11
- package/lib/api/validate.js +12 -8
- package/lib/backends.js +0 -81
- package/lib/base/keywords.js +32 -2
- package/lib/base/location.js +2 -2
- package/lib/base/message-registry.js +66 -4
- package/lib/base/messages.js +84 -27
- package/lib/base/model.js +2 -61
- package/lib/checks/arrayOfs.js +0 -1
- package/lib/checks/defaultValues.js +27 -2
- package/lib/checks/elements.js +1 -6
- package/lib/checks/enricher.js +8 -2
- package/lib/checks/foreignKeys.js +0 -6
- package/lib/checks/managedWithoutKeys.js +17 -0
- package/lib/checks/nonexpandableStructured.js +38 -0
- package/lib/checks/onConditions.js +9 -45
- package/lib/checks/queryNoDbArtifacts.js +27 -9
- package/lib/checks/selectItems.js +25 -2
- package/lib/checks/types.js +26 -2
- package/lib/checks/unknownMagic.js +38 -0
- package/lib/checks/utils.js +61 -0
- package/lib/checks/validator.js +66 -13
- package/lib/compiler/assert-consistency.js +24 -12
- package/lib/compiler/builtins.js +2 -0
- package/lib/compiler/checks.js +6 -4
- package/lib/compiler/definer.js +101 -39
- package/lib/compiler/index.js +88 -59
- package/lib/compiler/resolver.js +455 -209
- package/lib/compiler/shared.js +57 -33
- package/lib/edm/annotations/genericTranslation.js +183 -187
- package/lib/edm/csn2edm.js +128 -99
- package/lib/edm/edm.js +18 -21
- package/lib/edm/edmPreprocessor.js +361 -127
- package/lib/edm/edmUtils.js +103 -33
- package/lib/gen/Dictionary.json +74 -28
- package/lib/gen/language.checksum +1 -1
- package/lib/gen/language.interp +18 -4
- package/lib/gen/language.tokens +124 -118
- package/lib/gen/languageLexer.interp +13 -1
- package/lib/gen/languageLexer.js +870 -839
- package/lib/gen/languageLexer.tokens +116 -111
- package/lib/gen/languageParser.js +5894 -5614
- package/lib/json/from-csn.js +152 -67
- package/lib/json/to-csn.js +334 -135
- package/lib/language/antlrParser.js +4 -3
- package/lib/language/errorStrategy.js +1 -0
- package/lib/language/genericAntlrParser.js +24 -14
- package/lib/language/language.g4 +188 -128
- package/lib/main.d.ts +435 -0
- package/lib/main.js +31 -7
- package/lib/model/api.js +78 -0
- package/lib/model/csnRefs.js +463 -187
- package/lib/model/csnUtils.js +280 -136
- package/lib/model/enrichCsn.js +75 -4
- package/lib/model/revealInternalProperties.js +2 -1
- package/lib/modelCompare/compare.js +70 -25
- package/lib/optionProcessor.js +13 -10
- package/lib/render/.eslintrc.json +4 -1
- package/lib/render/DuplicateChecker.js +8 -5
- package/lib/render/toCdl.js +123 -40
- package/lib/render/toHdbcds.js +156 -65
- package/lib/render/toSql.js +87 -11
- package/lib/render/utils/common.js +55 -9
- package/lib/render/utils/sql.js +3 -3
- package/lib/sql-identifier.js +6 -1
- package/lib/transform/{sql → db}/.eslintrc.json +0 -0
- package/lib/transform/{sql → db}/assertUnique.js +7 -8
- package/lib/transform/{sql → db}/constraints.js +35 -20
- package/lib/transform/db/draft.js +353 -0
- package/lib/transform/db/expansion.js +582 -0
- package/lib/transform/db/flattening.js +325 -0
- package/lib/transform/{sql → db}/groupByOrderBy.js +8 -16
- package/lib/transform/{sql → db}/helpers.js +0 -0
- package/lib/transform/{sql → db}/transformExists.js +256 -60
- package/lib/transform/forHanaNew.js +216 -765
- package/lib/transform/forOdataNew.js +60 -56
- package/lib/transform/localized.js +48 -26
- package/lib/transform/odata/attachPath.js +19 -4
- package/lib/transform/odata/expandStructKeysInAssociations.js +2 -2
- package/lib/transform/odata/generateForeignKeyElements.js +13 -12
- package/lib/transform/odata/referenceFlattener.js +60 -36
- package/lib/transform/odata/sortByAssociationDependency.js +4 -4
- package/lib/transform/odata/structuralPath.js +76 -0
- package/lib/transform/odata/structureFlattener.js +21 -22
- package/lib/transform/odata/toFinalBaseType.js +5 -5
- package/lib/transform/odata/typesExposure.js +27 -17
- package/lib/transform/odata/utils.js +2 -2
- package/lib/transform/transformUtilsNew.js +141 -77
- package/lib/transform/translateAssocsToJoins.js +17 -14
- package/lib/transform/universalCsnEnricher.js +67 -0
- package/lib/utils/file.js +0 -11
- package/lib/utils/moduleResolve.js +6 -8
- package/lib/utils/timetrace.js +6 -1
- package/package.json +2 -1
- package/lib/base/deepCopy.js +0 -66
- package/lib/json/walker.js +0 -26
- package/lib/utils/string.js +0 -17
|
@@ -25,116 +25,120 @@ T__23=24
|
|
|
25
25
|
T__24=25
|
|
26
26
|
T__25=26
|
|
27
27
|
T__26=27
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
28
|
+
T__27=28
|
|
29
|
+
WhiteSpace=29
|
|
30
|
+
DocComment=30
|
|
31
|
+
Comment=31
|
|
32
|
+
LineComment=32
|
|
33
|
+
String=33
|
|
34
|
+
QuotedLiteral=34
|
|
35
|
+
UnterminatedLiteral=35
|
|
36
|
+
UnterminatedDelimitedIdentifier=36
|
|
37
|
+
Boolean=37
|
|
38
|
+
ALL=38
|
|
39
|
+
ANY=39
|
|
40
|
+
AS=40
|
|
41
|
+
BY=41
|
|
42
|
+
CASE=42
|
|
43
|
+
CAST=43
|
|
44
|
+
DISTINCT=44
|
|
45
|
+
EXISTS=45
|
|
46
|
+
EXTRACT=46
|
|
47
|
+
FROM=47
|
|
48
|
+
IN=48
|
|
49
|
+
KEY=49
|
|
50
|
+
NEW=50
|
|
51
|
+
NOT=51
|
|
52
|
+
NULL=52
|
|
53
|
+
OF=53
|
|
54
|
+
ON=54
|
|
55
|
+
SELECT=55
|
|
56
|
+
SOME=56
|
|
57
|
+
WHEN=57
|
|
58
|
+
TRIM=58
|
|
59
|
+
WHERE=59
|
|
60
|
+
WITH=60
|
|
61
|
+
Number=61
|
|
62
|
+
ABSTRACT=62
|
|
63
|
+
ACTION=63
|
|
64
|
+
ACTIONS=64
|
|
65
|
+
AND=65
|
|
66
|
+
ANNOTATE=66
|
|
67
|
+
ANNOTATION=67
|
|
68
|
+
ARRAY=68
|
|
69
|
+
ASC=69
|
|
70
|
+
ASPECT=70
|
|
71
|
+
ASSOCIATION=71
|
|
72
|
+
BETWEEN=72
|
|
73
|
+
BOTH=73
|
|
74
|
+
COMPOSITION=74
|
|
75
|
+
CONTEXT=75
|
|
76
|
+
CROSS=76
|
|
77
|
+
DAY=77
|
|
78
|
+
DEFAULT=78
|
|
79
|
+
DEFINE=79
|
|
80
|
+
DESC=80
|
|
81
|
+
ELEMENT=81
|
|
82
|
+
ELSE=82
|
|
83
|
+
END=83
|
|
84
|
+
ENTITY=84
|
|
85
|
+
ENUM=85
|
|
86
|
+
EVENT=86
|
|
87
|
+
ESCAPE=87
|
|
88
|
+
EXACT=88
|
|
89
|
+
EXCEPT=89
|
|
90
|
+
EXCLUDING=90
|
|
91
|
+
EXTEND=91
|
|
92
|
+
FIRST=92
|
|
93
|
+
FLOATING=93
|
|
94
|
+
FULL=94
|
|
95
|
+
FUNCTION=95
|
|
96
|
+
GROUP=96
|
|
97
|
+
HAVING=97
|
|
98
|
+
HOUR=98
|
|
99
|
+
INNER=99
|
|
100
|
+
INTERSECT=100
|
|
101
|
+
INTO=101
|
|
102
|
+
IS=102
|
|
103
|
+
JOIN=103
|
|
104
|
+
LAST=104
|
|
105
|
+
LEADING=105
|
|
106
|
+
LEFT=106
|
|
107
|
+
LIKE=107
|
|
108
|
+
LIMIT=108
|
|
109
|
+
LOCALIZED=109
|
|
110
|
+
MANY=110
|
|
111
|
+
MASKED=111
|
|
112
|
+
MINUS=112
|
|
113
|
+
MINUTE=113
|
|
114
|
+
MIXIN=114
|
|
115
|
+
MONTH=115
|
|
116
|
+
NAMESPACE=116
|
|
117
|
+
NULLS=117
|
|
118
|
+
OFFSET=118
|
|
119
|
+
ONE=119
|
|
120
|
+
OR=120
|
|
121
|
+
ORDER=121
|
|
122
|
+
OUTER=122
|
|
123
|
+
PARAMETERS=123
|
|
124
|
+
PARTITION=124
|
|
125
|
+
PROJECTION=125
|
|
126
|
+
REDIRECTED=126
|
|
127
|
+
RETURNS=127
|
|
128
|
+
RIGHT=128
|
|
129
|
+
SECOND=129
|
|
130
|
+
SERVICE=130
|
|
131
|
+
THEN=131
|
|
132
|
+
TRAILING=132
|
|
133
|
+
TO=133
|
|
134
|
+
TYPE=134
|
|
135
|
+
UNION=135
|
|
136
|
+
USING=136
|
|
137
|
+
VARIABLE=137
|
|
138
|
+
VIEW=138
|
|
139
|
+
YEAR=139
|
|
140
|
+
Identifier=140
|
|
141
|
+
IllegalToken=141
|
|
138
142
|
';'=1
|
|
139
143
|
'{'=2
|
|
140
144
|
','=3
|
|
@@ -161,4 +165,5 @@ IllegalToken=137
|
|
|
161
165
|
'||'=24
|
|
162
166
|
'/'=25
|
|
163
167
|
'=>'=26
|
|
164
|
-
'
|
|
168
|
+
'...'=27
|
|
169
|
+
'#'=28
|