zenstack 0.1.12 → 0.1.15

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 (34) hide show
  1. package/out/generator/index.js +2 -6
  2. package/out/generator/index.js.map +1 -1
  3. package/package.json +2 -3
  4. package/src/cli/cli-util.ts +0 -80
  5. package/src/cli/index.ts +0 -52
  6. package/src/extension.ts +0 -76
  7. package/src/generator/constants.ts +0 -2
  8. package/src/generator/index.ts +0 -76
  9. package/src/generator/next-auth/index.ts +0 -183
  10. package/src/generator/package.template.json +0 -9
  11. package/src/generator/prisma/expression-writer.ts +0 -352
  12. package/src/generator/prisma/index.ts +0 -24
  13. package/src/generator/prisma/plain-expression-builder.ts +0 -91
  14. package/src/generator/prisma/prisma-builder.ts +0 -366
  15. package/src/generator/prisma/query-gard-generator.ts +0 -208
  16. package/src/generator/prisma/schema-generator.ts +0 -295
  17. package/src/generator/react-hooks/index.ts +0 -265
  18. package/src/generator/service/index.ts +0 -96
  19. package/src/generator/tsconfig.template.json +0 -17
  20. package/src/generator/types.ts +0 -16
  21. package/src/generator/utils.ts +0 -9
  22. package/src/language-server/generated/ast.ts +0 -603
  23. package/src/language-server/generated/grammar.ts +0 -2190
  24. package/src/language-server/generated/module.ts +0 -24
  25. package/src/language-server/main.ts +0 -12
  26. package/src/language-server/stdlib.zmodel +0 -21
  27. package/src/language-server/types.ts +0 -9
  28. package/src/language-server/zmodel-index.ts +0 -33
  29. package/src/language-server/zmodel-linker.ts +0 -407
  30. package/src/language-server/zmodel-module.ts +0 -90
  31. package/src/language-server/zmodel-scope.ts +0 -21
  32. package/src/language-server/zmodel-validator.ts +0 -35
  33. package/src/language-server/zmodel.langium +0 -186
  34. 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]*/;
@@ -1,6 +0,0 @@
1
- // https://github.com/sindresorhus/indent-string
2
-
3
- export default function indentString(string: string, count = 4) {
4
- const indent = ' ';
5
- return string.replace(/^(?!\s*$)/gm, indent.repeat(count));
6
- }