@zenstackhq/language 3.8.0-beta.1 → 3.8.0-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/dist/ast.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ast = require("./ast-Clidp86c.cjs");
2
+ const require_ast = require("./ast-DHvua30v.cjs");
3
3
  //#region src/ast.ts
4
4
  const BinaryExprOperatorPriority = {
5
5
  "||": 1,
package/dist/ast.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as ReferenceArg, $t as isModel, A as Enum, At as isConfigField, B as InvocationExpr, Bt as isEnumField, C as ConfigInvocationExpr, Ct as isBinaryExpr, D as DataModel, Dt as isCollectionPredicateBinding, E as DataFieldType, Et as isBuiltinType, F as FunctionDecl, Ft as isDataFieldType, G as ModelImport, Gt as isFunctionParam, H as MemberAccessExpr, Ht as isExpressionType, I as FunctionParam, It as isDataModel, J as ObjectExpr, Jt as isInternalAttribute, K as NullExpr, Kt as isFunctionParamType, L as FunctionParamType, Lt as isDataModelAttribute, M as Expression, Mt as isConfigInvocationExpr, N as ExpressionType, Nt as isDataField, O as DataModelAttribute, Ot as isConfigArrayExpr, P as FieldInitializer, Pt as isDataFieldAttribute, Q as ProcedureParam, Qt as isMemberAccessTarget, R as GeneratorDecl, Rt as isDataSource, S as ConfigInvocationArg, St as isAttributeParamType, T as DataFieldAttribute, Tt as isBooleanLiteral, U as MemberAccessTarget, Ut as isFieldInitializer, V as LiteralExpr, Vt as isExpression, W as Model, Wt as isFunctionDecl, X as PluginField, Xt as isLiteralExpr, Y as Plugin, Yt as isInvocationExpr, Z as Procedure, Zt as isMemberAccessExpr, _ as BuiltinType, _n as isUnaryExpr, _t as isArgument, a as ResolvedShape, an as isPluginField, at as ThisExpr, b as ConfigExpr, bt as isAttributeArg, c as Argument, cn as isReferenceArg, ct as UnaryExpr, d as AttributeArg, dn as isRegularID, dt as ZModelAstType, en as isModelImport, et as ReferenceExpr, f as AttributeParam, fn as isRegularIDWithTypeNames, ft as ZModelKeywordNames, g as BooleanLiteral, gn as isTypeDef, gt as isAbstractDeclaration, h as Boolean, hn as isTypeDeclaration, ht as ZModelTokenNames, i as Reference, in as isPlugin, it as StringLiteral, j as EnumField, jt as isConfigInvocationArg, k as DataSource, kt as isConfigExpr, l as ArrayExpr, ln as isReferenceExpr, lt as UnsupportedFieldType, m as BinaryExpr, mn as isThisExpr, mt as ZModelTerminals, n as BinaryExprOperatorPriority, nn as isNumberLiteral, nt as RegularID, o as ResolvedType, on as isProcedure, ot as TypeDeclaration, p as AttributeParamType, pn as isStringLiteral, pt as ZModelTerminalNames, q as NumberLiteral, qt as isGeneratorDecl, r as InheritableNode, rn as isObjectExpr, rt as RegularIDWithTypeNames, s as AbstractDeclaration, sn as isProcedureParam, st as TypeDef, t as AstNode, tn as isNullExpr, tt as ReferenceTarget, u as Attribute, un as isReferenceTarget, ut as ZModelAstReflection, v as CollectionPredicateBinding, vn as isUnsupportedFieldType, vt as isArrayExpr, w as DataField, wt as isBoolean, x as ConfigField, xt as isAttributeParam, y as ConfigArrayExpr, yn as reflection, yt as isAttribute, z as InternalAttribute, zt as isEnum } from "./ast-W2h6Qtfk.cjs";
1
+ import { $ as ReferenceArg, $t as isModel, A as Enum, At as isConfigField, B as InvocationExpr, Bt as isEnumField, C as ConfigInvocationExpr, Ct as isBinaryExpr, D as DataModel, Dt as isCollectionPredicateBinding, E as DataFieldType, Et as isBuiltinType, F as FunctionDecl, Ft as isDataFieldType, G as ModelImport, Gt as isFunctionParam, H as MemberAccessExpr, Ht as isExpressionType, I as FunctionParam, It as isDataModel, J as ObjectExpr, Jt as isInternalAttribute, K as NullExpr, Kt as isFunctionParamType, L as FunctionParamType, Lt as isDataModelAttribute, M as Expression, Mt as isConfigInvocationExpr, N as ExpressionType, Nt as isDataField, O as DataModelAttribute, Ot as isConfigArrayExpr, P as FieldInitializer, Pt as isDataFieldAttribute, Q as ProcedureParam, Qt as isMemberAccessTarget, R as GeneratorDecl, Rt as isDataSource, S as ConfigInvocationArg, St as isAttributeParamType, T as DataFieldAttribute, Tt as isBooleanLiteral, U as MemberAccessTarget, Ut as isFieldInitializer, V as LiteralExpr, Vt as isExpression, W as Model, Wt as isFunctionDecl, X as PluginField, Xt as isLiteralExpr, Y as Plugin, Yt as isInvocationExpr, Z as Procedure, Zt as isMemberAccessExpr, _ as BuiltinType, _n as isUnaryExpr, _t as isArgument, a as ResolvedShape, an as isPluginField, at as ThisExpr, b as ConfigExpr, bt as isAttributeArg, c as Argument, cn as isReferenceArg, ct as UnaryExpr, d as AttributeArg, dn as isRegularID, dt as ZModelAstType, en as isModelImport, et as ReferenceExpr, f as AttributeParam, fn as isRegularIDWithTypeNames, ft as ZModelKeywordNames, g as BooleanLiteral, gn as isTypeDef, gt as isAbstractDeclaration, h as Boolean, hn as isTypeDeclaration, ht as ZModelTokenNames, i as Reference, in as isPlugin, it as StringLiteral, j as EnumField, jt as isConfigInvocationArg, k as DataSource, kt as isConfigExpr, l as ArrayExpr, ln as isReferenceExpr, lt as UnsupportedFieldType, m as BinaryExpr, mn as isThisExpr, mt as ZModelTerminals, n as BinaryExprOperatorPriority, nn as isNumberLiteral, nt as RegularID, o as ResolvedType, on as isProcedure, ot as TypeDeclaration, p as AttributeParamType, pn as isStringLiteral, pt as ZModelTerminalNames, q as NumberLiteral, qt as isGeneratorDecl, r as InheritableNode, rn as isObjectExpr, rt as RegularIDWithTypeNames, s as AbstractDeclaration, sn as isProcedureParam, st as TypeDef, t as AstNode, tn as isNullExpr, tt as ReferenceTarget, u as Attribute, un as isReferenceTarget, ut as ZModelAstReflection, v as CollectionPredicateBinding, vn as isUnsupportedFieldType, vt as isArrayExpr, w as DataField, wt as isBoolean, x as ConfigField, xt as isAttributeParam, y as ConfigArrayExpr, yn as reflection, yt as isAttribute, z as InternalAttribute, zt as isEnum } from "./ast-fg9-E1cy.cjs";
2
2
  export { AbstractDeclaration, Argument, ArrayExpr, AstNode, Attribute, AttributeArg, AttributeParam, AttributeParamType, BinaryExpr, BinaryExprOperatorPriority, Boolean, BooleanLiteral, BuiltinType, CollectionPredicateBinding, ConfigArrayExpr, ConfigExpr, ConfigField, ConfigInvocationArg, ConfigInvocationExpr, DataField, DataFieldAttribute, DataFieldType, DataModel, DataModelAttribute, DataSource, Enum, EnumField, Expression, ExpressionType, FieldInitializer, FunctionDecl, FunctionParam, FunctionParamType, GeneratorDecl, InheritableNode, InternalAttribute, InvocationExpr, LiteralExpr, MemberAccessExpr, MemberAccessTarget, Model, ModelImport, NullExpr, NumberLiteral, ObjectExpr, Plugin, PluginField, Procedure, ProcedureParam, Reference, ReferenceArg, ReferenceExpr, ReferenceTarget, RegularID, RegularIDWithTypeNames, ResolvedShape, ResolvedType, StringLiteral, ThisExpr, TypeDeclaration, TypeDef, UnaryExpr, UnsupportedFieldType, ZModelAstReflection, ZModelAstType, ZModelKeywordNames, ZModelTerminalNames, ZModelTerminals, ZModelTokenNames, isAbstractDeclaration, isArgument, isArrayExpr, isAttribute, isAttributeArg, isAttributeParam, isAttributeParamType, isBinaryExpr, isBoolean, isBooleanLiteral, isBuiltinType, isCollectionPredicateBinding, isConfigArrayExpr, isConfigExpr, isConfigField, isConfigInvocationArg, isConfigInvocationExpr, isDataField, isDataFieldAttribute, isDataFieldType, isDataModel, isDataModelAttribute, isDataSource, isEnum, isEnumField, isExpression, isExpressionType, isFieldInitializer, isFunctionDecl, isFunctionParam, isFunctionParamType, isGeneratorDecl, isInternalAttribute, isInvocationExpr, isLiteralExpr, isMemberAccessExpr, isMemberAccessTarget, isModel, isModelImport, isNullExpr, isNumberLiteral, isObjectExpr, isPlugin, isPluginField, isProcedure, isProcedureParam, isReferenceArg, isReferenceExpr, isReferenceTarget, isRegularID, isRegularIDWithTypeNames, isStringLiteral, isThisExpr, isTypeDeclaration, isTypeDef, isUnaryExpr, isUnsupportedFieldType, reflection };
