@zenstackhq/language 3.3.0-beta.2 → 3.3.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/index.cjs CHANGED
@@ -43,6 +43,7 @@ __export(src_exports, {
43
43
  module.exports = __toCommonJS(src_exports);
44
44
 
45
45
  // src/document.ts
46
+ var import_common_helpers3 = require("@zenstackhq/common-helpers");
46
47
  var import_langium14 = require("langium");
47
48
  var import_node_fs4 = __toESM(require("fs"), 1);
48
49
  var import_node_path4 = __toESM(require("path"), 1);
@@ -97,6 +98,11 @@ function isBooleanLiteral(item) {
97
98
  return reflection.isInstance(item, BooleanLiteral);
98
99
  }
99
100
  __name(isBooleanLiteral, "isBooleanLiteral");
101
+ var CollectionPredicateBinding = "CollectionPredicateBinding";
102
+ function isCollectionPredicateBinding(item) {
103
+ return reflection.isInstance(item, CollectionPredicateBinding);
104
+ }
105
+ __name(isCollectionPredicateBinding, "isCollectionPredicateBinding");
100
106
  var ConfigArrayExpr = "ConfigArrayExpr";
101
107
  function isConfigArrayExpr(item) {
102
108
  return reflection.isInstance(item, ConfigArrayExpr);
@@ -156,6 +162,10 @@ function isFunctionDecl(item) {
156
162
  }
157
163
  __name(isFunctionDecl, "isFunctionDecl");
158
164
  var FunctionParam = "FunctionParam";
165
+ function isFunctionParam(item) {
166
+ return reflection.isInstance(item, FunctionParam);
167
+ }
168
+ __name(isFunctionParam, "isFunctionParam");
159
169
  var FunctionParamType = "FunctionParamType";
160
170
  var GeneratorDecl = "GeneratorDecl";
161
171
  function isGeneratorDecl(item) {
@@ -252,6 +262,7 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
252
262
  AttributeParamType,
253
263
  BinaryExpr,
254
264
  BooleanLiteral,
265
+ CollectionPredicateBinding,
255
266
  ConfigArrayExpr,
256
267
  ConfigExpr,
257
268
  ConfigField,
@@ -321,6 +332,11 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
321
332
  case StringLiteral: {
322
333
  return this.isSubtype(LiteralExpr, supertype);
323
334
  }
335
+ case CollectionPredicateBinding:
336
+ case EnumField:
337
+ case FunctionParam: {
338
+ return this.isSubtype(ReferenceTarget, supertype);
339
+ }
324
340
  case ConfigArrayExpr: {
325
341
  return this.isSubtype(ConfigExpr, supertype);
326
342
  }
@@ -332,10 +348,6 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
332
348
  case TypeDef: {
333
349
  return this.isSubtype(AbstractDeclaration, supertype) || this.isSubtype(TypeDeclaration, supertype);
334
350
  }
335
- case EnumField:
336
- case FunctionParam: {
337
- return this.isSubtype(ReferenceTarget, supertype);
338
- }
339
351
  case InvocationExpr:
340
352
  case LiteralExpr: {
341
353
  return this.isSubtype(ConfigExpr, supertype) || this.isSubtype(Expression, supertype);
@@ -487,6 +499,9 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
487
499
  return {
488
500
  name: BinaryExpr,
489
501
  properties: [
502
+ {
503
+ name: "binding"
504
+ },
490
505
  {
491
506
  name: "left"
492
507
  },
@@ -509,6 +524,16 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
509
524
  ]
510
525
  };
511
526
  }
527
+ case CollectionPredicateBinding: {
528
+ return {
529
+ name: CollectionPredicateBinding,
530
+ properties: [
531
+ {
532
+ name: "name"
533
+ }
534
+ ]
535
+ };
536
+ }
512
537
  case ConfigArrayExpr: {
513
538
  return {
514
539
  name: ConfigArrayExpr,
@@ -1101,7 +1126,8 @@ var BinaryExprOperatorPriority = {
1101
1126
  // src/constants.ts
1102
1127
  var SUPPORTED_PROVIDERS = [
1103
1128
  "sqlite",
1104
- "postgresql"
1129
+ "postgresql",
1130
+ "mysql"
1105
1131
  ];
1106
1132
  var SCALAR_TYPES = [
1107
1133
  "String",
@@ -1126,6 +1152,9 @@ var ExpressionContext = /* @__PURE__ */ function(ExpressionContext2) {
1126
1152
  ExpressionContext2["Index"] = "Index";
1127
1153
  return ExpressionContext2;
1128
1154
  }({});
1155
+ var DB_PROVIDERS_SUPPORTING_LIST_TYPE = [
1156
+ "postgresql"
1157
+ ];
1129
1158
 
1130
1159
  // src/module.ts
1131
1160
  var import_langium13 = require("langium");
@@ -1200,7 +1229,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1200
1229
  "terminal": {
1201
1230
  "$type": "RuleCall",
1202
1231
  "rule": {
1203
- "$ref": "#/rules@69"
1232
+ "$ref": "#/rules@70"
1204
1233
  },
1205
1234
  "arguments": []
1206
1235
  }
@@ -1249,42 +1278,42 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1249
1278
  {
1250
1279
  "$type": "RuleCall",
1251
1280
  "rule": {
1252
- "$ref": "#/rules@37"
1281
+ "$ref": "#/rules@38"
1253
1282
  },
1254
1283
  "arguments": []
1255
1284
  },
1256
1285
  {
1257
1286
  "$type": "RuleCall",
1258
1287
  "rule": {
1259
- "$ref": "#/rules@42"
1288
+ "$ref": "#/rules@43"
1260
1289
  },
1261
1290
  "arguments": []
1262
1291
  },
1263
1292
  {
1264
1293
  "$type": "RuleCall",
1265
1294
  "rule": {
1266
- "$ref": "#/rules@44"
1295
+ "$ref": "#/rules@45"
1267
1296
  },
1268
1297
  "arguments": []
1269
1298
  },
1270
1299
  {
1271
1300
  "$type": "RuleCall",
1272
1301
  "rule": {
1273
- "$ref": "#/rules@46"
1302
+ "$ref": "#/rules@47"
1274
1303
  },
1275
1304
  "arguments": []
1276
1305
  },
1277
1306
  {
1278
1307
  "$type": "RuleCall",
1279
1308
  "rule": {
1280
- "$ref": "#/rules@53"
1309
+ "$ref": "#/rules@54"
1281
1310
  },
1282
1311
  "arguments": []
1283
1312
  },
1284
1313
  {
1285
1314
  "$type": "RuleCall",
1286
1315
  "rule": {
1287
- "$ref": "#/rules@50"
1316
+ "$ref": "#/rules@51"
1288
1317
  },
1289
1318
  "arguments": []
1290
1319
  }
@@ -1306,7 +1335,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1306
1335
  {
1307
1336
  "$type": "RuleCall",
1308
1337
  "rule": {
1309
- "$ref": "#/rules@71"
1338
+ "$ref": "#/rules@72"
1310
1339
  },
1311
1340
  "arguments": [],
1312
1341
  "cardinality": "*"
@@ -1322,7 +1351,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1322
1351
  "terminal": {
1323
1352
  "$type": "RuleCall",
1324
1353
  "rule": {
1325
- "$ref": "#/rules@51"
1354
+ "$ref": "#/rules@52"
1326
1355
  },
1327
1356
  "arguments": []
1328
1357
  }
@@ -1366,7 +1395,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1366
1395
  {
1367
1396
  "$type": "RuleCall",
1368
1397
  "rule": {
1369
- "$ref": "#/rules@71"
1398
+ "$ref": "#/rules@72"
1370
1399
  },
1371
1400
  "arguments": [],
1372
1401
  "cardinality": "*"
@@ -1382,7 +1411,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1382
1411
  "terminal": {
1383
1412
  "$type": "RuleCall",
1384
1413
  "rule": {
1385
- "$ref": "#/rules@51"
1414
+ "$ref": "#/rules@52"
1386
1415
  },
1387
1416
  "arguments": []
1388
1417
  }
@@ -1426,7 +1455,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1426
1455
  {
1427
1456
  "$type": "RuleCall",
1428
1457
  "rule": {
1429
- "$ref": "#/rules@71"
1458
+ "$ref": "#/rules@72"
1430
1459
  },
1431
1460
  "arguments": [],
1432
1461
  "cardinality": "*"
@@ -1438,7 +1467,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1438
1467
  "terminal": {
1439
1468
  "$type": "RuleCall",
1440
1469
  "rule": {
1441
- "$ref": "#/rules@51"
1470
+ "$ref": "#/rules@52"
1442
1471
  },
1443
1472
  "arguments": []
1444
1473
  }
@@ -1477,7 +1506,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1477
1506
  {
1478
1507
  "$type": "RuleCall",
1479
1508
  "rule": {
1480
- "$ref": "#/rules@71"
1509
+ "$ref": "#/rules@72"
1481
1510
  },
1482
1511
  "arguments": [],
1483
1512
  "cardinality": "*"
@@ -1493,7 +1522,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1493
1522
  "terminal": {
1494
1523
  "$type": "RuleCall",
1495
1524
  "rule": {
1496
- "$ref": "#/rules@51"
1525
+ "$ref": "#/rules@52"
1497
1526
  },
1498
1527
  "arguments": []
1499
1528
  }
@@ -1537,7 +1566,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1537
1566
  {
1538
1567
  "$type": "RuleCall",
1539
1568
  "rule": {
1540
- "$ref": "#/rules@71"
1569
+ "$ref": "#/rules@72"
1541
1570
  },
1542
1571
  "arguments": [],
1543
1572
  "cardinality": "*"
@@ -1549,7 +1578,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1549
1578
  "terminal": {
1550
1579
  "$type": "RuleCall",
1551
1580
  "rule": {
1552
- "$ref": "#/rules@51"
1581
+ "$ref": "#/rules@52"
1553
1582
  },
1554
1583
  "arguments": []
1555
1584
  }
@@ -1604,7 +1633,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1604
1633
  "definition": {
1605
1634
  "$type": "RuleCall",
1606
1635
  "rule": {
1607
- "$ref": "#/rules@33"
1636
+ "$ref": "#/rules@34"
1608
1637
  },
1609
1638
  "arguments": []
1610
1639
  },
@@ -1625,7 +1654,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1625
1654
  "terminal": {
1626
1655
  "$type": "RuleCall",
1627
1656
  "rule": {
1628
- "$ref": "#/rules@70"
1657
+ "$ref": "#/rules@71"
1629
1658
  },
1630
1659
  "arguments": []
1631
1660
  }
@@ -1647,7 +1676,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1647
1676
  "terminal": {
1648
1677
  "$type": "RuleCall",
1649
1678
  "rule": {
1650
- "$ref": "#/rules@69"
1679
+ "$ref": "#/rules@70"
1651
1680
  },
1652
1681
  "arguments": []
1653
1682
  }
@@ -1669,7 +1698,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1669
1698
  "terminal": {
1670
1699
  "$type": "RuleCall",
1671
1700
  "rule": {
1672
- "$ref": "#/rules@63"
1701
+ "$ref": "#/rules@64"
1673
1702
  },
1674
1703
  "arguments": []
1675
1704
  }
@@ -1793,7 +1822,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1793
1822
  "terminal": {
1794
1823
  "$type": "RuleCall",
1795
1824
  "rule": {
1796
- "$ref": "#/rules@68"
1825
+ "$ref": "#/rules@69"
1797
1826
  },
1798
1827
  "arguments": []
1799
1828
  }
@@ -1891,7 +1920,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1891
1920
  "terminal": {
1892
1921
  "$type": "RuleCall",
1893
1922
  "rule": {
1894
- "$ref": "#/rules@68"
1923
+ "$ref": "#/rules@69"
1895
1924
  },
1896
1925
  "arguments": []
1897
1926
  }
@@ -2100,7 +2129,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2100
2129
  "terminal": {
2101
2130
  "$type": "RuleCall",
2102
2131
  "rule": {
2103
- "$ref": "#/rules@52"
2132
+ "$ref": "#/rules@53"
2104
2133
  },
2105
2134
  "arguments": []
2106
2135
  },
@@ -2199,7 +2228,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2199
2228
  "terminal": {
2200
2229
  "$type": "RuleCall",
2201
2230
  "rule": {
2202
- "$ref": "#/rules@68"
2231
+ "$ref": "#/rules@69"
2203
2232
  },
2204
2233
  "arguments": []
2205
2234
  }
@@ -2313,14 +2342,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2313
2342
  {
2314
2343
  "$type": "RuleCall",
2315
2344
  "rule": {
2316
- "$ref": "#/rules@51"
2345
+ "$ref": "#/rules@52"
2317
2346
  },
2318
2347
  "arguments": []
2319
2348
  },
2320
2349
  {
2321
2350
  "$type": "RuleCall",
2322
2351
  "rule": {
2323
- "$ref": "#/rules@69"
2352
+ "$ref": "#/rules@70"
2324
2353
  },
2325
2354
  "arguments": []
2326
2355
  }
@@ -2365,7 +2394,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2365
2394
  "terminal": {
2366
2395
  "$type": "CrossReference",
2367
2396
  "type": {
2368
- "$ref": "#/rules@46"
2397
+ "$ref": "#/rules@47"
2369
2398
  },
2370
2399
  "deprecatedSyntax": false
2371
2400
  }
@@ -2377,7 +2406,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2377
2406
  {
2378
2407
  "$type": "RuleCall",
2379
2408
  "rule": {
2380
- "$ref": "#/rules@35"
2409
+ "$ref": "#/rules@36"
2381
2410
  },
2382
2411
  "arguments": [],
2383
2412
  "cardinality": "?"
@@ -2408,7 +2437,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2408
2437
  {
2409
2438
  "$type": "RuleCall",
2410
2439
  "rule": {
2411
- "$ref": "#/rules@34"
2440
+ "$ref": "#/rules@35"
2412
2441
  },
2413
2442
  "arguments": []
2414
2443
  },
@@ -2548,6 +2577,28 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2548
2577
  "$type": "Keyword",
2549
2578
  "value": "["
2550
2579
  },
2580
+ {
2581
+ "$type": "Group",
2582
+ "elements": [
2583
+ {
2584
+ "$type": "Assignment",
2585
+ "feature": "binding",
2586
+ "operator": "=",
2587
+ "terminal": {
2588
+ "$type": "RuleCall",
2589
+ "rule": {
2590
+ "$ref": "#/rules@30"
2591
+ },
2592
+ "arguments": []
2593
+ }
2594
+ },
2595
+ {
2596
+ "$type": "Keyword",
2597
+ "value": ","
2598
+ }
2599
+ ],
2600
+ "cardinality": "?"
2601
+ },
2551
2602
  {
2552
2603
  "$type": "Assignment",
2553
2604
  "feature": "right",
@@ -2576,6 +2627,28 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2576
2627
  "parameters": [],
2577
2628
  "wildcard": false
2578
2629
  },
2630
+ {
2631
+ "$type": "ParserRule",
2632
+ "name": "CollectionPredicateBinding",
2633
+ "definition": {
2634
+ "$type": "Assignment",
2635
+ "feature": "name",
2636
+ "operator": "=",
2637
+ "terminal": {
2638
+ "$type": "RuleCall",
2639
+ "rule": {
2640
+ "$ref": "#/rules@52"
2641
+ },
2642
+ "arguments": []
2643
+ }
2644
+ },
2645
+ "definesHiddenTokens": false,
2646
+ "entry": false,
2647
+ "fragment": false,
2648
+ "hiddenTokens": [],
2649
+ "parameters": [],
2650
+ "wildcard": false
2651
+ },
2579
2652
  {
2580
2653
  "$type": "ParserRule",
2581
2654
  "name": "InExpr",
@@ -2651,7 +2724,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2651
2724
  {
2652
2725
  "$type": "RuleCall",
2653
2726
  "rule": {
2654
- "$ref": "#/rules@30"
2727
+ "$ref": "#/rules@31"
2655
2728
  },
2656
2729
  "arguments": []
2657
2730
  },
@@ -2700,7 +2773,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2700
2773
  "terminal": {
2701
2774
  "$type": "RuleCall",
2702
2775
  "rule": {
2703
- "$ref": "#/rules@30"
2776
+ "$ref": "#/rules@31"
2704
2777
  },
2705
2778
  "arguments": []
2706
2779
  }
@@ -2730,7 +2803,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2730
2803
  {
2731
2804
  "$type": "RuleCall",
2732
2805
  "rule": {
2733
- "$ref": "#/rules@31"
2806
+ "$ref": "#/rules@32"
2734
2807
  },
2735
2808
  "arguments": []
2736
2809
  },
@@ -2771,7 +2844,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2771
2844
  "terminal": {
2772
2845
  "$type": "RuleCall",
2773
2846
  "rule": {
2774
- "$ref": "#/rules@31"
2847
+ "$ref": "#/rules@32"
2775
2848
  },
2776
2849
  "arguments": []
2777
2850
  }
@@ -2801,7 +2874,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2801
2874
  {
2802
2875
  "$type": "RuleCall",
2803
2876
  "rule": {
2804
- "$ref": "#/rules@32"
2877
+ "$ref": "#/rules@33"
2805
2878
  },
2806
2879
  "arguments": []
2807
2880
  },
@@ -2842,7 +2915,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2842
2915
  "terminal": {
2843
2916
  "$type": "RuleCall",
2844
2917
  "rule": {
2845
- "$ref": "#/rules@32"
2918
+ "$ref": "#/rules@33"
2846
2919
  },
2847
2920
  "arguments": []
2848
2921
  }
@@ -2968,7 +3041,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2968
3041
  "terminal": {
2969
3042
  "$type": "RuleCall",
2970
3043
  "rule": {
2971
- "$ref": "#/rules@36"
3044
+ "$ref": "#/rules@37"
2972
3045
  },
2973
3046
  "arguments": []
2974
3047
  }
@@ -2987,7 +3060,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2987
3060
  "terminal": {
2988
3061
  "$type": "RuleCall",
2989
3062
  "rule": {
2990
- "$ref": "#/rules@36"
3063
+ "$ref": "#/rules@37"
2991
3064
  },
2992
3065
  "arguments": []
2993
3066
  }
@@ -3038,7 +3111,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3038
3111
  "terminal": {
3039
3112
  "$type": "RuleCall",
3040
3113
  "rule": {
3041
- "$ref": "#/rules@71"
3114
+ "$ref": "#/rules@72"
3042
3115
  },
3043
3116
  "arguments": []
3044
3117
  },
@@ -3061,7 +3134,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3061
3134
  "terminal": {
3062
3135
  "$type": "RuleCall",
3063
3136
  "rule": {
3064
- "$ref": "#/rules@51"
3137
+ "$ref": "#/rules@52"
3065
3138
  },
3066
3139
  "arguments": []
3067
3140
  }
@@ -3072,14 +3145,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3072
3145
  {
3073
3146
  "$type": "RuleCall",
3074
3147
  "rule": {
3075
- "$ref": "#/rules@38"
3148
+ "$ref": "#/rules@39"
3076
3149
  },
3077
3150
  "arguments": []
3078
3151
  },
3079
3152
  {
3080
3153
  "$type": "RuleCall",
3081
3154
  "rule": {
3082
- "$ref": "#/rules@39"
3155
+ "$ref": "#/rules@40"
3083
3156
  },
3084
3157
  "arguments": []
3085
3158
  },
@@ -3089,14 +3162,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3089
3162
  {
3090
3163
  "$type": "RuleCall",
3091
3164
  "rule": {
3092
- "$ref": "#/rules@39"
3165
+ "$ref": "#/rules@40"
3093
3166
  },
3094
3167
  "arguments": []
3095
3168
  },
3096
3169
  {
3097
3170
  "$type": "RuleCall",
3098
3171
  "rule": {
3099
- "$ref": "#/rules@38"
3172
+ "$ref": "#/rules@39"
3100
3173
  },
3101
3174
  "arguments": []
3102
3175
  }
@@ -3108,14 +3181,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3108
3181
  {
3109
3182
  "$type": "RuleCall",
3110
3183
  "rule": {
3111
- "$ref": "#/rules@38"
3184
+ "$ref": "#/rules@39"
3112
3185
  },
3113
3186
  "arguments": []
3114
3187
  },
3115
3188
  {
3116
3189
  "$type": "RuleCall",
3117
3190
  "rule": {
3118
- "$ref": "#/rules@39"
3191
+ "$ref": "#/rules@40"
3119
3192
  },
3120
3193
  "arguments": []
3121
3194
  }
@@ -3145,7 +3218,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3145
3218
  "terminal": {
3146
3219
  "$type": "RuleCall",
3147
3220
  "rule": {
3148
- "$ref": "#/rules@51"
3221
+ "$ref": "#/rules@52"
3149
3222
  },
3150
3223
  "arguments": []
3151
3224
  }
@@ -3168,7 +3241,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3168
3241
  "terminal": {
3169
3242
  "$type": "RuleCall",
3170
3243
  "rule": {
3171
- "$ref": "#/rules@40"
3244
+ "$ref": "#/rules@41"
3172
3245
  },
3173
3246
  "arguments": []
3174
3247
  }
@@ -3180,7 +3253,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3180
3253
  "terminal": {
3181
3254
  "$type": "RuleCall",
3182
3255
  "rule": {
3183
- "$ref": "#/rules@57"
3256
+ "$ref": "#/rules@58"
3184
3257
  },
3185
3258
  "arguments": []
3186
3259
  }
@@ -3219,7 +3292,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3219
3292
  "terminal": {
3220
3293
  "$type": "CrossReference",
3221
3294
  "type": {
3222
- "$ref": "#/rules@42"
3295
+ "$ref": "#/rules@43"
3223
3296
  },
3224
3297
  "deprecatedSyntax": false
3225
3298
  }
@@ -3239,7 +3312,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3239
3312
  "terminal": {
3240
3313
  "$type": "CrossReference",
3241
3314
  "type": {
3242
- "$ref": "#/rules@42"
3315
+ "$ref": "#/rules@43"
3243
3316
  },
3244
3317
  "deprecatedSyntax": false
3245
3318
  }
@@ -3273,7 +3346,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3273
3346
  "terminal": {
3274
3347
  "$type": "CrossReference",
3275
3348
  "type": {
3276
- "$ref": "#/rules@37"
3349
+ "$ref": "#/rules@38"
3277
3350
  },
3278
3351
  "deprecatedSyntax": false
3279
3352
  }
@@ -3299,7 +3372,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3299
3372
  "terminal": {
3300
3373
  "$type": "RuleCall",
3301
3374
  "rule": {
3302
- "$ref": "#/rules@71"
3375
+ "$ref": "#/rules@72"
3303
3376
  },
3304
3377
  "arguments": []
3305
3378
  },
@@ -3312,7 +3385,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3312
3385
  "terminal": {
3313
3386
  "$type": "RuleCall",
3314
3387
  "rule": {
3315
- "$ref": "#/rules@52"
3388
+ "$ref": "#/rules@53"
3316
3389
  },
3317
3390
  "arguments": []
3318
3391
  }
@@ -3324,7 +3397,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3324
3397
  "terminal": {
3325
3398
  "$type": "RuleCall",
3326
3399
  "rule": {
3327
- "$ref": "#/rules@41"
3400
+ "$ref": "#/rules@42"
3328
3401
  },
3329
3402
  "arguments": []
3330
3403
  }
@@ -3336,7 +3409,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3336
3409
  "terminal": {
3337
3410
  "$type": "RuleCall",
3338
3411
  "rule": {
3339
- "$ref": "#/rules@56"
3412
+ "$ref": "#/rules@57"
3340
3413
  },
3341
3414
  "arguments": []
3342
3415
  },
@@ -3367,7 +3440,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3367
3440
  "terminal": {
3368
3441
  "$type": "RuleCall",
3369
3442
  "rule": {
3370
- "$ref": "#/rules@62"
3443
+ "$ref": "#/rules@63"
3371
3444
  },
3372
3445
  "arguments": []
3373
3446
  }
@@ -3379,7 +3452,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3379
3452
  "terminal": {
3380
3453
  "$type": "RuleCall",
3381
3454
  "rule": {
3382
- "$ref": "#/rules@43"
3455
+ "$ref": "#/rules@44"
3383
3456
  },
3384
3457
  "arguments": []
3385
3458
  }
@@ -3396,7 +3469,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3396
3469
  "terminal": {
3397
3470
  "$type": "RuleCall",
3398
3471
  "rule": {
3399
- "$ref": "#/rules@51"
3472
+ "$ref": "#/rules@52"
3400
3473
  },
3401
3474
  "arguments": []
3402
3475
  },
@@ -3456,7 +3529,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3456
3529
  "terminal": {
3457
3530
  "$type": "RuleCall",
3458
3531
  "rule": {
3459
- "$ref": "#/rules@71"
3532
+ "$ref": "#/rules@72"
3460
3533
  },
3461
3534
  "arguments": []
3462
3535
  },
@@ -3473,7 +3546,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3473
3546
  "terminal": {
3474
3547
  "$type": "RuleCall",
3475
3548
  "rule": {
3476
- "$ref": "#/rules@51"
3549
+ "$ref": "#/rules@52"
3477
3550
  },
3478
3551
  "arguments": []
3479
3552
  }
@@ -3481,7 +3554,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3481
3554
  {
3482
3555
  "$type": "RuleCall",
3483
3556
  "rule": {
3484
- "$ref": "#/rules@38"
3557
+ "$ref": "#/rules@39"
3485
3558
  },
3486
3559
  "arguments": [],
3487
3560
  "cardinality": "?"
@@ -3500,7 +3573,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3500
3573
  "terminal": {
3501
3574
  "$type": "RuleCall",
3502
3575
  "rule": {
3503
- "$ref": "#/rules@40"
3576
+ "$ref": "#/rules@41"
3504
3577
  },
3505
3578
  "arguments": []
3506
3579
  }
@@ -3512,7 +3585,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3512
3585
  "terminal": {
3513
3586
  "$type": "RuleCall",
3514
3587
  "rule": {
3515
- "$ref": "#/rules@57"
3588
+ "$ref": "#/rules@58"
3516
3589
  },
3517
3590
  "arguments": []
3518
3591
  }
@@ -3585,7 +3658,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3585
3658
  "terminal": {
3586
3659
  "$type": "RuleCall",
3587
3660
  "rule": {
3588
- "$ref": "#/rules@71"
3661
+ "$ref": "#/rules@72"
3589
3662
  },
3590
3663
  "arguments": []
3591
3664
  },
@@ -3602,7 +3675,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3602
3675
  "terminal": {
3603
3676
  "$type": "RuleCall",
3604
3677
  "rule": {
3605
- "$ref": "#/rules@51"
3678
+ "$ref": "#/rules@52"
3606
3679
  },
3607
3680
  "arguments": []
3608
3681
  }
@@ -3621,7 +3694,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3621
3694
  "terminal": {
3622
3695
  "$type": "RuleCall",
3623
3696
  "rule": {
3624
- "$ref": "#/rules@45"
3697
+ "$ref": "#/rules@46"
3625
3698
  },
3626
3699
  "arguments": []
3627
3700
  }
@@ -3633,7 +3706,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3633
3706
  "terminal": {
3634
3707
  "$type": "RuleCall",
3635
3708
  "rule": {
3636
- "$ref": "#/rules@57"
3709
+ "$ref": "#/rules@58"
3637
3710
  },
3638
3711
  "arguments": []
3639
3712
  }
@@ -3667,7 +3740,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3667
3740
  "terminal": {
3668
3741
  "$type": "RuleCall",
3669
3742
  "rule": {
3670
- "$ref": "#/rules@71"
3743
+ "$ref": "#/rules@72"
3671
3744
  },
3672
3745
  "arguments": []
3673
3746
  },
@@ -3680,7 +3753,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3680
3753
  "terminal": {
3681
3754
  "$type": "RuleCall",
3682
3755
  "rule": {
3683
- "$ref": "#/rules@52"
3756
+ "$ref": "#/rules@53"
3684
3757
  },
3685
3758
  "arguments": []
3686
3759
  }
@@ -3692,7 +3765,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3692
3765
  "terminal": {
3693
3766
  "$type": "RuleCall",
3694
3767
  "rule": {
3695
- "$ref": "#/rules@56"
3768
+ "$ref": "#/rules@57"
3696
3769
  },
3697
3770
  "arguments": []
3698
3771
  },
@@ -3716,7 +3789,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3716
3789
  {
3717
3790
  "$type": "RuleCall",
3718
3791
  "rule": {
3719
- "$ref": "#/rules@71"
3792
+ "$ref": "#/rules@72"
3720
3793
  },
3721
3794
  "arguments": [],
3722
3795
  "cardinality": "*"
@@ -3732,7 +3805,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3732
3805
  "terminal": {
3733
3806
  "$type": "RuleCall",
3734
3807
  "rule": {
3735
- "$ref": "#/rules@51"
3808
+ "$ref": "#/rules@52"
3736
3809
  },
3737
3810
  "arguments": []
3738
3811
  }
@@ -3751,7 +3824,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3751
3824
  "terminal": {
3752
3825
  "$type": "RuleCall",
3753
3826
  "rule": {
3754
- "$ref": "#/rules@47"
3827
+ "$ref": "#/rules@48"
3755
3828
  },
3756
3829
  "arguments": []
3757
3830
  }
@@ -3770,7 +3843,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3770
3843
  "terminal": {
3771
3844
  "$type": "RuleCall",
3772
3845
  "rule": {
3773
- "$ref": "#/rules@47"
3846
+ "$ref": "#/rules@48"
3774
3847
  },
3775
3848
  "arguments": []
3776
3849
  }
@@ -3796,7 +3869,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3796
3869
  "terminal": {
3797
3870
  "$type": "RuleCall",
3798
3871
  "rule": {
3799
- "$ref": "#/rules@48"
3872
+ "$ref": "#/rules@49"
3800
3873
  },
3801
3874
  "arguments": []
3802
3875
  }
@@ -3829,7 +3902,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3829
3902
  "terminal": {
3830
3903
  "$type": "RuleCall",
3831
3904
  "rule": {
3832
- "$ref": "#/rules@58"
3905
+ "$ref": "#/rules@59"
3833
3906
  },
3834
3907
  "arguments": []
3835
3908
  },
@@ -3853,7 +3926,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3853
3926
  {
3854
3927
  "$type": "RuleCall",
3855
3928
  "rule": {
3856
- "$ref": "#/rules@71"
3929
+ "$ref": "#/rules@72"
3857
3930
  },
3858
3931
  "arguments": [],
3859
3932
  "cardinality": "*"
@@ -3865,7 +3938,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3865
3938
  "terminal": {
3866
3939
  "$type": "RuleCall",
3867
3940
  "rule": {
3868
- "$ref": "#/rules@51"
3941
+ "$ref": "#/rules@52"
3869
3942
  },
3870
3943
  "arguments": []
3871
3944
  }
@@ -3881,7 +3954,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3881
3954
  "terminal": {
3882
3955
  "$type": "RuleCall",
3883
3956
  "rule": {
3884
- "$ref": "#/rules@48"
3957
+ "$ref": "#/rules@49"
3885
3958
  },
3886
3959
  "arguments": []
3887
3960
  }
@@ -3921,7 +3994,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3921
3994
  "terminal": {
3922
3995
  "$type": "RuleCall",
3923
3996
  "rule": {
3924
- "$ref": "#/rules@61"
3997
+ "$ref": "#/rules@62"
3925
3998
  },
3926
3999
  "arguments": []
3927
4000
  }
@@ -3938,7 +4011,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3938
4011
  "terminal": {
3939
4012
  "$type": "RuleCall",
3940
4013
  "rule": {
3941
- "$ref": "#/rules@51"
4014
+ "$ref": "#/rules@52"
3942
4015
  },
3943
4016
  "arguments": []
3944
4017
  },
@@ -3984,7 +4057,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3984
4057
  {
3985
4058
  "$type": "RuleCall",
3986
4059
  "rule": {
3987
- "$ref": "#/rules@71"
4060
+ "$ref": "#/rules@72"
3988
4061
  },
3989
4062
  "arguments": [],
3990
4063
  "cardinality": "*"
@@ -3996,7 +4069,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3996
4069
  "terminal": {
3997
4070
  "$type": "RuleCall",
3998
4071
  "rule": {
3999
- "$ref": "#/rules@51"
4072
+ "$ref": "#/rules@52"
4000
4073
  },
4001
4074
  "arguments": []
4002
4075
  }
@@ -4012,7 +4085,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4012
4085
  "terminal": {
4013
4086
  "$type": "RuleCall",
4014
4087
  "rule": {
4015
- "$ref": "#/rules@48"
4088
+ "$ref": "#/rules@49"
4016
4089
  },
4017
4090
  "arguments": []
4018
4091
  }
@@ -4045,7 +4118,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4045
4118
  {
4046
4119
  "$type": "RuleCall",
4047
4120
  "rule": {
4048
- "$ref": "#/rules@71"
4121
+ "$ref": "#/rules@72"
4049
4122
  },
4050
4123
  "arguments": [],
4051
4124
  "cardinality": "*"
@@ -4071,7 +4144,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4071
4144
  "terminal": {
4072
4145
  "$type": "RuleCall",
4073
4146
  "rule": {
4074
- "$ref": "#/rules@51"
4147
+ "$ref": "#/rules@52"
4075
4148
  },
4076
4149
  "arguments": []
4077
4150
  }
@@ -4090,7 +4163,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4090
4163
  "terminal": {
4091
4164
  "$type": "RuleCall",
4092
4165
  "rule": {
4093
- "$ref": "#/rules@49"
4166
+ "$ref": "#/rules@50"
4094
4167
  },
4095
4168
  "arguments": []
4096
4169
  }
@@ -4109,7 +4182,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4109
4182
  "terminal": {
4110
4183
  "$type": "RuleCall",
4111
4184
  "rule": {
4112
- "$ref": "#/rules@49"
4185
+ "$ref": "#/rules@50"
4113
4186
  },
4114
4187
  "arguments": []
4115
4188
  }
@@ -4135,7 +4208,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4135
4208
  "terminal": {
4136
4209
  "$type": "RuleCall",
4137
4210
  "rule": {
4138
- "$ref": "#/rules@48"
4211
+ "$ref": "#/rules@49"
4139
4212
  },
4140
4213
  "arguments": []
4141
4214
  }
@@ -4147,7 +4220,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4147
4220
  "terminal": {
4148
4221
  "$type": "RuleCall",
4149
4222
  "rule": {
4150
- "$ref": "#/rules@58"
4223
+ "$ref": "#/rules@59"
4151
4224
  },
4152
4225
  "arguments": []
4153
4226
  },
@@ -4172,7 +4245,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4172
4245
  {
4173
4246
  "$type": "RuleCall",
4174
4247
  "rule": {
4175
- "$ref": "#/rules@68"
4248
+ "$ref": "#/rules@69"
4176
4249
  },
4177
4250
  "arguments": []
4178
4251
  },
@@ -4235,7 +4308,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4235
4308
  {
4236
4309
  "$type": "RuleCall",
4237
4310
  "rule": {
4238
- "$ref": "#/rules@51"
4311
+ "$ref": "#/rules@52"
4239
4312
  },
4240
4313
  "arguments": []
4241
4314
  },
@@ -4317,7 +4390,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4317
4390
  "terminal": {
4318
4391
  "$type": "RuleCall",
4319
4392
  "rule": {
4320
- "$ref": "#/rules@71"
4393
+ "$ref": "#/rules@72"
4321
4394
  },
4322
4395
  "arguments": []
4323
4396
  },
@@ -4337,21 +4410,21 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4337
4410
  {
4338
4411
  "$type": "RuleCall",
4339
4412
  "rule": {
4340
- "$ref": "#/rules@65"
4413
+ "$ref": "#/rules@66"
4341
4414
  },
4342
4415
  "arguments": []
4343
4416
  },
4344
4417
  {
4345
4418
  "$type": "RuleCall",
4346
4419
  "rule": {
4347
- "$ref": "#/rules@66"
4420
+ "$ref": "#/rules@67"
4348
4421
  },
4349
4422
  "arguments": []
4350
4423
  },
4351
4424
  {
4352
4425
  "$type": "RuleCall",
4353
4426
  "rule": {
4354
- "$ref": "#/rules@67"
4427
+ "$ref": "#/rules@68"
4355
4428
  },
4356
4429
  "arguments": []
4357
4430
  }
@@ -4372,7 +4445,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4372
4445
  "terminal": {
4373
4446
  "$type": "RuleCall",
4374
4447
  "rule": {
4375
- "$ref": "#/rules@54"
4448
+ "$ref": "#/rules@55"
4376
4449
  },
4377
4450
  "arguments": []
4378
4451
  }
@@ -4391,7 +4464,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4391
4464
  "terminal": {
4392
4465
  "$type": "RuleCall",
4393
4466
  "rule": {
4394
- "$ref": "#/rules@54"
4467
+ "$ref": "#/rules@55"
4395
4468
  },
4396
4469
  "arguments": []
4397
4470
  }
@@ -4413,7 +4486,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4413
4486
  "terminal": {
4414
4487
  "$type": "RuleCall",
4415
4488
  "rule": {
4416
- "$ref": "#/rules@58"
4489
+ "$ref": "#/rules@59"
4417
4490
  },
4418
4491
  "arguments": []
4419
4492
  },
@@ -4441,7 +4514,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4441
4514
  "terminal": {
4442
4515
  "$type": "RuleCall",
4443
4516
  "rule": {
4444
- "$ref": "#/rules@71"
4517
+ "$ref": "#/rules@72"
4445
4518
  },
4446
4519
  "arguments": []
4447
4520
  },
@@ -4464,7 +4537,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4464
4537
  "terminal": {
4465
4538
  "$type": "RuleCall",
4466
4539
  "rule": {
4467
- "$ref": "#/rules@51"
4540
+ "$ref": "#/rules@52"
4468
4541
  },
4469
4542
  "arguments": []
4470
4543
  }
@@ -4480,7 +4553,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4480
4553
  "terminal": {
4481
4554
  "$type": "RuleCall",
4482
4555
  "rule": {
4483
- "$ref": "#/rules@55"
4556
+ "$ref": "#/rules@56"
4484
4557
  },
4485
4558
  "arguments": []
4486
4559
  }
@@ -4492,7 +4565,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4492
4565
  "terminal": {
4493
4566
  "$type": "RuleCall",
4494
4567
  "rule": {
4495
- "$ref": "#/rules@58"
4568
+ "$ref": "#/rules@59"
4496
4569
  },
4497
4570
  "arguments": []
4498
4571
  },
@@ -4526,7 +4599,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4526
4599
  {
4527
4600
  "$type": "RuleCall",
4528
4601
  "rule": {
4529
- "$ref": "#/rules@61"
4602
+ "$ref": "#/rules@62"
4530
4603
  },
4531
4604
  "arguments": []
4532
4605
  },
@@ -4557,7 +4630,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4557
4630
  "terminal": {
4558
4631
  "$type": "RuleCall",
4559
4632
  "rule": {
4560
- "$ref": "#/rules@51"
4633
+ "$ref": "#/rules@52"
4561
4634
  },
4562
4635
  "arguments": []
4563
4636
  },
@@ -4617,12 +4690,12 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4617
4690
  "terminal": {
4618
4691
  "$type": "CrossReference",
4619
4692
  "type": {
4620
- "$ref": "#/rules@53"
4693
+ "$ref": "#/rules@54"
4621
4694
  },
4622
4695
  "terminal": {
4623
4696
  "$type": "RuleCall",
4624
4697
  "rule": {
4625
- "$ref": "#/rules@67"
4698
+ "$ref": "#/rules@68"
4626
4699
  },
4627
4700
  "arguments": []
4628
4701
  },
@@ -4639,7 +4712,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4639
4712
  {
4640
4713
  "$type": "RuleCall",
4641
4714
  "rule": {
4642
- "$ref": "#/rules@59"
4715
+ "$ref": "#/rules@60"
4643
4716
  },
4644
4717
  "arguments": [],
4645
4718
  "cardinality": "?"
@@ -4669,7 +4742,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4669
4742
  {
4670
4743
  "$type": "RuleCall",
4671
4744
  "rule": {
4672
- "$ref": "#/rules@71"
4745
+ "$ref": "#/rules@72"
4673
4746
  },
4674
4747
  "arguments": [],
4675
4748
  "cardinality": "*"
@@ -4681,12 +4754,12 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4681
4754
  "terminal": {
4682
4755
  "$type": "CrossReference",
4683
4756
  "type": {
4684
- "$ref": "#/rules@53"
4757
+ "$ref": "#/rules@54"
4685
4758
  },
4686
4759
  "terminal": {
4687
4760
  "$type": "RuleCall",
4688
4761
  "rule": {
4689
- "$ref": "#/rules@66"
4762
+ "$ref": "#/rules@67"
4690
4763
  },
4691
4764
  "arguments": []
4692
4765
  },
@@ -4703,7 +4776,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4703
4776
  {
4704
4777
  "$type": "RuleCall",
4705
4778
  "rule": {
4706
- "$ref": "#/rules@59"
4779
+ "$ref": "#/rules@60"
4707
4780
  },
4708
4781
  "arguments": [],
4709
4782
  "cardinality": "?"
@@ -4737,12 +4810,12 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4737
4810
  "terminal": {
4738
4811
  "$type": "CrossReference",
4739
4812
  "type": {
4740
- "$ref": "#/rules@53"
4813
+ "$ref": "#/rules@54"
4741
4814
  },
4742
4815
  "terminal": {
4743
4816
  "$type": "RuleCall",
4744
4817
  "rule": {
4745
- "$ref": "#/rules@65"
4818
+ "$ref": "#/rules@66"
4746
4819
  },
4747
4820
  "arguments": []
4748
4821
  },
@@ -4759,7 +4832,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4759
4832
  {
4760
4833
  "$type": "RuleCall",
4761
4834
  "rule": {
4762
- "$ref": "#/rules@59"
4835
+ "$ref": "#/rules@60"
4763
4836
  },
4764
4837
  "arguments": [],
4765
4838
  "cardinality": "?"
@@ -4794,7 +4867,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4794
4867
  "terminal": {
4795
4868
  "$type": "RuleCall",
4796
4869
  "rule": {
4797
- "$ref": "#/rules@60"
4870
+ "$ref": "#/rules@61"
4798
4871
  },
4799
4872
  "arguments": []
4800
4873
  }
@@ -4813,7 +4886,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4813
4886
  "terminal": {
4814
4887
  "$type": "RuleCall",
4815
4888
  "rule": {
4816
- "$ref": "#/rules@60"
4889
+ "$ref": "#/rules@61"
4817
4890
  },
4818
4891
  "arguments": []
4819
4892
  }
@@ -4845,7 +4918,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4845
4918
  "terminal": {
4846
4919
  "$type": "RuleCall",
4847
4920
  "rule": {
4848
- "$ref": "#/rules@51"
4921
+ "$ref": "#/rules@52"
4849
4922
  },
4850
4923
  "arguments": []
4851
4924
  }
@@ -5141,19 +5214,25 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
5141
5214
  {
5142
5215
  "$type": "SimpleType",
5143
5216
  "typeRef": {
5144
- "$ref": "#/rules@47"
5217
+ "$ref": "#/rules@48"
5145
5218
  }
5146
5219
  },
5147
5220
  {
5148
5221
  "$type": "SimpleType",
5149
5222
  "typeRef": {
5150
- "$ref": "#/rules@40"
5223
+ "$ref": "#/rules@41"
5151
5224
  }
5152
5225
  },
5153
5226
  {
5154
5227
  "$type": "SimpleType",
5155
5228
  "typeRef": {
5156
- "$ref": "#/rules@45"
5229
+ "$ref": "#/rules@46"
5230
+ }
5231
+ },
5232
+ {
5233
+ "$type": "SimpleType",
5234
+ "typeRef": {
5235
+ "$ref": "#/rules@30"
5157
5236
  }
5158
5237
  }
5159
5238
  ]
@@ -5165,7 +5244,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
5165
5244
  "type": {
5166
5245
  "$type": "SimpleType",
5167
5246
  "typeRef": {
5168
- "$ref": "#/rules@40"
5247
+ "$ref": "#/rules@41"
5169
5248
  }
5170
5249
  }
5171
5250
  },
@@ -5178,19 +5257,19 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
5178
5257
  {
5179
5258
  "$type": "SimpleType",
5180
5259
  "typeRef": {
5181
- "$ref": "#/rules@37"
5260
+ "$ref": "#/rules@38"
5182
5261
  }
5183
5262
  },
5184
5263
  {
5185
5264
  "$type": "SimpleType",
5186
5265
  "typeRef": {
5187
- "$ref": "#/rules@42"
5266
+ "$ref": "#/rules@43"
5188
5267
  }
5189
5268
  },
5190
5269
  {
5191
5270
  "$type": "SimpleType",
5192
5271
  "typeRef": {
5193
- "$ref": "#/rules@44"
5272
+ "$ref": "#/rules@45"
5194
5273
  }
5195
5274
  }
5196
5275
  ]
@@ -6241,7 +6320,13 @@ function isValidAttributeTarget(attrDecl, targetDecl) {
6241
6320
  if (!targetField?.args[0]) {
6242
6321
  return true;
6243
6322
  }
6244
- const fieldTypes = targetField.args[0].value.items.map((item) => item.target.ref?.name);
6323
+ const fieldTypes = targetField.args[0].value.items.map((item) => {
6324
+ if (!isReferenceExpr(item)) {
6325
+ return void 0;
6326
+ }
6327
+ const ref = item.target.ref;
6328
+ return ref && "name" in ref && typeof ref.name === "string" ? ref.name : void 0;
6329
+ }).filter((name) => !!name);
6245
6330
  let allowed = false;
6246
6331
  for (const allowedType of fieldTypes) {
6247
6332
  switch (allowedType) {
@@ -6412,14 +6497,6 @@ var DataModelValidator = class {
6412
6497
  node: field.type.unsupported
6413
6498
  });
6414
6499
  }
6415
- if (field.type.array && !isDataModel(field.type.reference?.ref)) {
6416
- const provider = this.getDataSourceProvider(import_langium4.AstUtils.getContainerOfType(field, isModel));
6417
- if (provider === "sqlite") {
6418
- accept("error", `List type is not supported for "${provider}" provider.`, {
6419
- node: field.type
6420
- });
6421
- }
6422
- }
6423
6500
  field.attributes.forEach((attr) => validateAttributeApplication(attr, accept));
6424
6501
  if (isTypeDef(field.type.reference?.ref)) {
6425
6502
  if (!hasAttribute(field, "@json")) {
@@ -6429,17 +6506,6 @@ var DataModelValidator = class {
6429
6506
  }
6430
6507
  }
6431
6508
  }
6432
- getDataSourceProvider(model) {
6433
- const dataSource = model.declarations.find(isDataSource);
6434
- if (!dataSource) {
6435
- return void 0;
6436
- }
6437
- const provider = dataSource?.fields.find((f) => f.name === "provider");
6438
- if (!provider) {
6439
- return void 0;
6440
- }
6441
- return getLiteral(provider.value);
6442
- }
6443
6509
  validateAttributes(dm, accept) {
6444
6510
  getAllAttributes(dm).forEach((attr) => validateAttributeApplication(attr, accept, dm));
6445
6511
  }
@@ -6864,7 +6930,7 @@ var ExpressionValidator = class {
6864
6930
  }
6865
6931
  return false;
6866
6932
  });
6867
- if (!hasReferenceResolutionError) {
6933
+ if (hasReferenceResolutionError) {
6868
6934
  accept("error", "Expression cannot be resolved", {
6869
6935
  node: expr
6870
6936
  });
@@ -6872,6 +6938,9 @@ var ExpressionValidator = class {
6872
6938
  }
6873
6939
  }
6874
6940
  switch (expr.$type) {
6941
+ case "ReferenceExpr":
6942
+ this.validateReferenceExpr(expr, accept);
6943
+ break;
6875
6944
  case "MemberAccessExpr":
6876
6945
  this.validateMemberAccessExpr(expr, accept);
6877
6946
  break;
@@ -6883,6 +6952,13 @@ var ExpressionValidator = class {
6883
6952
  break;
6884
6953
  }
6885
6954
  }
6955
+ validateReferenceExpr(expr, accept) {
6956
+ if (isCollectionPredicateBinding(expr.target.ref) && !isMemberAccessExpr(expr.$container)) {
6957
+ accept("error", "Collection predicate binding cannot be used without a member access", {
6958
+ node: expr
6959
+ });
6960
+ }
6961
+ }
6886
6962
  validateMemberAccessExpr(expr, accept) {
6887
6963
  if (isBeforeInvocation(expr.operand) && isDataModel(expr.$resolvedType?.decl)) {
6888
6964
  accept("error", "relation fields cannot be accessed from `before()`", {
@@ -7780,7 +7856,8 @@ ${ast.fields.map((x) => this.indent + this.generate(x)).join("\n")}${ast.attribu
7780
7856
  const isCollectionPredicate2 = this.isCollectionPredicateOperator(operator);
7781
7857
  const rightExpr = this.generate(ast.right);
7782
7858
  const { left: isLeftParenthesis, right: isRightParenthesis } = this.isParenthesesNeededForBinaryExpr(ast);
7783
- return `${isLeftParenthesis ? "(" : ""}${this.generate(ast.left)}${isLeftParenthesis ? ")" : ""}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${operator}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${isRightParenthesis ? "(" : ""}${isCollectionPredicate2 ? `[${rightExpr}]` : rightExpr}${isRightParenthesis ? ")" : ""}`;
7859
+ const collectionPredicate = isCollectionPredicate2 ? `[${ast.binding ? `${ast.binding}, ${rightExpr}` : rightExpr}]` : rightExpr;
7860
+ return `${isLeftParenthesis ? "(" : ""}${this.generate(ast.left)}${isLeftParenthesis ? ")" : ""}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${operator}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${isRightParenthesis ? "(" : ""}${collectionPredicate}${isRightParenthesis ? ")" : ""}`;
7784
7861
  }
7785
7862
  _generateReferenceExpr(ast) {
7786
7863
  const args = ast.args.length ? `(${ast.args.map((x) => this.generate(x)).join(", ")})` : "";
@@ -8749,11 +8826,20 @@ var ZModelLinker = class extends import_langium10.DefaultLinker {
8749
8826
  }
8750
8827
  resolveReference(node, document, extraScopes) {
8751
8828
  this.resolveDefault(node, document, extraScopes);
8752
- if (node.target.ref) {
8753
- if (node.target.ref.$type === EnumField) {
8754
- this.resolveToBuiltinTypeOrDecl(node, node.target.ref.$container);
8755
- } else {
8756
- this.resolveToDeclaredType(node, node.target.ref.type);
8829
+ const target = node.target.ref;
8830
+ if (target) {
8831
+ if (isCollectionPredicateBinding(target)) {
8832
+ const collectionType = target.$container.left.$resolvedType;
8833
+ if (collectionType) {
8834
+ node.$resolvedType = {
8835
+ ...collectionType,
8836
+ array: false
8837
+ };
8838
+ }
8839
+ } else if (isEnumField(target)) {
8840
+ this.resolveToBuiltinTypeOrDecl(node, target.$container);
8841
+ } else if (isDataField(target) || isFunctionParam(target)) {
8842
+ this.resolveToDeclaredType(node, target.type);
8757
8843
  }
8758
8844
  }
8759
8845
  }
@@ -8926,6 +9012,9 @@ var ZModelLinker = class extends import_langium10.DefaultLinker {
8926
9012
  //#endregion
8927
9013
  //#region Utils
8928
9014
  resolveToDeclaredType(node, type) {
9015
+ if (!type) {
9016
+ return;
9017
+ }
8929
9018
  let nullable = false;
8930
9019
  if (isDataFieldType(type)) {
8931
9020
  nullable = type.optional;
@@ -9040,10 +9129,13 @@ var ZModelScopeProvider = class extends import_langium11.DefaultScopeProvider {
9040
9129
  const allowTypeDefScope = isAuthOrAuthMemberAccess(node.operand) || !!import_langium11.AstUtils.getContainerOfType(node, isTypeDef);
9041
9130
  return (0, import_ts_pattern5.match)(node.operand).when(isReferenceExpr, (operand) => {
9042
9131
  const ref = operand.target.ref;
9043
- if (isDataField(ref)) {
9044
- return this.createScopeForContainer(ref.type.reference?.ref, globalScope, allowTypeDefScope);
9045
- }
9046
- return import_langium11.EMPTY_SCOPE;
9132
+ return (0, import_ts_pattern5.match)(ref).when(isDataField, (r) => (
9133
+ // build a scope with model/typedef members
9134
+ this.createScopeForContainer(r.type.reference?.ref, globalScope, allowTypeDefScope)
9135
+ )).when(isCollectionPredicateBinding, (r) => (
9136
+ // build a scope from the collection predicate's collection
9137
+ this.createScopeForCollectionPredicateCollection(r.$container.left, globalScope, allowTypeDefScope)
9138
+ )).otherwise(() => import_langium11.EMPTY_SCOPE);
9047
9139
  }).when(isMemberAccessExpr, (operand) => {
9048
9140
  const ref = operand.member.ref;
9049
9141
  if (isDataField(ref) && !ref.type.array) {
@@ -9063,10 +9155,24 @@ var ZModelScopeProvider = class extends import_langium11.DefaultScopeProvider {
9063
9155
  }).otherwise(() => import_langium11.EMPTY_SCOPE);
9064
9156
  }
9065
9157
  getCollectionPredicateScope(context, collectionPredicate) {
9066
- const referenceType = this.reflection.getReferenceType(context);
9067
- const globalScope = this.getGlobalScope(referenceType, context);
9158
+ let currPredicate = collectionPredicate;
9159
+ const bindingStack = [];
9160
+ while (currPredicate) {
9161
+ if (currPredicate.binding) {
9162
+ bindingStack.unshift(currPredicate.binding);
9163
+ }
9164
+ currPredicate = import_langium11.AstUtils.getContainerOfType(currPredicate.$container, isCollectionPredicate);
9165
+ }
9166
+ const globalScope = this.getGlobalScope(this.reflection.getReferenceType(context), context);
9167
+ const parentScope = bindingStack.reduce((scope, binding) => this.createScopeForNodes([
9168
+ binding
9169
+ ], scope), globalScope);
9068
9170
  const collection = collectionPredicate.left;
9069
9171
  const allowTypeDefScope = isAuthOrAuthMemberAccess(collection);
9172
+ const collectionScope = this.createScopeForCollectionPredicateCollection(collection, parentScope, allowTypeDefScope);
9173
+ return collectionScope;
9174
+ }
9175
+ createScopeForCollectionPredicateCollection(collection, globalScope, allowTypeDefScope) {
9070
9176
  return (0, import_ts_pattern5.match)(collection).when(isReferenceExpr, (expr) => {
9071
9177
  const ref = expr.target.ref;
9072
9178
  if (isDataField(ref)) {
@@ -9484,6 +9590,18 @@ function validationAfterImportMerge(model) {
9484
9590
  if (authDecls.length > 1) {
9485
9591
  errors.push("Validation error: Multiple `@@auth` declarations are not allowed");
9486
9592
  }
9593
+ const provider = getDataSourceProvider(model);
9594
+ (0, import_common_helpers3.invariant)(provider !== void 0, "Datasource provider should be defined at this point");
9595
+ for (const decl of model.declarations.filter(isDataModel)) {
9596
+ const fields = getAllFields(decl, true);
9597
+ for (const field of fields) {
9598
+ if (field.type.array && !isDataModel(field.type.reference?.ref)) {
9599
+ if (!DB_PROVIDERS_SUPPORTING_LIST_TYPE.includes(provider)) {
9600
+ errors.push(`Validation error: List type is not supported for "${provider}" provider (model: "${decl.name}", field: "${field.name}")`);
9601
+ }
9602
+ }
9603
+ }
9604
+ }
9487
9605
  return errors;
9488
9606
  }
9489
9607
  __name(validationAfterImportMerge, "validationAfterImportMerge");
@@ -9506,6 +9624,18 @@ async function formatDocument(content) {
9506
9624
  return import_langium14.TextDocument.applyEdits(document.textDocument, edits);
9507
9625
  }
9508
9626
  __name(formatDocument, "formatDocument");
9627
+ function getDataSourceProvider(model) {
9628
+ const dataSource = model.declarations.find(isDataSource);
9629
+ if (!dataSource) {
9630
+ return void 0;
9631
+ }
9632
+ const provider = dataSource?.fields.find((f) => f.name === "provider");
9633
+ if (!provider) {
9634
+ return void 0;
9635
+ }
9636
+ return getLiteral(provider.value);
9637
+ }
9638
+ __name(getDataSourceProvider, "getDataSourceProvider");
9509
9639
  // Annotate the CommonJS export names for ESM import in node:
9510
9640
  0 && (module.exports = {
9511
9641
  ZModelCodeGenerator,