@zenstackhq/language 3.0.0-beta.25 → 3.0.0-beta.27
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/dist/index.cjs +24 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +24 -5
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/res/stdlib.zmodel +7 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Model, DataSource, DataModel, TypeDef, Enum, Attribute, Expression, InvocationExpr, FunctionDecl } from './ast.cjs';
|
|
1
|
+
import { Model, DataSource, GeneratorDecl, DataModel, TypeDef, Enum, Attribute, Expression, InvocationExpr, FunctionDecl } from './ast.cjs';
|
|
2
2
|
import { ValidationAcceptor, Module, DeepPartial, AstNode } from 'langium';
|
|
3
3
|
import { LangiumServices, PartialLangiumServices, LangiumSharedServices, DefaultSharedModuleContext } from 'langium/lsp';
|
|
4
4
|
|
|
@@ -40,6 +40,7 @@ declare class ZModelValidator {
|
|
|
40
40
|
constructor(services: ZModelServices);
|
|
41
41
|
checkModel(node: Model, accept: ValidationAcceptor): void;
|
|
42
42
|
checkDataSource(node: DataSource, accept: ValidationAcceptor): void;
|
|
43
|
+
checkGenerator(node: GeneratorDecl, accept: ValidationAcceptor): void;
|
|
43
44
|
checkDataModel(node: DataModel, accept: ValidationAcceptor): void;
|
|
44
45
|
checkTypeDef(node: TypeDef, accept: ValidationAcceptor): void;
|
|
45
46
|
checkEnum(node: Enum, accept: ValidationAcceptor): void;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Model, DataSource, DataModel, TypeDef, Enum, Attribute, Expression, InvocationExpr, FunctionDecl } from './ast.js';
|
|
1
|
+
import { Model, DataSource, GeneratorDecl, DataModel, TypeDef, Enum, Attribute, Expression, InvocationExpr, FunctionDecl } from './ast.js';
|
|
2
2
|
import { ValidationAcceptor, Module, DeepPartial, AstNode } from 'langium';
|
|
3
3
|
import { LangiumServices, PartialLangiumServices, LangiumSharedServices, DefaultSharedModuleContext } from 'langium/lsp';
|
|
4
4
|
|
|
@@ -40,6 +40,7 @@ declare class ZModelValidator {
|
|
|
40
40
|
constructor(services: ZModelServices);
|
|
41
41
|
checkModel(node: Model, accept: ValidationAcceptor): void;
|
|
42
42
|
checkDataSource(node: DataSource, accept: ValidationAcceptor): void;
|
|
43
|
+
checkGenerator(node: GeneratorDecl, accept: ValidationAcceptor): void;
|
|
43
44
|
checkDataModel(node: DataModel, accept: ValidationAcceptor): void;
|
|
44
45
|
checkTypeDef(node: TypeDef, accept: ValidationAcceptor): void;
|
|
45
46
|
checkEnum(node: Enum, accept: ValidationAcceptor): void;
|
package/dist/index.js
CHANGED
|
@@ -7010,6 +7010,13 @@ var FunctionInvocationValidator = class {
|
|
|
7010
7010
|
}
|
|
7011
7011
|
return true;
|
|
7012
7012
|
}
|
|
7013
|
+
_checkAuth(expr, accept) {
|
|
7014
|
+
if (!expr.$resolvedType) {
|
|
7015
|
+
accept("error", 'cannot resolve `auth()` - make sure you have a model or type with `@auth` attribute or named "User"', {
|
|
7016
|
+
node: expr
|
|
7017
|
+
});
|
|
7018
|
+
}
|
|
7019
|
+
}
|
|
7013
7020
|
_checkLength(expr, accept) {
|
|
7014
7021
|
const msg = "argument must be a string or list field";
|
|
7015
7022
|
const fieldArg = expr.args[0].value;
|
|
@@ -7119,6 +7126,15 @@ var FunctionInvocationValidator = class {
|
|
|
7119
7126
|
}
|
|
7120
7127
|
}
|
|
7121
7128
|
};
|
|
7129
|
+
_ts_decorate2([
|
|
7130
|
+
func("auth"),
|
|
7131
|
+
_ts_metadata2("design:type", Function),
|
|
7132
|
+
_ts_metadata2("design:paramtypes", [
|
|
7133
|
+
typeof InvocationExpr === "undefined" ? Object : InvocationExpr,
|
|
7134
|
+
typeof ValidationAcceptor === "undefined" ? Object : ValidationAcceptor
|
|
7135
|
+
]),
|
|
7136
|
+
_ts_metadata2("design:returntype", void 0)
|
|
7137
|
+
], FunctionInvocationValidator.prototype, "_checkAuth", null);
|
|
7122
7138
|
_ts_decorate2([
|
|
7123
7139
|
func("length"),
|
|
7124
7140
|
_ts_metadata2("design:type", Function),
|
|
@@ -7227,6 +7243,7 @@ function registerValidationChecks(services) {
|
|
|
7227
7243
|
const checks = {
|
|
7228
7244
|
Model: validator.checkModel,
|
|
7229
7245
|
DataSource: validator.checkDataSource,
|
|
7246
|
+
GeneratorDecl: validator.checkGenerator,
|
|
7230
7247
|
DataModel: validator.checkDataModel,
|
|
7231
7248
|
TypeDef: validator.checkTypeDef,
|
|
7232
7249
|
Enum: validator.checkEnum,
|
|
@@ -7252,6 +7269,11 @@ var ZModelValidator = class {
|
|
|
7252
7269
|
checkDataSource(node, accept) {
|
|
7253
7270
|
new DataSourceValidator().validate(node, accept);
|
|
7254
7271
|
}
|
|
7272
|
+
checkGenerator(node, accept) {
|
|
7273
|
+
accept("warning", '"generator" is not used by ZenStack and should be removed.', {
|
|
7274
|
+
node
|
|
7275
|
+
});
|
|
7276
|
+
}
|
|
7255
7277
|
checkDataModel(node, accept) {
|
|
7256
7278
|
new DataModelValidator().validate(node, accept);
|
|
7257
7279
|
}
|
|
@@ -8708,10 +8730,7 @@ var ZModelScopeProvider = class extends DefaultScopeProvider {
|
|
|
8708
8730
|
const referenceType = this.reflection.getReferenceType(context);
|
|
8709
8731
|
const globalScope = this.getGlobalScope(referenceType, context);
|
|
8710
8732
|
const node = context.container;
|
|
8711
|
-
const allowTypeDefScope = (
|
|
8712
|
-
// isAuthOrAuthMemberAccess(node.operand) ||
|
|
8713
|
-
!!AstUtils7.getContainerOfType(node, isTypeDef)
|
|
8714
|
-
);
|
|
8733
|
+
const allowTypeDefScope = isAuthOrAuthMemberAccess(node.operand) || !!AstUtils7.getContainerOfType(node, isTypeDef);
|
|
8715
8734
|
return match5(node.operand).when(isReferenceExpr, (operand) => {
|
|
8716
8735
|
const ref = operand.target.ref;
|
|
8717
8736
|
if (isDataField(ref)) {
|
|
@@ -8740,7 +8759,7 @@ var ZModelScopeProvider = class extends DefaultScopeProvider {
|
|
|
8740
8759
|
const referenceType = this.reflection.getReferenceType(context);
|
|
8741
8760
|
const globalScope = this.getGlobalScope(referenceType, context);
|
|
8742
8761
|
const collection = collectionPredicate.left;
|
|
8743
|
-
const allowTypeDefScope =
|
|
8762
|
+
const allowTypeDefScope = isAuthOrAuthMemberAccess(collection);
|
|
8744
8763
|
return match5(collection).when(isReferenceExpr, (expr) => {
|
|
8745
8764
|
const ref = expr.target.ref;
|
|
8746
8765
|
if (isDataField(ref)) {
|