package/dist/ast.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as ReferenceArg, $t as isModel, A as Enum, At as isConfigField, B as InvocationExpr, Bt as isEnumField, C as ConfigInvocationExpr, Ct as isBinaryExpr, D as DataModel, Dt as isCollectionPredicateBinding, E as DataFieldType, Et as isBuiltinType, F as FunctionDecl, Ft as isDataFieldType, G as ModelImport, Gt as isFunctionParam, H as MemberAccessExpr, Ht as isExpressionType, I as FunctionParam, It as isDataModel, J as ObjectExpr, Jt as isInternalAttribute, K as NullExpr, Kt as isFunctionParamType, L as FunctionParamType, Lt as isDataModelAttribute, M as Expression, Mt as isConfigInvocationExpr, N as ExpressionType, Nt as isDataField, O as DataModelAttribute, Ot as isConfigArrayExpr, P as FieldInitializer, Pt as isDataFieldAttribute, Q as ProcedureParam, Qt as isMemberAccessTarget, R as GeneratorDecl, Rt as isDataSource, S as ConfigInvocationArg, St as isAttributeParamType, T as DataFieldAttribute, Tt as isBooleanLiteral, U as MemberAccessTarget, Ut as isFieldInitializer, V as LiteralExpr, Vt as isExpression, W as Model, Wt as isFunctionDecl, X as PluginField, Xt as isLiteralExpr, Y as Plugin, Yt as isInvocationExpr, Z as Procedure, Zt as isMemberAccessExpr, _ as BuiltinType, _n as isUnaryExpr, _t as isArgument, a as ResolvedShape, an as isPluginField, at as ThisExpr, b as ConfigExpr, bt as isAttributeArg, c as Argument, cn as isReferenceArg, ct as UnaryExpr, d as AttributeArg, dn as isRegularID, dt as ZModelAstType, en as isModelImport, et as ReferenceExpr, f as AttributeParam, fn as isRegularIDWithTypeNames, ft as ZModelKeywordNames, g as BooleanLiteral, gn as isTypeDef, gt as isAbstractDeclaration, h as Boolean, hn as isTypeDeclaration, ht as ZModelTokenNames, i as Reference, in as isPlugin, it as StringLiteral, j as EnumField, jt as isConfigInvocationArg, k as DataSource, kt as isConfigExpr, l as ArrayExpr, ln as isReferenceExpr, lt as UnsupportedFieldType, m as BinaryExpr, mn as isThisExpr, mt as ZModelTerminals, n as BinaryExprOperatorPriority, nn as isNumberLiteral, nt as RegularID, o as ResolvedType, on as isProcedure, ot as TypeDeclaration, p as AttributeParamType, pn as isStringLiteral, pt as ZModelTerminalNames, q as NumberLiteral, qt as isGeneratorDecl, r as InheritableNode, rn as isObjectExpr, rt as RegularIDWithTypeNames, s as AbstractDeclaration, sn as isProcedureParam, st as TypeDef, t as AstNode, tn as isNullExpr, tt as ReferenceTarget, u as Attribute, un as isReferenceTarget, ut as ZModelAstReflection, v as CollectionPredicateBinding, vn as isUnsupportedFieldType, vt as isArrayExpr, w as DataField, wt as isBoolean, x as ConfigField, xt as isAttributeParam, y as ConfigArrayExpr, yn as reflection, yt as isAttribute, z as InternalAttribute, zt as isEnum } from "./ast-DQDdBZQ3.mjs";
1
+ import { $ as ReferenceArg, $t as isModel, A as Enum, At as isConfigField, B as InvocationExpr, Bt as isEnumField, C as ConfigInvocationExpr, Ct as isBinaryExpr, D as DataModel, Dt as isCollectionPredicateBinding, E as DataFieldType, Et as isBuiltinType, F as FunctionDecl, Ft as isDataFieldType, G as ModelImport, Gt as isFunctionParam, H as MemberAccessExpr, Ht as isExpressionType, I as FunctionParam, It as isDataModel, J as ObjectExpr, Jt as isInternalAttribute, K as NullExpr, Kt as isFunctionParamType, L as FunctionParamType, Lt as isDataModelAttribute, M as Expression, Mt as isConfigInvocationExpr, N as ExpressionType, Nt as isDataField, O as DataModelAttribute, Ot as isConfigArrayExpr, P as FieldInitializer, Pt as isDataFieldAttribute, Q as ProcedureParam, Qt as isMemberAccessTarget, R as GeneratorDecl, Rt as isDataSource, S as ConfigInvocationArg, St as isAttributeParamType, T as DataFieldAttribute, Tt as isBooleanLiteral, U as MemberAccessTarget, Ut as isFieldInitializer, V as LiteralExpr, Vt as isExpression, W as Model, Wt as isFunctionDecl, X as PluginField, Xt as isLiteralExpr, Y as Plugin, Yt as isInvocationExpr, Z as Procedure, Zt as isMemberAccessExpr, _ as BuiltinType, _n as isUnaryExpr, _t as isArgument, a as ResolvedShape, an as isPluginField, at as ThisExpr, b as ConfigExpr, bt as isAttributeArg, c as Argument, cn as isReferenceArg, ct as UnaryExpr, d as AttributeArg, dn as isRegularID, dt as ZModelAstType, en as isModelImport, et as ReferenceExpr, f as AttributeParam, fn as isRegularIDWithTypeNames, ft as ZModelKeywordNames, g as BooleanLiteral, gn as isTypeDef, gt as isAbstractDeclaration, h as Boolean, hn as isTypeDeclaration, ht as ZModelTokenNames, i as Reference, in as isPlugin, it as StringLiteral, j as EnumField, jt as isConfigInvocationArg, k as DataSource, kt as isConfigExpr, l as ArrayExpr, ln as isReferenceExpr, lt as UnsupportedFieldType, m as BinaryExpr, mn as isThisExpr, mt as ZModelTerminals, n as BinaryExprOperatorPriority, nn as isNumberLiteral, nt as RegularID, o as ResolvedType, on as isProcedure, ot as TypeDeclaration, p as AttributeParamType, pn as isStringLiteral, pt as ZModelTerminalNames, q as NumberLiteral, qt as isGeneratorDecl, r as InheritableNode, rn as isObjectExpr, rt as RegularIDWithTypeNames, s as AbstractDeclaration, sn as isProcedureParam, st as TypeDef, t as AstNode, tn as isNullExpr, tt as ReferenceTarget, u as Attribute, un as isReferenceTarget, ut as ZModelAstReflection, v as CollectionPredicateBinding, vn as isUnsupportedFieldType, vt as isArrayExpr, w as DataField, wt as isBoolean, x as ConfigField, xt as isAttributeParam, y as ConfigArrayExpr, yn as reflection, yt as isAttribute, z as InternalAttribute, zt as isEnum } from "./ast-DhPyAQoX.mjs";
2
2
  export { AbstractDeclaration, Argument, ArrayExpr, AstNode, Attribute, AttributeArg, AttributeParam, AttributeParamType, BinaryExpr, BinaryExprOperatorPriority, Boolean, BooleanLiteral, BuiltinType, CollectionPredicateBinding, ConfigArrayExpr, ConfigExpr, ConfigField, ConfigInvocationArg, ConfigInvocationExpr, DataField, DataFieldAttribute, DataFieldType, DataModel, DataModelAttribute, DataSource, Enum, EnumField, Expression, ExpressionType, FieldInitializer, FunctionDecl, FunctionParam, FunctionParamType, GeneratorDecl, InheritableNode, InternalAttribute, InvocationExpr, LiteralExpr, MemberAccessExpr, MemberAccessTarget, Model, ModelImport, NullExpr, NumberLiteral, ObjectExpr, Plugin, PluginField, Procedure, ProcedureParam, Reference, ReferenceArg, ReferenceExpr, ReferenceTarget, RegularID, RegularIDWithTypeNames, ResolvedShape, ResolvedType, StringLiteral, ThisExpr, TypeDeclaration, TypeDef, UnaryExpr, UnsupportedFieldType, ZModelAstReflection, ZModelAstType, ZModelKeywordNames, ZModelTerminalNames, ZModelTerminals, ZModelTokenNames, isAbstractDeclaration, isArgument, isArrayExpr, isAttribute, isAttributeArg, isAttributeParam, isAttributeParamType, isBinaryExpr, isBoolean, isBooleanLiteral, isBuiltinType, isCollectionPredicateBinding, isConfigArrayExpr, isConfigExpr, isConfigField, isConfigInvocationArg, isConfigInvocationExpr, isDataField, isDataFieldAttribute, isDataFieldType, isDataModel, isDataModelAttribute, isDataSource, isEnum, isEnumField, isExpression, isExpressionType, isFieldInitializer, isFunctionDecl, isFunctionParam, isFunctionParamType, isGeneratorDecl, isInternalAttribute, isInvocationExpr, isLiteralExpr, isMemberAccessExpr, isMemberAccessTarget, isModel, isModelImport, isNullExpr, isNumberLiteral, isObjectExpr, isPlugin, isPluginField, isProcedure, isProcedureParam, isReferenceArg, isReferenceExpr, isReferenceTarget, isRegularID, isRegularIDWithTypeNames, isStringLiteral, isThisExpr, isTypeDeclaration, isTypeDef, isUnaryExpr, isUnsupportedFieldType, reflection };
package/dist/ast.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as ZModelAstReflection, $t as isThisExpr, A as InternalAttribute, At as isFunctionParam, B as Plugin, Bt as isNullExpr, C as EnumField, Ct as isDataSource, D as FunctionParam, Dt as isExpressionType, E as FunctionDecl, Et as isExpression, F as Model, Ft as isLiteralExpr, G as ReferenceExpr, Gt as isProcedure, H as Procedure, Ht as isObjectExpr, I as ModelImport, It as isMemberAccessExpr, J as ThisExpr, Jt as isReferenceExpr, K as ReferenceTarget, Kt as isProcedureParam, L as NullExpr, Lt as isMemberAccessTarget, M as LiteralExpr, Mt as isGeneratorDecl, N as MemberAccessExpr, Nt as isInternalAttribute, O as FunctionParamType, Ot as isFieldInitializer, P as MemberAccessTarget, Pt as isInvocationExpr, Q as UnsupportedFieldType, Qt as isStringLiteral, R as NumberLiteral, Rt as isModel, S as Enum, St as isDataModelAttribute, T as FieldInitializer, Tt as isEnumField, U as ProcedureParam, Ut as isPlugin, V as PluginField, Vt as isNumberLiteral, W as ReferenceArg, Wt as isPluginField, X as TypeDef, Xt as isRegularID, Y as TypeDeclaration, Yt as isReferenceTarget, Z as UnaryExpr, Zt as isRegularIDWithTypeNames, _ as DataFieldAttribute, _t as isConfigInvocationExpr, a as AttributeArg, at as isAttributeArg, b as DataModelAttribute, bt as isDataFieldType, c as BinaryExpr, ct as isBinaryExpr, d as ConfigArrayExpr, dt as isBuiltinType, en as isTypeDeclaration, et as ZModelTerminals, f as ConfigExpr, ft as isCollectionPredicateBinding, g as DataField, gt as isConfigInvocationArg, h as ConfigInvocationExpr, ht as isConfigField, i as Attribute, in as reflection, it as isAttribute, j as InvocationExpr, jt as isFunctionParamType, k as GeneratorDecl, kt as isFunctionDecl, l as BooleanLiteral, lt as isBoolean, m as ConfigInvocationArg, mt as isConfigExpr, n as Argument, nn as isUnaryExpr, nt as isArgument, o as AttributeParam, ot as isAttributeParam, p as ConfigField, pt as isConfigArrayExpr, q as StringLiteral, qt as isReferenceArg, r as ArrayExpr, rn as isUnsupportedFieldType, rt as isArrayExpr, s as AttributeParamType, st as isAttributeParamType, t as AbstractDeclaration, tn as isTypeDef, tt as isAbstractDeclaration, u as CollectionPredicateBinding, ut as isBooleanLiteral, v as DataFieldType, vt as isDataField, w as Expression, wt as isEnum, x as DataSource, xt as isDataModel, y as DataModel, yt as isDataFieldAttribute, z as ObjectExpr, zt as isModelImport } from "./ast-DEfhnj8j.mjs";
1
+ import { $ as ZModelAstReflection, $t as isThisExpr, A as InternalAttribute, At as isFunctionParam, B as Plugin, Bt as isNullExpr, C as EnumField, Ct as isDataSource, D as FunctionParam, Dt as isExpressionType, E as FunctionDecl, Et as isExpression, F as Model, Ft as isLiteralExpr, G as ReferenceExpr, Gt as isProcedure, H as Procedure, Ht as isObjectExpr, I as ModelImport, It as isMemberAccessExpr, J as ThisExpr, Jt as isReferenceExpr, K as ReferenceTarget, Kt as isProcedureParam, L as NullExpr, Lt as isMemberAccessTarget, M as LiteralExpr, Mt as isGeneratorDecl, N as MemberAccessExpr, Nt as isInternalAttribute, O as FunctionParamType, Ot as isFieldInitializer, P as MemberAccessTarget, Pt as isInvocationExpr, Q as UnsupportedFieldType, Qt as isStringLiteral, R as NumberLiteral, Rt as isModel, S as Enum, St as isDataModelAttribute, T as FieldInitializer, Tt as isEnumField, U as ProcedureParam, Ut as isPlugin, V as PluginField, Vt as isNumberLiteral, W as ReferenceArg, Wt as isPluginField, X as TypeDef, Xt as isRegularID, Y as TypeDeclaration, Yt as isReferenceTarget, Z as UnaryExpr, Zt as isRegularIDWithTypeNames, _ as DataFieldAttribute, _t as isConfigInvocationExpr, a as AttributeArg, at as isAttributeArg, b as DataModelAttribute, bt as isDataFieldType, c as BinaryExpr, ct as isBinaryExpr, d as ConfigArrayExpr, dt as isBuiltinType, en as isTypeDeclaration, et as ZModelTerminals, f as ConfigExpr, ft as isCollectionPredicateBinding, g as DataField, gt as isConfigInvocationArg, h as ConfigInvocationExpr, ht as isConfigField, i as Attribute, in as reflection, it as isAttribute, j as InvocationExpr, jt as isFunctionParamType, k as GeneratorDecl, kt as isFunctionDecl, l as BooleanLiteral, lt as isBoolean, m as ConfigInvocationArg, mt as isConfigExpr, n as Argument, nn as isUnaryExpr, nt as isArgument, o as AttributeParam, ot as isAttributeParam, p as ConfigField, pt as isConfigArrayExpr, q as StringLiteral, qt as isReferenceArg, r as ArrayExpr, rn as isUnsupportedFieldType, rt as isArrayExpr, s as AttributeParamType, st as isAttributeParamType, t as AbstractDeclaration, tn as isTypeDef, tt as isAbstractDeclaration, u as CollectionPredicateBinding, ut as isBooleanLiteral, v as DataFieldType, vt as isDataField, w as Expression, wt as isEnum, x as DataSource, xt as isDataModel, y as DataModel, yt as isDataFieldAttribute, z as ObjectExpr, zt as isModelImport } from "./ast-Z-Y9-aOU.mjs";
2
2
  //#region src/ast.ts
