zenstack 0.1.11 → 0.1.13
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/out/generator/index.js +1 -1
- package/out/generator/index.js.map +1 -1
- package/package.json +2 -3
- package/src/cli/cli-util.ts +0 -80
- package/src/cli/index.ts +0 -52
- package/src/extension.ts +0 -76
- package/src/generator/constants.ts +0 -2
- package/src/generator/index.ts +0 -74
- package/src/generator/next-auth/index.ts +0 -183
- package/src/generator/package.template.json +0 -9
- package/src/generator/prisma/expression-writer.ts +0 -352
- package/src/generator/prisma/index.ts +0 -24
- package/src/generator/prisma/plain-expression-builder.ts +0 -91
- package/src/generator/prisma/prisma-builder.ts +0 -366
- package/src/generator/prisma/query-gard-generator.ts +0 -208
- package/src/generator/prisma/schema-generator.ts +0 -295
- package/src/generator/react-hooks/index.ts +0 -265
- package/src/generator/service/index.ts +0 -96
- package/src/generator/tsconfig.template.json +0 -17
- package/src/generator/types.ts +0 -16
- package/src/generator/utils.ts +0 -9
- package/src/language-server/generated/ast.ts +0 -603
- package/src/language-server/generated/grammar.ts +0 -2190
- package/src/language-server/generated/module.ts +0 -24
- package/src/language-server/main.ts +0 -12
- package/src/language-server/stdlib.zmodel +0 -21
- package/src/language-server/types.ts +0 -9
- package/src/language-server/zmodel-index.ts +0 -33
- package/src/language-server/zmodel-linker.ts +0 -407
- package/src/language-server/zmodel-module.ts +0 -90
- package/src/language-server/zmodel-scope.ts +0 -21
- package/src/language-server/zmodel-validator.ts +0 -35
- package/src/language-server/zmodel.langium +0 -186
- package/src/utils/indent-string.ts +0 -6
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
grammar ZModel
|
|
2
|
-
|
|
3
|
-
entry Model:
|
|
4
|
-
(
|
|
5
|
-
declarations+=AbstractDeclaration
|
|
6
|
-
)*;
|
|
7
|
-
|
|
8
|
-
AbstractDeclaration:
|
|
9
|
-
DataSource | DataModel | Enum | Function | Attribute;
|
|
10
|
-
|
|
11
|
-
// datasource
|
|
12
|
-
DataSource:
|
|
13
|
-
'datasource' name=ID '{' (fields+=DataSourceField)+ '}';
|
|
14
|
-
|
|
15
|
-
DataSourceField:
|
|
16
|
-
(name=ID '=' value=(LiteralExpr|InvocationExpr));
|
|
17
|
-
|
|
18
|
-
// expression
|
|
19
|
-
Expression:
|
|
20
|
-
LogicalExpr;
|
|
21
|
-
|
|
22
|
-
LiteralExpr:
|
|
23
|
-
value=(BOOLEAN | INT | STRING);
|
|
24
|
-
|
|
25
|
-
ArrayExpr:
|
|
26
|
-
'[' (items+=Expression (',' items+=Expression)*)? ']';
|
|
27
|
-
|
|
28
|
-
type ReferenceTarget = FunctionParam | DataModelField | EnumField;
|
|
29
|
-
|
|
30
|
-
ThisExpr:
|
|
31
|
-
value=THIS;
|
|
32
|
-
|
|
33
|
-
NullExpr:
|
|
34
|
-
value=NULL;
|
|
35
|
-
|
|
36
|
-
ReferenceExpr:
|
|
37
|
-
target=[ReferenceTarget:ID] ('(' ReferenceArgList ')')?;
|
|
38
|
-
|
|
39
|
-
fragment ReferenceArgList:
|
|
40
|
-
args+=ReferenceArg (',' args+=ReferenceArg)*;
|
|
41
|
-
|
|
42
|
-
ReferenceArg:
|
|
43
|
-
name=('sort') ':' value=('Asc'| 'Desc');
|
|
44
|
-
|
|
45
|
-
InvocationExpr:
|
|
46
|
-
function=[Function] '(' ArgumentList? ')';
|
|
47
|
-
|
|
48
|
-
UnaryExpr:
|
|
49
|
-
operator=('!') operand=Expression;
|
|
50
|
-
|
|
51
|
-
// binary operator precedence follow Javascript's rules:
|
|
52
|
-
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#table
|
|
53
|
-
|
|
54
|
-
MemberAccessExpr infers Expression:
|
|
55
|
-
PrimaryExpr (
|
|
56
|
-
{infer MemberAccessExpr.operand=current}
|
|
57
|
-
('.' member=[DataModelField])
|
|
58
|
-
)*;
|
|
59
|
-
|
|
60
|
-
CollectionPredicateExpr infers Expression:
|
|
61
|
-
MemberAccessExpr (
|
|
62
|
-
{infer BinaryExpr.left=current}
|
|
63
|
-
operator=('?'|'!'|'^')
|
|
64
|
-
'[' right=Expression ']'
|
|
65
|
-
)*;
|
|
66
|
-
|
|
67
|
-
// TODO: support arithmetics?
|
|
68
|
-
//
|
|
69
|
-
// MultDivExpr infers Expression:
|
|
70
|
-
// CollectionPredicateExpr (
|
|
71
|
-
// {infer BinaryExpr.left=current}
|
|
72
|
-
// operator=('*'|'/')
|
|
73
|
-
// right=CollectionPredicateExpr
|
|
74
|
-
// )*;
|
|
75
|
-
|
|
76
|
-
// AddSubExpr infers Expression:
|
|
77
|
-
// MultDivExpr (
|
|
78
|
-
// {infer BinaryExpr.left=current}
|
|
79
|
-
// operator=('+'|'-')
|
|
80
|
-
// right=MultDivExpr
|
|
81
|
-
// )*;
|
|
82
|
-
|
|
83
|
-
ComparisonExpr infers Expression:
|
|
84
|
-
CollectionPredicateExpr (
|
|
85
|
-
{infer BinaryExpr.left=current}
|
|
86
|
-
operator=('>'|'<'|'>='|'<=')
|
|
87
|
-
right=CollectionPredicateExpr
|
|
88
|
-
)*;
|
|
89
|
-
|
|
90
|
-
EqualityExpr infers Expression:
|
|
91
|
-
ComparisonExpr (
|
|
92
|
-
{infer BinaryExpr.left=current}
|
|
93
|
-
operator=('=='|'!=')
|
|
94
|
-
right=ComparisonExpr
|
|
95
|
-
)*;
|
|
96
|
-
|
|
97
|
-
LogicalExpr infers Expression:
|
|
98
|
-
EqualityExpr (
|
|
99
|
-
{infer BinaryExpr.left=current}
|
|
100
|
-
operator=('&&'|'||')
|
|
101
|
-
right=EqualityExpr
|
|
102
|
-
)*;
|
|
103
|
-
|
|
104
|
-
PrimaryExpr infers Expression:
|
|
105
|
-
'(' Expression ')' |
|
|
106
|
-
ThisExpr |
|
|
107
|
-
NullExpr |
|
|
108
|
-
LiteralExpr |
|
|
109
|
-
InvocationExpr |
|
|
110
|
-
ArrayExpr|
|
|
111
|
-
ReferenceExpr |
|
|
112
|
-
UnaryExpr;
|
|
113
|
-
|
|
114
|
-
fragment ArgumentList:
|
|
115
|
-
args+=Argument (',' args+=Argument)*;
|
|
116
|
-
|
|
117
|
-
Argument:
|
|
118
|
-
(name=ID ':')? value=Expression;
|
|
119
|
-
|
|
120
|
-
// model
|
|
121
|
-
DataModel:
|
|
122
|
-
'model' name=ID '{' (
|
|
123
|
-
fields+=DataModelField
|
|
124
|
-
| attributes+=DataModelAttribute
|
|
125
|
-
)+
|
|
126
|
-
'}';
|
|
127
|
-
|
|
128
|
-
DataModelField:
|
|
129
|
-
name=ID type=DataModelFieldType (attributes+=DataModelFieldAttribute)*;
|
|
130
|
-
|
|
131
|
-
DataModelFieldType:
|
|
132
|
-
(BuiltinType | reference=[TypeDeclaration:ID]) (array?='[]')? (optional?='?')?;
|
|
133
|
-
|
|
134
|
-
// enum
|
|
135
|
-
Enum:
|
|
136
|
-
'enum' name=ID '{' (fields+=EnumField)+ '}';
|
|
137
|
-
|
|
138
|
-
EnumField:
|
|
139
|
-
name=ID;
|
|
140
|
-
|
|
141
|
-
// function
|
|
142
|
-
Function:
|
|
143
|
-
'function' name=ID '(' (params+=FunctionParam (',' params+=FunctionParam)*)? ')' returnType=FunctionParamType '{' (expression=Expression)? '}';
|
|
144
|
-
|
|
145
|
-
FunctionParam:
|
|
146
|
-
name=ID type=FunctionParamType;
|
|
147
|
-
|
|
148
|
-
FunctionParamType:
|
|
149
|
-
(BuiltinType | reference=[TypeDeclaration]) (array?='[]')?;
|
|
150
|
-
|
|
151
|
-
// attribute
|
|
152
|
-
Attribute:
|
|
153
|
-
'attribute' name=ID '(' (params+=AttributeParam (',' params+=AttributeParam)*)? ')';
|
|
154
|
-
|
|
155
|
-
AttributeParam:
|
|
156
|
-
positional?='_' name=ID type=AttributeParamType;
|
|
157
|
-
|
|
158
|
-
AttributeParamType:
|
|
159
|
-
(BuiltinType | type='FieldReference') array?='[]' optional?='?';
|
|
160
|
-
|
|
161
|
-
type TypeDeclaration = DataModel | Enum;
|
|
162
|
-
|
|
163
|
-
DataModelFieldAttribute:
|
|
164
|
-
'@' decl=[Attribute] ('(' AttributeArgList? ')')?;
|
|
165
|
-
|
|
166
|
-
DataModelAttribute:
|
|
167
|
-
'@@' decl=[Attribute] ('(' AttributeArgList? ')')?;
|
|
168
|
-
|
|
169
|
-
fragment AttributeArgList:
|
|
170
|
-
args+=AttributeArg (',' args+=AttributeArg)*;
|
|
171
|
-
|
|
172
|
-
AttributeArg:
|
|
173
|
-
(name=ID ':')? value=Expression;
|
|
174
|
-
|
|
175
|
-
fragment BuiltinType:
|
|
176
|
-
type=('String'|'Boolean'|'Int'|'DateTime'|'JSON');
|
|
177
|
-
|
|
178
|
-
hidden terminal WS: /\s+/;
|
|
179
|
-
terminal BOOLEAN returns boolean: /true|false/;
|
|
180
|
-
terminal NULL: 'null';
|
|
181
|
-
terminal THIS: 'this';
|
|
182
|
-
terminal ID: /[_a-zA-Z][\w_]*/;
|
|
183
|
-
terminal STRING: /"[^"]*"|'[^']*'/;
|
|
184
|
-
terminal INT returns number: /[+-]?[0-9]+/;
|
|
185
|
-
hidden terminal ML_COMMENT: /\/\*[\s\S]*?\*\//;
|
|
186
|
-
hidden terminal SL_COMMENT: /\/\/[^\n\r]*/;
|