3
3
  const BinaryExprOperatorPriority = {
4
4
  "||": 1,
package/dist/factory.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ast = require("./ast-Clidp86c.cjs");
2
+ const require_ast = require("./ast-DHvua30v.cjs");
3
3
  require("./ast.cjs");
4
4
  //#region src/factory/ast-factory.ts
5
5
  var AstFactory = class AstFactory {
@@ -31,7 +31,7 @@ var AstFactory = class AstFactory {
31
31
  var ThisExprFactory = class extends AstFactory {
32
32
  constructor() {
33
33
  super({
34
- type: require_ast.ThisExpr,
34
+ type: require_ast.ThisExpr.$type,
35
35
  node: { value: "this" }
36
36
  });
37
37
  }
@@ -39,7 +39,7 @@ var ThisExprFactory = class extends AstFactory {
39
39
  var NullExprFactory = class extends AstFactory {
40
40
  constructor() {
41
41
  super({
42
- type: require_ast.NullExpr,
42
+ type: require_ast.NullExpr.$type,
43
43
  node: { value: "null" }
44
44
  });
45
45
  }
@@ -47,7 +47,7 @@ var NullExprFactory = class extends AstFactory {
47
47
  var NumberLiteralFactory = class extends AstFactory {
48
48
  value;
49
49
  constructor() {
50
- super({ type: require_ast.NumberLiteral });
50
+ super({ type: require_ast.NumberLiteral.$type });
51
51
  }
52
52
  setValue(value) {
53
53
  this.value = value;
@@ -58,7 +58,7 @@ var NumberLiteralFactory = class extends AstFactory {
58
58
  var StringLiteralFactory = class extends AstFactory {
59
59
  value;
60
60
  constructor() {
61
- super({ type: require_ast.StringLiteral });
61
+ super({ type: require_ast.StringLiteral.$type });
62
62
  }
63
63
  setValue(value) {
64
64
  this.value = value;
@@ -69,7 +69,7 @@ var StringLiteralFactory = class extends AstFactory {
69
69
  var BooleanLiteralFactory = class extends AstFactory {
70
70
  value;
71
71
  constructor() {
72
- super({ type: require_ast.BooleanLiteral });
72
+ super({ type: require_ast.BooleanLiteral.$type });
73
73
  }
74
74
  setValue(value) {
75
75
  this.value = value;
@@ -121,7 +121,7 @@ var UnaryExprFactory = class extends AstFactory {
121
121
  operand;
122
122
  constructor() {
123
123
  super({
124
- type: require_ast.UnaryExpr,
124
+ type: require_ast.UnaryExpr.$type,
125
125
  node: { operator: "!" }
126
126
  });
127
127
  }
@@ -136,7 +136,7 @@ var ReferenceExprFactory = class extends AstFactory {
136
136
  args = [];
137
137
  constructor() {
138
138
  super({
139
- type: require_ast.ReferenceExpr,
139
+ type: require_ast.ReferenceExpr.$type,
140
140
  node: { args: [] }
141
141
  });
142
142
  }
@@ -160,7 +160,7 @@ var ReferenceArgFactory = class extends AstFactory {
160
160
  name;
161
161
  value;
162
162
  constructor() {
163
- super({ type: require_ast.ReferenceArg });
163
+ super({ type: require_ast.ReferenceArg.$type });
164
164
  }
165
165
  setName(name) {
166
166
  this.name = name;
@@ -177,7 +177,7 @@ var MemberAccessExprFactory = class extends AstFactory {
177
177
  member;
178
178
  operand;
179
179
  constructor() {
180
- super({ type: require_ast.MemberAccessExpr });
180
+ super({ type: require_ast.MemberAccessExpr.$type });
181
181
  }
182
182
  setMember(target) {
183
183
  this.member = target;
@@ -194,7 +194,7 @@ var ObjectExprFactory = class extends AstFactory {
194
194
  fields = [];
195
195
  constructor() {
196
196
  super({
197
- type: require_ast.ObjectExpr,
197
+ type: require_ast.ObjectExpr.$type,
198
198
  node: { fields: [] }
199
199
  });
200
200
  }
@@ -208,7 +208,7 @@ var FieldInitializerFactory = class extends AstFactory {
208
208
  name;
209
209
  value;
210
210
  constructor() {
211
- super({ type: require_ast.FieldInitializer });
211
+ super({ type: require_ast.FieldInitializer.$type });
212
212
  }
213
213
  setName(name) {
214
214
  this.name = name;
@@ -226,7 +226,7 @@ var InvocationExprFactory = class extends AstFactory {
226
226
  function;
227
227
  constructor() {
228
228
  super({
229
- type: require_ast.InvocationExpr,
229
+ type: require_ast.InvocationExpr.$type,
230
230
  node: { args: [] }
231
231
  });
232
232
  }
@@ -247,7 +247,7 @@ var InvocationExprFactory = class extends AstFactory {
247
247
  var ArgumentFactory = class extends AstFactory {
248
248
  value;
249
249
  constructor() {
250
- super({ type: require_ast.Argument });
250
+ super({ type: require_ast.Argument.$type });
251
251
  }
252
252
  setValue(builder) {
253
253
  this.value = builder(ExpressionBuilder());
@@ -259,7 +259,7 @@ var ArrayExprFactory = class extends AstFactory {
259
259
  items = [];
260
260
  constructor() {
261
261
  super({
262
- type: require_ast.ArrayExpr,
262
+ type: require_ast.ArrayExpr.$type,
263
263
  node: { items: [] }
264
264
  });
265
265
  }
@@ -274,7 +274,7 @@ var BinaryExprFactory = class extends AstFactory {
274
274
  right;
275
275
  left;
276
276
  constructor() {
277
- super({ type: require_ast.BinaryExpr });
277
+ super({ type: require_ast.BinaryExpr.$type });
278
278
  }
279
279
  setOperator(operator) {
280
280
  this.operator = operator;
@@ -299,7 +299,7 @@ var DataFieldAttributeFactory = class extends AstFactory {
299
299
  decl;
300
300
  constructor() {
301
301
  super({
302
- type: require_ast.DataFieldAttribute,
302
+ type: require_ast.DataFieldAttribute.$type,
303
303
  node: { args: [] }
304
304
  });
305
305
  }
@@ -325,7 +325,7 @@ var DataModelAttributeFactory = class extends AstFactory {
325
325
  decl;
326
326
  constructor() {
327
327
  super({
328
- type: require_ast.DataModelAttribute,
328
+ type: require_ast.DataModelAttribute.$type,
329
329
  node: { args: [] }
330
330
  });
331
331
  }
@@ -350,7 +350,7 @@ var AttributeArgFactory = class extends AstFactory {
350
350
  name = "";
351
351
  value;
352
352
  constructor() {
353
- super({ type: require_ast.AttributeArg });
353
+ super({ type: require_ast.AttributeArg.$type });
354
354
  }
355
355
  setName(name) {
356
356
  this.name = name;
@@ -368,7 +368,7 @@ var InternalAttributeFactory = class extends AstFactory {
368
368
  args = [];
369
369
  constructor() {
370
370
  super({
371
- type: require_ast.InternalAttribute,
371
+ type: require_ast.InternalAttribute.$type,
372
372
  node: { args: [] }
373
373
  });
374
374
  }
@@ -396,7 +396,7 @@ var AttributeParamFactory = class extends AstFactory {
396
396
  type;
397
397
  constructor() {
398
398
  super({
399
- type: require_ast.AttributeParam,
399
+ type: require_ast.AttributeParam.$type,
400
400
  node: {
401
401
  comments: [],
402
402
  attributes: []
@@ -435,7 +435,7 @@ var AttributeParamTypeFactory = class extends AstFactory {
435
435
  reference;
436
436
  type;
437
437
  constructor() {
438
- super({ type: require_ast.AttributeParamType });
438
+ super({ type: require_ast.AttributeParamType.$type });
439
439
  }
440
440
  setArray(array) {
441
441
  this.array = array;
@@ -468,7 +468,7 @@ var AttributeFactory = class extends AstFactory {
468
468
  params = [];
469
469
  constructor() {
470
470
  super({
471
- type: require_ast.Attribute,
471
+ type: require_ast.Attribute.$type,
472
472
  node: {
473
473
  comments: [],
474
474
  attributes: [],
@@ -538,7 +538,7 @@ var DataModelFactory = class extends AstFactory {
538
538
  name;
539
539
  constructor() {
540
540
  super({
541
- type: require_ast.DataModel,
541
+ type: require_ast.DataModel.$type,
542
542
  node: {
543
543
  attributes: [],
544
544
  comments: [],
@@ -595,7 +595,7 @@ var DataFieldFactory = class extends AstFactory {
595
595
  type;
596
596
  constructor() {
597
597
  super({
598
- type: require_ast.DataField,
598
+ type: require_ast.DataField.$type,
599
599
  node: {
600
600
  attributes: [],
601
601
  comments: []
@@ -637,7 +637,7 @@ var DataFieldTypeFactory = class extends AstFactory {
637
637
  type;
638
638
  unsupported;
639
639
  constructor() {
640
- super({ type: require_ast.DataFieldType });
640
+ super({ type: require_ast.DataFieldType.$type });
641
641
  }
642
642
  setArray(array) {
643
643
  this.array = array;
@@ -671,7 +671,7 @@ var DataFieldTypeFactory = class extends AstFactory {
671
671
  var UnsupportedFieldTypeFactory = class extends AstFactory {
672
672
  value;
673
673
  constructor() {
674
- super({ type: require_ast.UnsupportedFieldType });
674
+ super({ type: require_ast.UnsupportedFieldType.$type });
675
675
  }
676
676
  setValue(builder) {
677
677
  this.value = builder(ExpressionBuilder());
@@ -684,7 +684,7 @@ var ModelFactory = class extends AstFactory {
684
684
  imports = [];
685
685
  constructor() {
686
686
  super({
687
- type: require_ast.Model,
687
+ type: require_ast.Model.$type,
688
688
  node: {
689
689
  declarations: [],
690
690
  imports: []
@@ -705,7 +705,7 @@ var ModelFactory = class extends AstFactory {
705
705
  var ModelImportFactory = class extends AstFactory {
706
706
  path;
707
707
  constructor() {
708
- super({ type: require_ast.ModelImport });
708
+ super({ type: require_ast.ModelImport.$type });
709
709
  }
710
710
  setPath(path) {
711
711
  this.path = path;
@@ -720,7 +720,7 @@ var EnumFactory = class extends AstFactory {
720
720
  attributes = [];
721
721
  constructor() {
722
722
  super({
723
- type: require_ast.Enum,
723
+ type: require_ast.Enum.$type,
724
724
  node: {
725
725
  comments: [],
726
726
  fields: [],
@@ -750,7 +750,7 @@ var EnumFieldFactory = class extends AstFactory {
750
750
  attributes = [];
751
751
  constructor() {
752
752
  super({
753
- type: require_ast.EnumField,
753
+ type: require_ast.EnumField.$type,
754
754
  node: {
755
755
  comments: [],
756
756
  attributes: []
@@ -1 +1 @@
1
- {"version":3,"file":"factory.cjs","names":["ThisExpr","NullExpr","NumberLiteral","StringLiteral","BooleanLiteral","UnaryExpr","ReferenceExpr","ReferenceArg","MemberAccessExpr","ObjectExpr","FieldInitializer","InvocationExpr","Argument","ArrayExpr","BinaryExpr","DataFieldAttribute","DataModelAttribute","AttributeArg","InternalAttribute","AttributeParam","AttributeParamType","Attribute","DataModel","DataField","DataFieldType","UnsupportedFieldType","Model","ModelImport","Enum","EnumField"],"sources":["../src/factory/ast-factory.ts","../src/factory/primitives.ts","../src/factory/expression.ts","../src/factory/attribute.ts","../src/factory/declaration.ts"],"sourcesContent":["import { type AstNode } from '../ast';\n\nexport type ContainerProps<T extends AstNode | undefined> = {\n $container: T;\n $containerProperty?: string;\n $containerIndex?: number;\n};\n\ntype NodeFactoriesFor<N> = {\n [K in keyof N as {} extends Pick<N, K> ? never : K]: N[K] extends (infer U)[]\n ? (AstFactory<U extends AstNode ? U : AstNode> | U)[]\n : AstFactory<N[K] extends AstNode ? N[K] : AstNode> | N[K];\n} & {\n [K in keyof N as {} extends Pick<N, K> ? K : never]?: N[K] extends (infer U)[]\n ? (AstFactory<U extends AstNode ? U : AstNode> | U)[]\n : AstFactory<N[K] extends AstNode ? N[K] : AstNode> | N[K];\n};\n\nexport abstract class AstFactory<T extends AstNode = AstNode> {\n node = {} as T;\n constructor({ type, node }: { type: T['$type']; node?: Partial<T> }) {\n (this.node as any).$type = type;\n if (node) {\n this.update(node);\n }\n }\n setContainer(container: T['$container']) {\n (this.node as any).$container = container;\n return this;\n }\n\n get(params?: ContainerProps<T['$container']>): T {\n if (params) this.update(params as any);\n return this.node;\n }\n update(nodeArg: Partial<T | NodeFactoriesFor<T>>): T {\n const keys = Object.keys(nodeArg as object);\n keys.forEach((key) => {\n const child = (nodeArg as any)[key];\n if (child instanceof AstFactory) {\n (this.node as any)[key] = child.get({ $container: this.node as any });\n } else if (Array.isArray(child)) {\n (this.node as any)[key] = child.map((item: any) =>\n item instanceof AstFactory ? item.get({ $container: this.node as any }) : item,\n );\n } else {\n (this.node as any)[key] = child;\n }\n });\n return this.node;\n }\n}\n","import { AstFactory } from './ast-factory';\nimport { BooleanLiteral, NullExpr, NumberLiteral, StringLiteral, ThisExpr } from '../ast';\n\nexport class ThisExprFactory extends AstFactory<ThisExpr> {\n constructor() {\n super({ type: ThisExpr, node: { value: 'this' } });\n }\n}\n\nexport class NullExprFactory extends AstFactory<NullExpr> {\n constructor() {\n super({ type: NullExpr, node: { value: 'null' } });\n }\n}\n\nexport class NumberLiteralFactory extends AstFactory<NumberLiteral> {\n value?: number | string;\n\n constructor() {\n super({ type: NumberLiteral });\n }\n\n setValue(value: number | string) {\n this.value = value;\n this.update({\n value: this.value.toString(),\n });\n return this;\n }\n}\n\nexport class StringLiteralFactory extends AstFactory<StringLiteral> {\n value?: string;\n\n constructor() {\n super({ type: StringLiteral });\n }\n\n setValue(value: string) {\n this.value = value;\n this.update({\n value: this.value,\n });\n return this;\n }\n}\nexport class BooleanLiteralFactory extends AstFactory<BooleanLiteral> {\n value?: boolean;\n\n constructor() {\n super({ type: BooleanLiteral });\n }\n\n setValue(value: boolean) {\n this.value = value;\n this.update({\n value: this.value,\n });\n return this;\n }\n}\n","import type { Reference } from 'langium';\nimport { AstFactory } from './ast-factory';\nimport {\n Argument,\n ArrayExpr,\n BinaryExpr,\n FieldInitializer,\n FunctionDecl,\n InvocationExpr,\n MemberAccessExpr,\n MemberAccessTarget,\n ObjectExpr,\n ReferenceArg,\n ReferenceExpr,\n ReferenceTarget,\n UnaryExpr,\n type Expression,\n type RegularID,\n} from '../ast';\nimport {\n BooleanLiteralFactory,\n NullExprFactory,\n NumberLiteralFactory,\n StringLiteralFactory,\n ThisExprFactory,\n} from './primitives';\n\nexport const ExpressionBuilder = () =>\n ({\n get ArrayExpr() {\n return new ArrayExprFactory();\n },\n get BinaryExpr() {\n return new BinaryExprFactory();\n },\n get BooleanLiteral() {\n return new BooleanLiteralFactory();\n },\n get InvocationExpr() {\n return new InvocationExprFactory();\n },\n get MemberAccessExpr() {\n return new MemberAccessExprFactory();\n },\n get NullExpr() {\n return new NullExprFactory();\n },\n get NumberLiteral() {\n return new NumberLiteralFactory();\n },\n get ObjectExpr() {\n return new ObjectExprFactory();\n },\n get ReferenceExpr() {\n return new ReferenceExprFactory();\n },\n get StringLiteral() {\n return new StringLiteralFactory();\n },\n get ThisExpr() {\n return new ThisExprFactory();\n },\n get UnaryExpr() {\n return new UnaryExprFactory();\n },\n }) satisfies ExpressionBuilderType;\ntype ExpressionBuilderType<T extends Expression = Expression> = {\n [K in T['$type']]: AstFactory<Extract<T, { $type: K }>>;\n};\n\ntype ExpressionFactoryMap = ReturnType<typeof ExpressionBuilder>;\n\nexport type ExpressionBuilder<T extends Expression = Expression> = Pick<\n ExpressionFactoryMap,\n Extract<T['$type'], keyof ExpressionFactoryMap>\n>;\n\nexport class UnaryExprFactory extends AstFactory<UnaryExpr> {\n operand?: AstFactory<Expression>;\n\n constructor() {\n super({ type: UnaryExpr, node: { operator: '!' } });\n }\n\n setOperand(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.operand = builder(ExpressionBuilder());\n this.update({\n operand: this.operand,\n });\n return this;\n }\n}\n\nexport class ReferenceExprFactory extends AstFactory<ReferenceExpr> {\n target?: Reference<ReferenceTarget>;\n args: ReferenceArgFactory[] = [];\n\n constructor() {\n super({ type: ReferenceExpr, node: { args: [] } });\n }\n\n setTarget(target: ReferenceTarget) {\n this.target = {\n $refText: target.name,\n ref: target,\n };\n this.update({\n target: this.target,\n });\n return this;\n }\n\n addArg(builder: (a: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const arg = new ReferenceArgFactory().setValue(builder);\n if (name) {\n arg.setName(name);\n }\n this.args.push(arg);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class ReferenceArgFactory extends AstFactory<ReferenceArg> {\n name?: string;\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: ReferenceArg });\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setValue(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value,\n });\n return this;\n }\n}\n\nexport class MemberAccessExprFactory extends AstFactory<MemberAccessExpr> {\n member?: Reference<MemberAccessTarget>;\n operand?: AstFactory<Expression>;\n\n constructor() {\n super({ type: MemberAccessExpr });\n }\n\n setMember(target: Reference<MemberAccessTarget>) {\n this.member = target;\n this.update({\n member: this.member,\n });\n return this;\n }\n\n setOperand(builder: (b: ExpressionBuilder) => AstFactory<Expression>) {\n this.operand = builder(ExpressionBuilder());\n this.update({\n operand: this.operand,\n });\n return this;\n }\n}\n\nexport class ObjectExprFactory extends AstFactory<ObjectExpr> {\n fields: FieldInitializerFactory[] = [];\n\n constructor() {\n super({ type: ObjectExpr, node: { fields: [] } });\n }\n\n addField(builder: (b: FieldInitializerFactory) => FieldInitializerFactory) {\n this.fields.push(builder(new FieldInitializerFactory()));\n this.update({\n fields: this.fields,\n });\n return this;\n }\n}\n\nexport class FieldInitializerFactory extends AstFactory<FieldInitializer> {\n name?: RegularID;\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: FieldInitializer });\n }\n\n setName(name: RegularID) {\n this.name = name;\n this.update({\n name: this.name!,\n });\n return this;\n }\n\n setValue(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value!,\n });\n return this;\n }\n}\n\nexport class InvocationExprFactory extends AstFactory<InvocationExpr> {\n args: ArgumentFactory[] = [];\n function?: Reference<FunctionDecl>;\n\n constructor() {\n super({ type: InvocationExpr, node: { args: [] } });\n }\n\n addArg(builder: (arg: ArgumentFactory) => ArgumentFactory) {\n this.args.push(builder(new ArgumentFactory()));\n this.update({\n args: this.args,\n });\n return this;\n }\n\n setFunction(value: FunctionDecl) {\n this.function = {\n $refText: value.name,\n ref: value,\n };\n this.update({\n function: this.function!,\n });\n return this;\n }\n}\n\nexport class ArgumentFactory extends AstFactory<Argument> {\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: Argument });\n }\n\n setValue(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value!,\n });\n return this;\n }\n}\n\nexport class ArrayExprFactory extends AstFactory<ArrayExpr> {\n items: AstFactory<Expression>[] = [];\n\n constructor() {\n super({ type: ArrayExpr, node: { items: [] } });\n }\n\n addItem(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.items.push(builder(ExpressionBuilder()));\n this.update({\n items: this.items,\n });\n return this;\n }\n}\n\nexport class BinaryExprFactory extends AstFactory<BinaryExpr> {\n operator?: BinaryExpr['operator'];\n right?: AstFactory<Expression>;\n left?: AstFactory<Expression>;\n // TODO: add support for CollectionPredicateBinding\n\n constructor() {\n super({ type: BinaryExpr });\n }\n\n setOperator(operator: BinaryExpr['operator']) {\n this.operator = operator;\n this.update({\n operator: this.operator!,\n });\n return this;\n }\n setRight(builder: (arg: ExpressionBuilder) => AstFactory<Expression>) {\n this.right = builder(ExpressionBuilder());\n this.update({\n right: this.right!,\n });\n return this;\n }\n setLeft(builder: (arg: ExpressionBuilder) => AstFactory<Expression>) {\n this.left = builder(ExpressionBuilder());\n this.update({\n left: this.left!,\n });\n return this;\n }\n}\n","import { AstFactory } from './ast-factory';\nimport {\n Attribute,\n AttributeArg,\n AttributeParam,\n AttributeParamType,\n DataFieldAttribute,\n DataModelAttribute,\n Expression,\n InternalAttribute,\n TypeDeclaration,\n type Reference,\n type RegularID,\n} from '../ast';\nimport { ExpressionBuilder } from './expression';\n\nexport class DataFieldAttributeFactory extends AstFactory<DataFieldAttribute> {\n args: AttributeArgFactory[] = [];\n decl?: Reference<Attribute>;\n constructor() {\n super({ type: DataFieldAttribute, node: { args: [] } });\n }\n setDecl(decl: Attribute) {\n if (!decl) {\n throw new Error('Attribute declaration is required');\n }\n this.decl = {\n $refText: decl.name,\n ref: decl,\n };\n this.update({\n decl: this.decl,\n });\n return this;\n }\n addArg(builder: (b: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const factory = new AttributeArgFactory().setValue(builder);\n if (name) {\n factory.setName(name);\n }\n this.args.push(factory);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class DataModelAttributeFactory extends AstFactory<DataModelAttribute> {\n args: AttributeArgFactory[] = [];\n decl?: Reference<Attribute>;\n constructor() {\n super({ type: DataModelAttribute, node: { args: [] } });\n }\n setDecl(decl: Attribute) {\n if (!decl) {\n throw new Error('Attribute declaration is required');\n }\n this.decl = {\n $refText: decl.name,\n ref: decl,\n };\n this.update({\n decl: this.decl,\n });\n return this;\n }\n addArg(builder: (b: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const factory = new AttributeArgFactory().setValue(builder);\n if (name) {\n factory.setName(name);\n }\n this.args.push(factory);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class AttributeArgFactory extends AstFactory<AttributeArg> {\n name?: RegularID = '';\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: AttributeArg });\n }\n\n setName(name: RegularID) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setValue(builder: (b: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value,\n });\n return this;\n }\n}\n\nexport class InternalAttributeFactory extends AstFactory<InternalAttribute> {\n decl?: Reference<Attribute>;\n args: AttributeArgFactory[] = [];\n\n constructor() {\n super({ type: InternalAttribute, node: { args: [] } });\n }\n\n setDecl(decl: Attribute) {\n this.decl = {\n $refText: decl.name,\n ref: decl,\n };\n this.update({\n decl: this.decl,\n });\n return this;\n }\n\n addArg(builder: (b: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const factory = new AttributeArgFactory().setValue(builder);\n if (name) {\n factory.setName(name);\n }\n this.args.push(factory);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class AttributeParamFactory extends AstFactory<AttributeParam> {\n attributes: InternalAttributeFactory[] = [];\n comments: string[] = [];\n default?: boolean;\n name?: RegularID;\n type?: AttributeParamTypeFactory;\n\n constructor() {\n super({\n type: AttributeParam,\n node: {\n comments: [],\n attributes: [],\n },\n });\n }\n\n addAttribute(builder: (b: InternalAttributeFactory) => InternalAttributeFactory) {\n this.attributes.push(builder(new InternalAttributeFactory()));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n setDefault(defaultValue: boolean) {\n this.default = defaultValue;\n this.update({\n default: this.default,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setType(builder: (b: AttributeParamTypeFactory) => AttributeParamTypeFactory) {\n this.type = builder(new AttributeParamTypeFactory());\n this.update({\n type: this.type,\n });\n return this;\n }\n}\n\nexport class AttributeParamTypeFactory extends AstFactory<AttributeParamType> {\n array?: boolean;\n optional?: boolean;\n reference?: Reference<TypeDeclaration>;\n type?: AttributeParamType['type'];\n constructor() {\n super({ type: AttributeParamType });\n }\n setArray(array: boolean) {\n this.array = array;\n this.update({\n array: this.array,\n });\n return this;\n }\n\n setOptional(optional: boolean) {\n this.optional = optional;\n this.update({\n optional: this.optional,\n });\n return this;\n }\n\n setReference(reference: TypeDeclaration) {\n this.reference = {\n $refText: reference.name,\n ref: reference,\n };\n this.update({\n reference: this.reference,\n });\n return this;\n }\n\n setType(type: AttributeParamType['type']) {\n this.type = type;\n this.update({\n type: this.type,\n });\n return this;\n }\n}\n\nexport class AttributeFactory extends AstFactory<Attribute> {\n name?: string;\n comments: string[] = [];\n attributes: InternalAttributeFactory[] = [];\n params: AttributeParamFactory[] = [];\n\n constructor() {\n super({ type: Attribute, node: { comments: [], attributes: [], params: [] } });\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n addAttribute(builder: (b: InternalAttributeFactory) => InternalAttributeFactory) {\n this.attributes.push(builder(new InternalAttributeFactory()));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n addParam(builder: (b: AttributeParamFactory) => AttributeParamFactory) {\n this.params.push(builder(new AttributeParamFactory()));\n this.update({\n params: this.params,\n });\n return this;\n }\n}\n","import { AstFactory } from './ast-factory';\nimport { AbstractDeclaration, type Reference } from '../ast';\nimport {\n type BuiltinType,\n DataField,\n DataFieldType,\n DataModel,\n Enum,\n EnumField,\n LiteralExpr,\n Model,\n ModelImport,\n type RegularID,\n type RegularIDWithTypeNames,\n TypeDeclaration,\n type TypeDef,\n UnsupportedFieldType,\n} from '../generated/ast';\nimport { AttributeFactory, DataFieldAttributeFactory, DataModelAttributeFactory } from './attribute';\nimport { ExpressionBuilder } from './expression';\nexport const DeclarationBuilder = () =>\n ({\n get Attribute() {\n return new AttributeFactory();\n },\n get DataModel() {\n return new DataModelFactory();\n },\n get DataSource(): any {\n throw new Error('DataSource is not implemented');\n },\n get Enum() {\n return new EnumFactory();\n },\n get FunctionDecl(): any {\n throw new Error('FunctionDecl is not implemented');\n },\n get GeneratorDecl(): any {\n throw new Error('GeneratorDecl is not implemented');\n },\n get Plugin(): any {\n throw new Error('Plugin is not implemented');\n },\n get Procedure(): any {\n throw new Error('Procedure is not implemented');\n },\n get TypeDef(): any {\n throw new Error('TypeDef is not implemented');\n },\n }) satisfies DeclarationBuilderType;\ntype DeclarationBuilderType<T extends AbstractDeclaration = AbstractDeclaration> = {\n [K in T['$type']]: AstFactory<Extract<T, { $type: K }>>;\n};\ntype DeclarationBuilderMap = ReturnType<typeof DeclarationBuilder>;\n\nexport type DeclarationBuilder<T extends AbstractDeclaration = AbstractDeclaration> = Pick<\n DeclarationBuilderMap,\n Extract<T['$type'], keyof DeclarationBuilderMap>\n>;\n\nexport class DataModelFactory extends AstFactory<DataModel> {\n attributes: DataModelAttributeFactory[] = [];\n baseModel?: Reference<DataModel>;\n comments: string[] = [];\n fields: DataFieldFactory[] = [];\n isView?: boolean;\n mixins: Reference<TypeDef>[] = [];\n name?: RegularID;\n\n constructor() {\n super({\n type: DataModel,\n node: {\n attributes: [],\n comments: [],\n fields: [],\n mixins: [],\n },\n });\n }\n\n addAttribute(builder: (attr: DataModelAttributeFactory) => DataModelAttributeFactory) {\n this.attributes.push(builder(new DataModelAttributeFactory()).setContainer(this.node));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setBaseModel(model: Reference<DataModel>) {\n this.baseModel = model;\n this.update({\n baseModel: this.baseModel,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n addComment(comment: string) {\n this.comments.push(comment);\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n addField(builder: (field: DataFieldFactory) => DataFieldFactory) {\n this.fields.push(builder(new DataFieldFactory()).setContainer(this.node));\n this.update({\n fields: this.fields,\n });\n return this;\n }\n\n setIsView(isView: boolean) {\n this.isView = isView;\n this.update({\n isView: this.isView,\n });\n return this;\n }\n\n addMixin(mixin: Reference<TypeDef>) {\n this.mixins.push(mixin);\n this.update({\n mixins: this.mixins,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n}\n\nexport class DataFieldFactory extends AstFactory<DataField> {\n attributes: DataFieldAttributeFactory[] = [];\n comments: string[] = [];\n name?: string;\n type?: DataFieldTypeFactory;\n\n constructor() {\n super({ type: DataField, node: { attributes: [], comments: [] } });\n }\n\n addAttribute(\n builder: ((attr: DataFieldAttributeFactory) => DataFieldAttributeFactory) | DataFieldAttributeFactory,\n ) {\n if (builder instanceof DataFieldAttributeFactory) {\n builder.setContainer(this.node);\n this.attributes.push(builder);\n } else {\n const attr = builder(new DataFieldAttributeFactory());\n attr.setContainer(this.node);\n this.attributes.push(attr);\n }\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setType(builder: (type: DataFieldTypeFactory) => DataFieldTypeFactory) {\n this.type = builder(new DataFieldTypeFactory()).setContainer(this.node);\n this.update({\n type: this.type,\n });\n return this;\n }\n}\n\nexport class DataFieldTypeFactory extends AstFactory<DataFieldType> {\n array?: boolean;\n optional?: boolean;\n reference?: Reference<TypeDeclaration>;\n type?: BuiltinType;\n unsupported?: UnsupportedFieldTypeFactory;\n\n constructor() {\n super({ type: DataFieldType });\n }\n\n setArray(array: boolean) {\n this.array = array;\n this.update({\n array: this.array,\n });\n return this;\n }\n\n setOptional(optional: boolean) {\n this.optional = optional;\n this.update({\n optional: this.optional,\n });\n return this;\n }\n\n setReference(reference: TypeDeclaration) {\n this.reference = {\n $refText: reference.name,\n ref: reference,\n };\n this.update({\n reference: this.reference,\n });\n return this;\n }\n\n setType(type: BuiltinType) {\n this.type = type;\n this.update({\n type: this.type,\n });\n return this;\n }\n\n setUnsupported(builder: (a: UnsupportedFieldTypeFactory) => UnsupportedFieldTypeFactory) {\n this.unsupported = builder(new UnsupportedFieldTypeFactory()).setContainer(this.node);\n this.update({\n unsupported: this.unsupported,\n });\n return this;\n }\n}\n\nexport class UnsupportedFieldTypeFactory extends AstFactory<UnsupportedFieldType> {\n value?: AstFactory<LiteralExpr>;\n constructor() {\n super({ type: UnsupportedFieldType });\n }\n setValue(builder: (value: ExpressionBuilder<LiteralExpr>) => AstFactory<LiteralExpr>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value!,\n });\n return this;\n }\n}\n\nexport class ModelFactory extends AstFactory<Model> {\n declarations: AstFactory<AbstractDeclaration>[] = [];\n imports: ModelImportFactory[] = [];\n constructor() {\n super({ type: Model, node: { declarations: [], imports: [] } });\n }\n addImport(builder: (b: ModelImportFactory) => ModelImportFactory) {\n this.imports.push(builder(new ModelImportFactory()).setContainer(this.node));\n this.update({\n imports: this.imports,\n });\n return this;\n }\n addDeclaration(builder: (b: DeclarationBuilder) => AstFactory<AbstractDeclaration>) {\n this.declarations.push(builder(DeclarationBuilder()).setContainer(this.node));\n this.update({\n declarations: this.declarations,\n });\n return this;\n }\n}\n\nexport class ModelImportFactory extends AstFactory<ModelImport> {\n path?: string | undefined;\n\n constructor() {\n super({ type: ModelImport });\n }\n\n setPath(path: string) {\n this.path = path;\n this.update({\n path: this.path,\n });\n return this;\n }\n}\n\nexport class EnumFactory extends AstFactory<Enum> {\n name?: string;\n comments: string[] = [];\n fields: EnumFieldFactory[] = [];\n attributes: DataModelAttributeFactory[] = [];\n\n constructor() {\n super({ type: Enum, node: { comments: [], fields: [], attributes: [] } });\n }\n\n addField(builder: (b: EnumFieldFactory) => EnumFieldFactory) {\n this.fields.push(builder(new EnumFieldFactory()).setContainer(this.node));\n this.update({\n fields: this.fields,\n });\n return this;\n }\n\n addAttribute(builder: (b: DataModelAttributeFactory) => DataModelAttributeFactory) {\n this.attributes.push(builder(new DataModelAttributeFactory()).setContainer(this.node));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n}\n\nexport class EnumFieldFactory extends AstFactory<EnumField> {\n name?: RegularIDWithTypeNames;\n comments: string[] = [];\n attributes: DataFieldAttributeFactory[] = [];\n\n constructor() {\n super({ type: EnumField, node: { comments: [], attributes: [] } });\n }\n\n setName(name: RegularIDWithTypeNames) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n addAttribute(builder: (b: DataFieldAttributeFactory) => DataFieldAttributeFactory) {\n this.attributes.push(builder(new DataFieldAttributeFactory()).setContainer(this.node));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n addComment(comment: string) {\n this.comments.push(comment);\n this.update({\n comments: this.comments,\n });\n return this;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"factory.cjs","names":["ThisExpr","NullExpr","NumberLiteral","StringLiteral","BooleanLiteral","UnaryExpr","ReferenceExpr","ReferenceArg","MemberAccessExpr","ObjectExpr","FieldInitializer","InvocationExpr","Argument","ArrayExpr","BinaryExpr","DataFieldAttribute","DataModelAttribute","AttributeArg","InternalAttribute","AttributeParam","AttributeParamType","Attribute","DataModel","DataField","DataFieldType","UnsupportedFieldType","Model","ModelImport","Enum","EnumField"],"sources":["../src/factory/ast-factory.ts","../src/factory/primitives.ts","../src/factory/expression.ts","../src/factory/attribute.ts","../src/factory/declaration.ts"],"sourcesContent":["import { type AstNode } from '../ast';\n\nexport type ContainerProps<T extends AstNode | undefined> = {\n $container: T;\n $containerProperty?: string;\n $containerIndex?: number;\n};\n\ntype NodeFactoriesFor<N> = {\n [K in keyof N as {} extends Pick<N, K> ? never : K]: N[K] extends (infer U)[]\n ? (AstFactory<U extends AstNode ? U : AstNode> | U)[]\n : AstFactory<N[K] extends AstNode ? N[K] : AstNode> | N[K];\n} & {\n [K in keyof N as {} extends Pick<N, K> ? K : never]?: N[K] extends (infer U)[]\n ? (AstFactory<U extends AstNode ? U : AstNode> | U)[]\n : AstFactory<N[K] extends AstNode ? N[K] : AstNode> | N[K];\n};\n\nexport abstract class AstFactory<T extends AstNode = AstNode> {\n node = {} as T;\n constructor({ type, node }: { type: T['$type']; node?: Partial<T> }) {\n (this.node as any).$type = type;\n if (node) {\n this.update(node);\n }\n }\n setContainer(container: T['$container']) {\n (this.node as any).$container = container;\n return this;\n }\n\n get(params?: ContainerProps<T['$container']>): T {\n if (params) this.update(params as any);\n return this.node;\n }\n update(nodeArg: Partial<T | NodeFactoriesFor<T>>): T {\n const keys = Object.keys(nodeArg as object);\n keys.forEach((key) => {\n const child = (nodeArg as any)[key];\n if (child instanceof AstFactory) {\n (this.node as any)[key] = child.get({ $container: this.node as any });\n } else if (Array.isArray(child)) {\n (this.node as any)[key] = child.map((item: any) =>\n item instanceof AstFactory ? item.get({ $container: this.node as any }) : item,\n );\n } else {\n (this.node as any)[key] = child;\n }\n });\n return this.node;\n }\n}\n","import { AstFactory } from './ast-factory';\nimport { BooleanLiteral, NullExpr, NumberLiteral, StringLiteral, ThisExpr } from '../ast';\n\nexport class ThisExprFactory extends AstFactory<ThisExpr> {\n constructor() {\n super({ type: ThisExpr.$type, node: { value: 'this' } });\n }\n}\n\nexport class NullExprFactory extends AstFactory<NullExpr> {\n constructor() {\n super({ type: NullExpr.$type, node: { value: 'null' } });\n }\n}\n\nexport class NumberLiteralFactory extends AstFactory<NumberLiteral> {\n value?: number | string;\n\n constructor() {\n super({ type: NumberLiteral.$type });\n }\n\n setValue(value: number | string) {\n this.value = value;\n this.update({\n value: this.value.toString(),\n });\n return this;\n }\n}\n\nexport class StringLiteralFactory extends AstFactory<StringLiteral> {\n value?: string;\n\n constructor() {\n super({ type: StringLiteral.$type });\n }\n\n setValue(value: string) {\n this.value = value;\n this.update({\n value: this.value,\n });\n return this;\n }\n}\nexport class BooleanLiteralFactory extends AstFactory<BooleanLiteral> {\n value?: boolean;\n\n constructor() {\n super({ type: BooleanLiteral.$type });\n }\n\n setValue(value: boolean) {\n this.value = value;\n this.update({\n value: this.value,\n });\n return this;\n }\n}\n","import type { Reference } from 'langium';\nimport { AstFactory } from './ast-factory';\nimport {\n Argument,\n ArrayExpr,\n BinaryExpr,\n FieldInitializer,\n FunctionDecl,\n InvocationExpr,\n MemberAccessExpr,\n MemberAccessTarget,\n ObjectExpr,\n ReferenceArg,\n ReferenceExpr,\n ReferenceTarget,\n UnaryExpr,\n type Expression,\n type RegularID,\n} from '../ast';\nimport {\n BooleanLiteralFactory,\n NullExprFactory,\n NumberLiteralFactory,\n StringLiteralFactory,\n ThisExprFactory,\n} from './primitives';\n\nexport const ExpressionBuilder = () =>\n ({\n get ArrayExpr() {\n return new ArrayExprFactory();\n },\n get BinaryExpr() {\n return new BinaryExprFactory();\n },\n get BooleanLiteral() {\n return new BooleanLiteralFactory();\n },\n get InvocationExpr() {\n return new InvocationExprFactory();\n },\n get MemberAccessExpr() {\n return new MemberAccessExprFactory();\n },\n get NullExpr() {\n return new NullExprFactory();\n },\n get NumberLiteral() {\n return new NumberLiteralFactory();\n },\n get ObjectExpr() {\n return new ObjectExprFactory();\n },\n get ReferenceExpr() {\n return new ReferenceExprFactory();\n },\n get StringLiteral() {\n return new StringLiteralFactory();\n },\n get ThisExpr() {\n return new ThisExprFactory();\n },\n get UnaryExpr() {\n return new UnaryExprFactory();\n },\n }) satisfies ExpressionBuilderType;\ntype ExpressionBuilderType<T extends Expression = Expression> = {\n [K in T['$type']]: AstFactory<Extract<T, { $type: K }>>;\n};\n\ntype ExpressionFactoryMap = ReturnType<typeof ExpressionBuilder>;\n\nexport type ExpressionBuilder<T extends Expression = Expression> = Pick<\n ExpressionFactoryMap,\n Extract<T['$type'], keyof ExpressionFactoryMap>\n>;\n\nexport class UnaryExprFactory extends AstFactory<UnaryExpr> {\n operand?: AstFactory<Expression>;\n\n constructor() {\n super({ type: UnaryExpr.$type, node: { operator: '!' } });\n }\n\n setOperand(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.operand = builder(ExpressionBuilder());\n this.update({\n operand: this.operand,\n });\n return this;\n }\n}\n\nexport class ReferenceExprFactory extends AstFactory<ReferenceExpr> {\n target?: Reference<ReferenceTarget>;\n args: ReferenceArgFactory[] = [];\n\n constructor() {\n super({ type: ReferenceExpr.$type, node: { args: [] } });\n }\n\n setTarget(target: ReferenceTarget) {\n this.target = {\n $refText: target.name,\n ref: target,\n };\n this.update({\n target: this.target,\n });\n return this;\n }\n\n addArg(builder: (a: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const arg = new ReferenceArgFactory().setValue(builder);\n if (name) {\n arg.setName(name);\n }\n this.args.push(arg);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class ReferenceArgFactory extends AstFactory<ReferenceArg> {\n name?: string;\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: ReferenceArg.$type });\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setValue(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value,\n });\n return this;\n }\n}\n\nexport class MemberAccessExprFactory extends AstFactory<MemberAccessExpr> {\n member?: Reference<MemberAccessTarget>;\n operand?: AstFactory<Expression>;\n\n constructor() {\n super({ type: MemberAccessExpr.$type });\n }\n\n setMember(target: Reference<MemberAccessTarget>) {\n this.member = target;\n this.update({\n member: this.member,\n });\n return this;\n }\n\n setOperand(builder: (b: ExpressionBuilder) => AstFactory<Expression>) {\n this.operand = builder(ExpressionBuilder());\n this.update({\n operand: this.operand,\n });\n return this;\n }\n}\n\nexport class ObjectExprFactory extends AstFactory<ObjectExpr> {\n fields: FieldInitializerFactory[] = [];\n\n constructor() {\n super({ type: ObjectExpr.$type, node: { fields: [] } });\n }\n\n addField(builder: (b: FieldInitializerFactory) => FieldInitializerFactory) {\n this.fields.push(builder(new FieldInitializerFactory()));\n this.update({\n fields: this.fields,\n });\n return this;\n }\n}\n\nexport class FieldInitializerFactory extends AstFactory<FieldInitializer> {\n name?: RegularID;\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: FieldInitializer.$type });\n }\n\n setName(name: RegularID) {\n this.name = name;\n this.update({\n name: this.name!,\n });\n return this;\n }\n\n setValue(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value!,\n });\n return this;\n }\n}\n\nexport class InvocationExprFactory extends AstFactory<InvocationExpr> {\n args: ArgumentFactory[] = [];\n function?: Reference<FunctionDecl>;\n\n constructor() {\n super({ type: InvocationExpr.$type, node: { args: [] } });\n }\n\n addArg(builder: (arg: ArgumentFactory) => ArgumentFactory) {\n this.args.push(builder(new ArgumentFactory()));\n this.update({\n args: this.args,\n });\n return this;\n }\n\n setFunction(value: FunctionDecl) {\n this.function = {\n $refText: value.name,\n ref: value,\n };\n this.update({\n function: this.function!,\n });\n return this;\n }\n}\n\nexport class ArgumentFactory extends AstFactory<Argument> {\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: Argument.$type });\n }\n\n setValue(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value!,\n });\n return this;\n }\n}\n\nexport class ArrayExprFactory extends AstFactory<ArrayExpr> {\n items: AstFactory<Expression>[] = [];\n\n constructor() {\n super({ type: ArrayExpr.$type, node: { items: [] } });\n }\n\n addItem(builder: (a: ExpressionBuilder) => AstFactory<Expression>) {\n this.items.push(builder(ExpressionBuilder()));\n this.update({\n items: this.items,\n });\n return this;\n }\n}\n\nexport class BinaryExprFactory extends AstFactory<BinaryExpr> {\n operator?: BinaryExpr['operator'];\n right?: AstFactory<Expression>;\n left?: AstFactory<Expression>;\n // TODO: add support for CollectionPredicateBinding\n\n constructor() {\n super({ type: BinaryExpr.$type });\n }\n\n setOperator(operator: BinaryExpr['operator']) {\n this.operator = operator;\n this.update({\n operator: this.operator!,\n });\n return this;\n }\n setRight(builder: (arg: ExpressionBuilder) => AstFactory<Expression>) {\n this.right = builder(ExpressionBuilder());\n this.update({\n right: this.right!,\n });\n return this;\n }\n setLeft(builder: (arg: ExpressionBuilder) => AstFactory<Expression>) {\n this.left = builder(ExpressionBuilder());\n this.update({\n left: this.left!,\n });\n return this;\n }\n}\n","import { AstFactory } from './ast-factory';\nimport {\n Attribute,\n AttributeArg,\n AttributeParam,\n AttributeParamType,\n DataFieldAttribute,\n DataModelAttribute,\n Expression,\n InternalAttribute,\n TypeDeclaration,\n type Reference,\n type RegularID,\n} from '../ast';\nimport { ExpressionBuilder } from './expression';\n\nexport class DataFieldAttributeFactory extends AstFactory<DataFieldAttribute> {\n args: AttributeArgFactory[] = [];\n decl?: Reference<Attribute>;\n constructor() {\n super({ type: DataFieldAttribute.$type, node: { args: [] } });\n }\n setDecl(decl: Attribute) {\n if (!decl) {\n throw new Error('Attribute declaration is required');\n }\n this.decl = {\n $refText: decl.name,\n ref: decl,\n };\n this.update({\n decl: this.decl,\n });\n return this;\n }\n addArg(builder: (b: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const factory = new AttributeArgFactory().setValue(builder);\n if (name) {\n factory.setName(name);\n }\n this.args.push(factory);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class DataModelAttributeFactory extends AstFactory<DataModelAttribute> {\n args: AttributeArgFactory[] = [];\n decl?: Reference<Attribute>;\n constructor() {\n super({ type: DataModelAttribute.$type, node: { args: [] } });\n }\n setDecl(decl: Attribute) {\n if (!decl) {\n throw new Error('Attribute declaration is required');\n }\n this.decl = {\n $refText: decl.name,\n ref: decl,\n };\n this.update({\n decl: this.decl,\n });\n return this;\n }\n addArg(builder: (b: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const factory = new AttributeArgFactory().setValue(builder);\n if (name) {\n factory.setName(name);\n }\n this.args.push(factory);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class AttributeArgFactory extends AstFactory<AttributeArg> {\n name?: RegularID = '';\n value?: AstFactory<Expression>;\n\n constructor() {\n super({ type: AttributeArg.$type });\n }\n\n setName(name: RegularID) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setValue(builder: (b: ExpressionBuilder) => AstFactory<Expression>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value,\n });\n return this;\n }\n}\n\nexport class InternalAttributeFactory extends AstFactory<InternalAttribute> {\n decl?: Reference<Attribute>;\n args: AttributeArgFactory[] = [];\n\n constructor() {\n super({ type: InternalAttribute.$type, node: { args: [] } });\n }\n\n setDecl(decl: Attribute) {\n this.decl = {\n $refText: decl.name,\n ref: decl,\n };\n this.update({\n decl: this.decl,\n });\n return this;\n }\n\n addArg(builder: (b: ExpressionBuilder) => AstFactory<Expression>, name?: string) {\n const factory = new AttributeArgFactory().setValue(builder);\n if (name) {\n factory.setName(name);\n }\n this.args.push(factory);\n this.update({\n args: this.args,\n });\n return this;\n }\n}\n\nexport class AttributeParamFactory extends AstFactory<AttributeParam> {\n attributes: InternalAttributeFactory[] = [];\n comments: string[] = [];\n default?: boolean;\n name?: RegularID;\n type?: AttributeParamTypeFactory;\n\n constructor() {\n super({\n type: AttributeParam.$type,\n node: {\n comments: [],\n attributes: [],\n },\n });\n }\n\n addAttribute(builder: (b: InternalAttributeFactory) => InternalAttributeFactory) {\n this.attributes.push(builder(new InternalAttributeFactory()));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n setDefault(defaultValue: boolean) {\n this.default = defaultValue;\n this.update({\n default: this.default,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setType(builder: (b: AttributeParamTypeFactory) => AttributeParamTypeFactory) {\n this.type = builder(new AttributeParamTypeFactory());\n this.update({\n type: this.type,\n });\n return this;\n }\n}\n\nexport class AttributeParamTypeFactory extends AstFactory<AttributeParamType> {\n array?: boolean;\n optional?: boolean;\n reference?: Reference<TypeDeclaration>;\n type?: AttributeParamType['type'];\n constructor() {\n super({ type: AttributeParamType.$type });\n }\n setArray(array: boolean) {\n this.array = array;\n this.update({\n array: this.array,\n });\n return this;\n }\n\n setOptional(optional: boolean) {\n this.optional = optional;\n this.update({\n optional: this.optional,\n });\n return this;\n }\n\n setReference(reference: TypeDeclaration) {\n this.reference = {\n $refText: reference.name,\n ref: reference,\n };\n this.update({\n reference: this.reference,\n });\n return this;\n }\n\n setType(type: AttributeParamType['type']) {\n this.type = type;\n this.update({\n type: this.type,\n });\n return this;\n }\n}\n\nexport class AttributeFactory extends AstFactory<Attribute> {\n name?: string;\n comments: string[] = [];\n attributes: InternalAttributeFactory[] = [];\n params: AttributeParamFactory[] = [];\n\n constructor() {\n super({ type: Attribute.$type, node: { comments: [], attributes: [], params: [] } });\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n addAttribute(builder: (b: InternalAttributeFactory) => InternalAttributeFactory) {\n this.attributes.push(builder(new InternalAttributeFactory()));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n addParam(builder: (b: AttributeParamFactory) => AttributeParamFactory) {\n this.params.push(builder(new AttributeParamFactory()));\n this.update({\n params: this.params,\n });\n return this;\n }\n}\n","import { AstFactory } from './ast-factory';\nimport { AbstractDeclaration, type Reference } from '../ast';\nimport {\n type BuiltinType,\n DataField,\n DataFieldType,\n DataModel,\n Enum,\n EnumField,\n LiteralExpr,\n Model,\n ModelImport,\n type RegularID,\n type RegularIDWithTypeNames,\n TypeDeclaration,\n type TypeDef,\n UnsupportedFieldType,\n} from '../generated/ast';\nimport { AttributeFactory, DataFieldAttributeFactory, DataModelAttributeFactory } from './attribute';\nimport { ExpressionBuilder } from './expression';\nexport const DeclarationBuilder = () =>\n ({\n get Attribute() {\n return new AttributeFactory();\n },\n get DataModel() {\n return new DataModelFactory();\n },\n get DataSource(): any {\n throw new Error('DataSource is not implemented');\n },\n get Enum() {\n return new EnumFactory();\n },\n get FunctionDecl(): any {\n throw new Error('FunctionDecl is not implemented');\n },\n get GeneratorDecl(): any {\n throw new Error('GeneratorDecl is not implemented');\n },\n get Plugin(): any {\n throw new Error('Plugin is not implemented');\n },\n get Procedure(): any {\n throw new Error('Procedure is not implemented');\n },\n get TypeDef(): any {\n throw new Error('TypeDef is not implemented');\n },\n }) satisfies DeclarationBuilderType;\ntype DeclarationBuilderType<T extends AbstractDeclaration = AbstractDeclaration> = {\n [K in T['$type']]: AstFactory<Extract<T, { $type: K }>>;\n};\ntype DeclarationBuilderMap = ReturnType<typeof DeclarationBuilder>;\n\nexport type DeclarationBuilder<T extends AbstractDeclaration = AbstractDeclaration> = Pick<\n DeclarationBuilderMap,\n Extract<T['$type'], keyof DeclarationBuilderMap>\n>;\n\nexport class DataModelFactory extends AstFactory<DataModel> {\n attributes: DataModelAttributeFactory[] = [];\n baseModel?: Reference<DataModel>;\n comments: string[] = [];\n fields: DataFieldFactory[] = [];\n isView?: boolean;\n mixins: Reference<TypeDef>[] = [];\n name?: RegularID;\n\n constructor() {\n super({\n type: DataModel.$type,\n node: {\n attributes: [],\n comments: [],\n fields: [],\n mixins: [],\n },\n });\n }\n\n addAttribute(builder: (attr: DataModelAttributeFactory) => DataModelAttributeFactory) {\n this.attributes.push(builder(new DataModelAttributeFactory()).setContainer(this.node));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setBaseModel(model: Reference<DataModel>) {\n this.baseModel = model;\n this.update({\n baseModel: this.baseModel,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n addComment(comment: string) {\n this.comments.push(comment);\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n addField(builder: (field: DataFieldFactory) => DataFieldFactory) {\n this.fields.push(builder(new DataFieldFactory()).setContainer(this.node));\n this.update({\n fields: this.fields,\n });\n return this;\n }\n\n setIsView(isView: boolean) {\n this.isView = isView;\n this.update({\n isView: this.isView,\n });\n return this;\n }\n\n addMixin(mixin: Reference<TypeDef>) {\n this.mixins.push(mixin);\n this.update({\n mixins: this.mixins,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n}\n\nexport class DataFieldFactory extends AstFactory<DataField> {\n attributes: DataFieldAttributeFactory[] = [];\n comments: string[] = [];\n name?: string;\n type?: DataFieldTypeFactory;\n\n constructor() {\n super({ type: DataField.$type, node: { attributes: [], comments: [] } });\n }\n\n addAttribute(\n builder: ((attr: DataFieldAttributeFactory) => DataFieldAttributeFactory) | DataFieldAttributeFactory,\n ) {\n if (builder instanceof DataFieldAttributeFactory) {\n builder.setContainer(this.node);\n this.attributes.push(builder);\n } else {\n const attr = builder(new DataFieldAttributeFactory());\n attr.setContainer(this.node);\n this.attributes.push(attr);\n }\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setComments(comments: string[]) {\n this.comments = comments;\n this.update({\n comments: this.comments,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n setType(builder: (type: DataFieldTypeFactory) => DataFieldTypeFactory) {\n this.type = builder(new DataFieldTypeFactory()).setContainer(this.node);\n this.update({\n type: this.type,\n });\n return this;\n }\n}\n\nexport class DataFieldTypeFactory extends AstFactory<DataFieldType> {\n array?: boolean;\n optional?: boolean;\n reference?: Reference<TypeDeclaration>;\n type?: BuiltinType;\n unsupported?: UnsupportedFieldTypeFactory;\n\n constructor() {\n super({ type: DataFieldType.$type });\n }\n\n setArray(array: boolean) {\n this.array = array;\n this.update({\n array: this.array,\n });\n return this;\n }\n\n setOptional(optional: boolean) {\n this.optional = optional;\n this.update({\n optional: this.optional,\n });\n return this;\n }\n\n setReference(reference: TypeDeclaration) {\n this.reference = {\n $refText: reference.name,\n ref: reference,\n };\n this.update({\n reference: this.reference,\n });\n return this;\n }\n\n setType(type: BuiltinType) {\n this.type = type;\n this.update({\n type: this.type,\n });\n return this;\n }\n\n setUnsupported(builder: (a: UnsupportedFieldTypeFactory) => UnsupportedFieldTypeFactory) {\n this.unsupported = builder(new UnsupportedFieldTypeFactory()).setContainer(this.node);\n this.update({\n unsupported: this.unsupported,\n });\n return this;\n }\n}\n\nexport class UnsupportedFieldTypeFactory extends AstFactory<UnsupportedFieldType> {\n value?: AstFactory<LiteralExpr>;\n constructor() {\n super({ type: UnsupportedFieldType.$type });\n }\n setValue(builder: (value: ExpressionBuilder<LiteralExpr>) => AstFactory<LiteralExpr>) {\n this.value = builder(ExpressionBuilder());\n this.update({\n value: this.value!,\n });\n return this;\n }\n}\n\nexport class ModelFactory extends AstFactory<Model> {\n declarations: AstFactory<AbstractDeclaration>[] = [];\n imports: ModelImportFactory[] = [];\n constructor() {\n super({ type: Model.$type, node: { declarations: [], imports: [] } });\n }\n addImport(builder: (b: ModelImportFactory) => ModelImportFactory) {\n this.imports.push(builder(new ModelImportFactory()).setContainer(this.node));\n this.update({\n imports: this.imports,\n });\n return this;\n }\n addDeclaration(builder: (b: DeclarationBuilder) => AstFactory<AbstractDeclaration>) {\n this.declarations.push(builder(DeclarationBuilder()).setContainer(this.node));\n this.update({\n declarations: this.declarations,\n });\n return this;\n }\n}\n\nexport class ModelImportFactory extends AstFactory<ModelImport> {\n path?: string | undefined;\n\n constructor() {\n super({ type: ModelImport.$type });\n }\n\n setPath(path: string) {\n this.path = path;\n this.update({\n path: this.path,\n });\n return this;\n }\n}\n\nexport class EnumFactory extends AstFactory<Enum> {\n name?: string;\n comments: string[] = [];\n fields: EnumFieldFactory[] = [];\n attributes: DataModelAttributeFactory[] = [];\n\n constructor() {\n super({ type: Enum.$type, node: { comments: [], fields: [], attributes: [] } });\n }\n\n addField(builder: (b: EnumFieldFactory) => EnumFieldFactory) {\n this.fields.push(builder(new EnumFieldFactory()).setContainer(this.node));\n this.update({\n fields: this.fields,\n });\n return this;\n }\n\n addAttribute(builder: (b: DataModelAttributeFactory) => DataModelAttributeFactory) {\n this.attributes.push(builder(new DataModelAttributeFactory()).setContainer(this.node));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n setName(name: string) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n}\n\nexport class EnumFieldFactory extends AstFactory<EnumField> {\n name?: RegularIDWithTypeNames;\n comments: string[] = [];\n attributes: DataFieldAttributeFactory[] = [];\n\n constructor() {\n super({ type: EnumField.$type, node: { comments: [], attributes: [] } });\n }\n\n setName(name: RegularIDWithTypeNames) {\n this.name = name;\n this.update({\n name: this.name,\n });\n return this;\n }\n\n addAttribute(builder: (b: DataFieldAttributeFactory) => DataFieldAttributeFactory) {\n this.attributes.push(builder(new DataFieldAttributeFactory()).setContainer(this.node));\n this.update({\n attributes: this.attributes,\n });\n return this;\n }\n\n addComment(comment: string) {\n this.comments.push(comment);\n this.update({\n comments: this.comments,\n });\n return this;\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { $ as ReferenceArg, A as Enum, B as InvocationExpr, D as DataModel, E as DataFieldType, F as FunctionDecl, G as ModelImport, H as MemberAccessExpr, J as ObjectExpr, K as NullExpr, M as Expression, O as DataModelAttribute, P as FieldInitializer, T as DataFieldAttribute, U as MemberAccessTarget, V as LiteralExpr, W as Model, _ as BuiltinType, at as ThisExpr, c as Argument, ct as UnaryExpr, d as AttributeArg, et as ReferenceExpr, f as AttributeParam, g as BooleanLiteral, i as Reference$1, it as StringLiteral, j as EnumField, l as ArrayExpr, lt as UnsupportedFieldType, m as BinaryExpr, nt as RegularID, ot as TypeDeclaration, p as AttributeParamType, q as NumberLiteral, rt as RegularIDWithTypeNames, s as AbstractDeclaration, st as TypeDef, t as AstNode$1, tt as ReferenceTarget, u as Attribute, w as DataField, z as InternalAttribute } from "./ast-W2h6Qtfk.cjs";
1
+ import { $ as ReferenceArg, A as Enum, B as InvocationExpr, D as DataModel, E as DataFieldType, F as FunctionDecl, G as ModelImport, H as MemberAccessExpr, J as ObjectExpr, K as NullExpr, M as Expression, O as DataModelAttribute, P as FieldInitializer, T as DataFieldAttribute, U as MemberAccessTarget, V as LiteralExpr, W as Model, _ as BuiltinType, at as ThisExpr, c as Argument, ct as UnaryExpr, d as AttributeArg, et as ReferenceExpr, f as AttributeParam, g as BooleanLiteral, i as Reference$1, it as StringLiteral, j as EnumField, l as ArrayExpr, lt as UnsupportedFieldType, m as BinaryExpr, nt as RegularID, ot as TypeDeclaration, p as AttributeParamType, q as NumberLiteral, rt as RegularIDWithTypeNames, s as AbstractDeclaration, st as TypeDef, t as AstNode$1, tt as ReferenceTarget, u as Attribute, w as DataField, z as InternalAttribute } from "./ast-fg9-E1cy.cjs";
2
2
  import { Reference } from "langium";
3
3
 
4
4
  //#region src/factory/ast-factory.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as ReferenceArg, A as Enum, B as InvocationExpr, D as DataModel, E as DataFieldType, F as FunctionDecl, G as ModelImport, H as MemberAccessExpr, J as ObjectExpr, K as NullExpr, M as Expression, O as DataModelAttribute, P as FieldInitializer, T as DataFieldAttribute, U as MemberAccessTarget, V as LiteralExpr, W as Model, _ as BuiltinType, at as ThisExpr, c as Argument, ct as UnaryExpr, d as AttributeArg, et as ReferenceExpr, f as AttributeParam, g as BooleanLiteral, i as Reference$1, it as StringLiteral, j as EnumField, l as ArrayExpr, lt as UnsupportedFieldType, m as BinaryExpr, nt as RegularID, ot as TypeDeclaration, p as AttributeParamType, q as NumberLiteral, rt as RegularIDWithTypeNames, s as AbstractDeclaration, st as TypeDef, t as AstNode$1, tt as ReferenceTarget, u as Attribute, w as DataField, z as InternalAttribute } from "./ast-DQDdBZQ3.mjs";
1
+ import { $ as ReferenceArg, A as Enum, B as InvocationExpr, D as DataModel, E as DataFieldType, F as FunctionDecl, G as ModelImport, H as MemberAccessExpr, J as ObjectExpr, K as NullExpr, M as Expression, O as DataModelAttribute, P as FieldInitializer, T as DataFieldAttribute, U as MemberAccessTarget, V as LiteralExpr, W as Model, _ as BuiltinType, at as ThisExpr, c as Argument, ct as UnaryExpr, d as AttributeArg, et as ReferenceExpr, f as AttributeParam, g as BooleanLiteral, i as Reference$1, it as StringLiteral, j as EnumField, l as ArrayExpr, lt as UnsupportedFieldType, m as BinaryExpr, nt as RegularID, ot as TypeDeclaration, p as AttributeParamType, q as NumberLiteral, rt as RegularIDWithTypeNames, s as AbstractDeclaration, st as TypeDef, t as AstNode$1, tt as ReferenceTarget, u as Attribute, w as DataField, z as InternalAttribute } from "./ast-DhPyAQoX.mjs";
2
2
  import { Reference } from "langium";
3
3
 
4
4
  //#region src/factory/ast-factory.d.ts