@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.js CHANGED
@@ -8,6 +8,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
8
8
  });
9
9
 
10
10
  // src/document.ts
11
+ import { invariant as invariant3 } from "@zenstackhq/common-helpers";
11
12
  import { isAstNode, TextDocument, URI as URI4 } from "langium";
12
13
  import fs4 from "fs";
13
14
  import path4 from "path";
@@ -62,6 +63,11 @@ function isBooleanLiteral(item) {
62
63
  return reflection.isInstance(item, BooleanLiteral);
63
64
  }
64
65
  __name(isBooleanLiteral, "isBooleanLiteral");
66
+ var CollectionPredicateBinding = "CollectionPredicateBinding";
67
+ function isCollectionPredicateBinding(item) {
68
+ return reflection.isInstance(item, CollectionPredicateBinding);
69
+ }
70
+ __name(isCollectionPredicateBinding, "isCollectionPredicateBinding");
65
71
  var ConfigArrayExpr = "ConfigArrayExpr";
66
72
  function isConfigArrayExpr(item) {
67
73
  return reflection.isInstance(item, ConfigArrayExpr);
@@ -121,6 +127,10 @@ function isFunctionDecl(item) {
121
127
  }
122
128
  __name(isFunctionDecl, "isFunctionDecl");
123
129
  var FunctionParam = "FunctionParam";
130
+ function isFunctionParam(item) {
131
+ return reflection.isInstance(item, FunctionParam);
132
+ }
133
+ __name(isFunctionParam, "isFunctionParam");
124
134
  var FunctionParamType = "FunctionParamType";
125
135
  var GeneratorDecl = "GeneratorDecl";
126
136
  function isGeneratorDecl(item) {
@@ -217,6 +227,7 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
217
227
  AttributeParamType,
218
228
  BinaryExpr,
219
229
  BooleanLiteral,
230
+ CollectionPredicateBinding,
220
231
  ConfigArrayExpr,
221
232
  ConfigExpr,
222
233
  ConfigField,
@@ -286,6 +297,11 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
286
297
  case StringLiteral: {
287
298
  return this.isSubtype(LiteralExpr, supertype);
288
299
  }
300
+ case CollectionPredicateBinding:
301
+ case EnumField:
302
+ case FunctionParam: {
303
+ return this.isSubtype(ReferenceTarget, supertype);
304
+ }
289
305
  case ConfigArrayExpr: {
290
306
  return this.isSubtype(ConfigExpr, supertype);
291
307
  }
@@ -297,10 +313,6 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
297
313
  case TypeDef: {
298
314
  return this.isSubtype(AbstractDeclaration, supertype) || this.isSubtype(TypeDeclaration, supertype);
299
315
  }
300
- case EnumField:
301
- case FunctionParam: {
302
- return this.isSubtype(ReferenceTarget, supertype);
303
- }
304
316
  case InvocationExpr:
305
317
  case LiteralExpr: {
306
318
  return this.isSubtype(ConfigExpr, supertype) || this.isSubtype(Expression, supertype);
@@ -452,6 +464,9 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
452
464
  return {
453
465
  name: BinaryExpr,
454
466
  properties: [
467
+ {
468
+ name: "binding"
469
+ },
455
470
  {
456
471
  name: "left"
457
472
  },
@@ -474,6 +489,16 @@ var ZModelAstReflection = class extends langium.AbstractAstReflection {
474
489
  ]
475
490
  };
476
491
  }
492
+ case CollectionPredicateBinding: {
493
+ return {
494
+ name: CollectionPredicateBinding,
495
+ properties: [
496
+ {
497
+ name: "name"
498
+ }
499
+ ]
500
+ };
501
+ }
477
502
  case ConfigArrayExpr: {
478
503
  return {
479
504
  name: ConfigArrayExpr,
@@ -1066,7 +1091,8 @@ var BinaryExprOperatorPriority = {
1066
1091
  // src/constants.ts
1067
1092
  var SUPPORTED_PROVIDERS = [
1068
1093
  "sqlite",
1069
- "postgresql"
1094
+ "postgresql",
1095
+ "mysql"
1070
1096
  ];
1071
1097
  var SCALAR_TYPES = [
1072
1098
  "String",
@@ -1091,6 +1117,9 @@ var ExpressionContext = /* @__PURE__ */ function(ExpressionContext2) {
1091
1117
  ExpressionContext2["Index"] = "Index";
1092
1118
  return ExpressionContext2;
1093
1119
  }({});
1120
+ var DB_PROVIDERS_SUPPORTING_LIST_TYPE = [
1121
+ "postgresql"
1122
+ ];
1094
1123
 
1095
1124
  // src/module.ts
1096
1125
  import { DocumentState as DocumentState2, inject, URI as URI3 } from "langium";
@@ -1165,7 +1194,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1165
1194
  "terminal": {
1166
1195
  "$type": "RuleCall",
1167
1196
  "rule": {
1168
- "$ref": "#/rules@69"
1197
+ "$ref": "#/rules@70"
1169
1198
  },
1170
1199
  "arguments": []
1171
1200
  }
@@ -1214,42 +1243,42 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1214
1243
  {
1215
1244
  "$type": "RuleCall",
1216
1245
  "rule": {
1217
- "$ref": "#/rules@37"
1246
+ "$ref": "#/rules@38"
1218
1247
  },
1219
1248
  "arguments": []
1220
1249
  },
1221
1250
  {
1222
1251
  "$type": "RuleCall",
1223
1252
  "rule": {
1224
- "$ref": "#/rules@42"
1253
+ "$ref": "#/rules@43"
1225
1254
  },
1226
1255
  "arguments": []
1227
1256
  },
1228
1257
  {
1229
1258
  "$type": "RuleCall",
1230
1259
  "rule": {
1231
- "$ref": "#/rules@44"
1260
+ "$ref": "#/rules@45"
1232
1261
  },
1233
1262
  "arguments": []
1234
1263
  },
1235
1264
  {
1236
1265
  "$type": "RuleCall",
1237
1266
  "rule": {
1238
- "$ref": "#/rules@46"
1267
+ "$ref": "#/rules@47"
1239
1268
  },
1240
1269
  "arguments": []
1241
1270
  },
1242
1271
  {
1243
1272
  "$type": "RuleCall",
1244
1273
  "rule": {
1245
- "$ref": "#/rules@53"
1274
+ "$ref": "#/rules@54"
1246
1275
  },
1247
1276
  "arguments": []
1248
1277
  },
1249
1278
  {
1250
1279
  "$type": "RuleCall",
1251
1280
  "rule": {
1252
- "$ref": "#/rules@50"
1281
+ "$ref": "#/rules@51"
1253
1282
  },
1254
1283
  "arguments": []
1255
1284
  }
@@ -1271,7 +1300,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1271
1300
  {
1272
1301
  "$type": "RuleCall",
1273
1302
  "rule": {
1274
- "$ref": "#/rules@71"
1303
+ "$ref": "#/rules@72"
1275
1304
  },
1276
1305
  "arguments": [],
1277
1306
  "cardinality": "*"
@@ -1287,7 +1316,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1287
1316
  "terminal": {
1288
1317
  "$type": "RuleCall",
1289
1318
  "rule": {
1290
- "$ref": "#/rules@51"
1319
+ "$ref": "#/rules@52"
1291
1320
  },
1292
1321
  "arguments": []
1293
1322
  }
@@ -1331,7 +1360,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1331
1360
  {
1332
1361
  "$type": "RuleCall",
1333
1362
  "rule": {
1334
- "$ref": "#/rules@71"
1363
+ "$ref": "#/rules@72"
1335
1364
  },
1336
1365
  "arguments": [],
1337
1366
  "cardinality": "*"
@@ -1347,7 +1376,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1347
1376
  "terminal": {
1348
1377
  "$type": "RuleCall",
1349
1378
  "rule": {
1350
- "$ref": "#/rules@51"
1379
+ "$ref": "#/rules@52"
1351
1380
  },
1352
1381
  "arguments": []
1353
1382
  }
@@ -1391,7 +1420,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1391
1420
  {
1392
1421
  "$type": "RuleCall",
1393
1422
  "rule": {
1394
- "$ref": "#/rules@71"
1423
+ "$ref": "#/rules@72"
1395
1424
  },
1396
1425
  "arguments": [],
1397
1426
  "cardinality": "*"
@@ -1403,7 +1432,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1403
1432
  "terminal": {
1404
1433
  "$type": "RuleCall",
1405
1434
  "rule": {
1406
- "$ref": "#/rules@51"
1435
+ "$ref": "#/rules@52"
1407
1436
  },
1408
1437
  "arguments": []
1409
1438
  }
@@ -1442,7 +1471,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1442
1471
  {
1443
1472
  "$type": "RuleCall",
1444
1473
  "rule": {
1445
- "$ref": "#/rules@71"
1474
+ "$ref": "#/rules@72"
1446
1475
  },
1447
1476
  "arguments": [],
1448
1477
  "cardinality": "*"
@@ -1458,7 +1487,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1458
1487
  "terminal": {
1459
1488
  "$type": "RuleCall",
1460
1489
  "rule": {
1461
- "$ref": "#/rules@51"
1490
+ "$ref": "#/rules@52"
1462
1491
  },
1463
1492
  "arguments": []
1464
1493
  }
@@ -1502,7 +1531,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1502
1531
  {
1503
1532
  "$type": "RuleCall",
1504
1533
  "rule": {
1505
- "$ref": "#/rules@71"
1534
+ "$ref": "#/rules@72"
1506
1535
  },
1507
1536
  "arguments": [],
1508
1537
  "cardinality": "*"
@@ -1514,7 +1543,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1514
1543
  "terminal": {
1515
1544
  "$type": "RuleCall",
1516
1545
  "rule": {
1517
- "$ref": "#/rules@51"
1546
+ "$ref": "#/rules@52"
1518
1547
  },
1519
1548
  "arguments": []
1520
1549
  }
@@ -1569,7 +1598,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1569
1598
  "definition": {
1570
1599
  "$type": "RuleCall",
1571
1600
  "rule": {
1572
- "$ref": "#/rules@33"
1601
+ "$ref": "#/rules@34"
1573
1602
  },
1574
1603
  "arguments": []
1575
1604
  },
@@ -1590,7 +1619,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1590
1619
  "terminal": {
1591
1620
  "$type": "RuleCall",
1592
1621
  "rule": {
1593
- "$ref": "#/rules@70"
1622
+ "$ref": "#/rules@71"
1594
1623
  },
1595
1624
  "arguments": []
1596
1625
  }
@@ -1612,7 +1641,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1612
1641
  "terminal": {
1613
1642
  "$type": "RuleCall",
1614
1643
  "rule": {
1615
- "$ref": "#/rules@69"
1644
+ "$ref": "#/rules@70"
1616
1645
  },
1617
1646
  "arguments": []
1618
1647
  }
@@ -1634,7 +1663,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1634
1663
  "terminal": {
1635
1664
  "$type": "RuleCall",
1636
1665
  "rule": {
1637
- "$ref": "#/rules@63"
1666
+ "$ref": "#/rules@64"
1638
1667
  },
1639
1668
  "arguments": []
1640
1669
  }
@@ -1758,7 +1787,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1758
1787
  "terminal": {
1759
1788
  "$type": "RuleCall",
1760
1789
  "rule": {
1761
- "$ref": "#/rules@68"
1790
+ "$ref": "#/rules@69"
1762
1791
  },
1763
1792
  "arguments": []
1764
1793
  }
@@ -1856,7 +1885,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
1856
1885
  "terminal": {
1857
1886
  "$type": "RuleCall",
1858
1887
  "rule": {
1859
- "$ref": "#/rules@68"
1888
+ "$ref": "#/rules@69"
1860
1889
  },
1861
1890
  "arguments": []
1862
1891
  }
@@ -2065,7 +2094,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2065
2094
  "terminal": {
2066
2095
  "$type": "RuleCall",
2067
2096
  "rule": {
2068
- "$ref": "#/rules@52"
2097
+ "$ref": "#/rules@53"
2069
2098
  },
2070
2099
  "arguments": []
2071
2100
  },
@@ -2164,7 +2193,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2164
2193
  "terminal": {
2165
2194
  "$type": "RuleCall",
2166
2195
  "rule": {
2167
- "$ref": "#/rules@68"
2196
+ "$ref": "#/rules@69"
2168
2197
  },
2169
2198
  "arguments": []
2170
2199
  }
@@ -2278,14 +2307,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2278
2307
  {
2279
2308
  "$type": "RuleCall",
2280
2309
  "rule": {
2281
- "$ref": "#/rules@51"
2310
+ "$ref": "#/rules@52"
2282
2311
  },
2283
2312
  "arguments": []
2284
2313
  },
2285
2314
  {
2286
2315
  "$type": "RuleCall",
2287
2316
  "rule": {
2288
- "$ref": "#/rules@69"
2317
+ "$ref": "#/rules@70"
2289
2318
  },
2290
2319
  "arguments": []
2291
2320
  }
@@ -2330,7 +2359,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2330
2359
  "terminal": {
2331
2360
  "$type": "CrossReference",
2332
2361
  "type": {
2333
- "$ref": "#/rules@46"
2362
+ "$ref": "#/rules@47"
2334
2363
  },
2335
2364
  "deprecatedSyntax": false
2336
2365
  }
@@ -2342,7 +2371,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2342
2371
  {
2343
2372
  "$type": "RuleCall",
2344
2373
  "rule": {
2345
- "$ref": "#/rules@35"
2374
+ "$ref": "#/rules@36"
2346
2375
  },
2347
2376
  "arguments": [],
2348
2377
  "cardinality": "?"
@@ -2373,7 +2402,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2373
2402
  {
2374
2403
  "$type": "RuleCall",
2375
2404
  "rule": {
2376
- "$ref": "#/rules@34"
2405
+ "$ref": "#/rules@35"
2377
2406
  },
2378
2407
  "arguments": []
2379
2408
  },
@@ -2513,6 +2542,28 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2513
2542
  "$type": "Keyword",
2514
2543
  "value": "["
2515
2544
  },
2545
+ {
2546
+ "$type": "Group",
2547
+ "elements": [
2548
+ {
2549
+ "$type": "Assignment",
2550
+ "feature": "binding",
2551
+ "operator": "=",
2552
+ "terminal": {
2553
+ "$type": "RuleCall",
2554
+ "rule": {
2555
+ "$ref": "#/rules@30"
2556
+ },
2557
+ "arguments": []
2558
+ }
2559
+ },
2560
+ {
2561
+ "$type": "Keyword",
2562
+ "value": ","
2563
+ }
2564
+ ],
2565
+ "cardinality": "?"
2566
+ },
2516
2567
  {
2517
2568
  "$type": "Assignment",
2518
2569
  "feature": "right",
@@ -2541,6 +2592,28 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2541
2592
  "parameters": [],
2542
2593
  "wildcard": false
2543
2594
  },
2595
+ {
2596
+ "$type": "ParserRule",
2597
+ "name": "CollectionPredicateBinding",
2598
+ "definition": {
2599
+ "$type": "Assignment",
2600
+ "feature": "name",
2601
+ "operator": "=",
2602
+ "terminal": {
2603
+ "$type": "RuleCall",
2604
+ "rule": {
2605
+ "$ref": "#/rules@52"
2606
+ },
2607
+ "arguments": []
2608
+ }
2609
+ },
2610
+ "definesHiddenTokens": false,
2611
+ "entry": false,
2612
+ "fragment": false,
2613
+ "hiddenTokens": [],
2614
+ "parameters": [],
2615
+ "wildcard": false
2616
+ },
2544
2617
  {
2545
2618
  "$type": "ParserRule",
2546
2619
  "name": "InExpr",
@@ -2616,7 +2689,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2616
2689
  {
2617
2690
  "$type": "RuleCall",
2618
2691
  "rule": {
2619
- "$ref": "#/rules@30"
2692
+ "$ref": "#/rules@31"
2620
2693
  },
2621
2694
  "arguments": []
2622
2695
  },
@@ -2665,7 +2738,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2665
2738
  "terminal": {
2666
2739
  "$type": "RuleCall",
2667
2740
  "rule": {
2668
- "$ref": "#/rules@30"
2741
+ "$ref": "#/rules@31"
2669
2742
  },
2670
2743
  "arguments": []
2671
2744
  }
@@ -2695,7 +2768,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2695
2768
  {
2696
2769
  "$type": "RuleCall",
2697
2770
  "rule": {
2698
- "$ref": "#/rules@31"
2771
+ "$ref": "#/rules@32"
2699
2772
  },
2700
2773
  "arguments": []
2701
2774
  },
@@ -2736,7 +2809,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2736
2809
  "terminal": {
2737
2810
  "$type": "RuleCall",
2738
2811
  "rule": {
2739
- "$ref": "#/rules@31"
2812
+ "$ref": "#/rules@32"
2740
2813
  },
2741
2814
  "arguments": []
2742
2815
  }
@@ -2766,7 +2839,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2766
2839
  {
2767
2840
  "$type": "RuleCall",
2768
2841
  "rule": {
2769
- "$ref": "#/rules@32"
2842
+ "$ref": "#/rules@33"
2770
2843
  },
2771
2844
  "arguments": []
2772
2845
  },
@@ -2807,7 +2880,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2807
2880
  "terminal": {
2808
2881
  "$type": "RuleCall",
2809
2882
  "rule": {
2810
- "$ref": "#/rules@32"
2883
+ "$ref": "#/rules@33"
2811
2884
  },
2812
2885
  "arguments": []
2813
2886
  }
@@ -2933,7 +3006,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2933
3006
  "terminal": {
2934
3007
  "$type": "RuleCall",
2935
3008
  "rule": {
2936
- "$ref": "#/rules@36"
3009
+ "$ref": "#/rules@37"
2937
3010
  },
2938
3011
  "arguments": []
2939
3012
  }
@@ -2952,7 +3025,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
2952
3025
  "terminal": {
2953
3026
  "$type": "RuleCall",
2954
3027
  "rule": {
2955
- "$ref": "#/rules@36"
3028
+ "$ref": "#/rules@37"
2956
3029
  },
2957
3030
  "arguments": []
2958
3031
  }
@@ -3003,7 +3076,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3003
3076
  "terminal": {
3004
3077
  "$type": "RuleCall",
3005
3078
  "rule": {
3006
- "$ref": "#/rules@71"
3079
+ "$ref": "#/rules@72"
3007
3080
  },
3008
3081
  "arguments": []
3009
3082
  },
@@ -3026,7 +3099,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3026
3099
  "terminal": {
3027
3100
  "$type": "RuleCall",
3028
3101
  "rule": {
3029
- "$ref": "#/rules@51"
3102
+ "$ref": "#/rules@52"
3030
3103
  },
3031
3104
  "arguments": []
3032
3105
  }
@@ -3037,14 +3110,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3037
3110
  {
3038
3111
  "$type": "RuleCall",
3039
3112
  "rule": {
3040
- "$ref": "#/rules@38"
3113
+ "$ref": "#/rules@39"
3041
3114
  },
3042
3115
  "arguments": []
3043
3116
  },
3044
3117
  {
3045
3118
  "$type": "RuleCall",
3046
3119
  "rule": {
3047
- "$ref": "#/rules@39"
3120
+ "$ref": "#/rules@40"
3048
3121
  },
3049
3122
  "arguments": []
3050
3123
  },
@@ -3054,14 +3127,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3054
3127
  {
3055
3128
  "$type": "RuleCall",
3056
3129
  "rule": {
3057
- "$ref": "#/rules@39"
3130
+ "$ref": "#/rules@40"
3058
3131
  },
3059
3132
  "arguments": []
3060
3133
  },
3061
3134
  {
3062
3135
  "$type": "RuleCall",
3063
3136
  "rule": {
3064
- "$ref": "#/rules@38"
3137
+ "$ref": "#/rules@39"
3065
3138
  },
3066
3139
  "arguments": []
3067
3140
  }
@@ -3073,14 +3146,14 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3073
3146
  {
3074
3147
  "$type": "RuleCall",
3075
3148
  "rule": {
3076
- "$ref": "#/rules@38"
3149
+ "$ref": "#/rules@39"
3077
3150
  },
3078
3151
  "arguments": []
3079
3152
  },
3080
3153
  {
3081
3154
  "$type": "RuleCall",
3082
3155
  "rule": {
3083
- "$ref": "#/rules@39"
3156
+ "$ref": "#/rules@40"
3084
3157
  },
3085
3158
  "arguments": []
3086
3159
  }
@@ -3110,7 +3183,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3110
3183
  "terminal": {
3111
3184
  "$type": "RuleCall",
3112
3185
  "rule": {
3113
- "$ref": "#/rules@51"
3186
+ "$ref": "#/rules@52"
3114
3187
  },
3115
3188
  "arguments": []
3116
3189
  }
@@ -3133,7 +3206,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3133
3206
  "terminal": {
3134
3207
  "$type": "RuleCall",
3135
3208
  "rule": {
3136
- "$ref": "#/rules@40"
3209
+ "$ref": "#/rules@41"
3137
3210
  },
3138
3211
  "arguments": []
3139
3212
  }
@@ -3145,7 +3218,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3145
3218
  "terminal": {
3146
3219
  "$type": "RuleCall",
3147
3220
  "rule": {
3148
- "$ref": "#/rules@57"
3221
+ "$ref": "#/rules@58"
3149
3222
  },
3150
3223
  "arguments": []
3151
3224
  }
@@ -3184,7 +3257,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3184
3257
  "terminal": {
3185
3258
  "$type": "CrossReference",
3186
3259
  "type": {
3187
- "$ref": "#/rules@42"
3260
+ "$ref": "#/rules@43"
3188
3261
  },
3189
3262
  "deprecatedSyntax": false
3190
3263
  }
@@ -3204,7 +3277,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3204
3277
  "terminal": {
3205
3278
  "$type": "CrossReference",
3206
3279
  "type": {
3207
- "$ref": "#/rules@42"
3280
+ "$ref": "#/rules@43"
3208
3281
  },
3209
3282
  "deprecatedSyntax": false
3210
3283
  }
@@ -3238,7 +3311,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3238
3311
  "terminal": {
3239
3312
  "$type": "CrossReference",
3240
3313
  "type": {
3241
- "$ref": "#/rules@37"
3314
+ "$ref": "#/rules@38"
3242
3315
  },
3243
3316
  "deprecatedSyntax": false
3244
3317
  }
@@ -3264,7 +3337,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3264
3337
  "terminal": {
3265
3338
  "$type": "RuleCall",
3266
3339
  "rule": {
3267
- "$ref": "#/rules@71"
3340
+ "$ref": "#/rules@72"
3268
3341
  },
3269
3342
  "arguments": []
3270
3343
  },
@@ -3277,7 +3350,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3277
3350
  "terminal": {
3278
3351
  "$type": "RuleCall",
3279
3352
  "rule": {
3280
- "$ref": "#/rules@52"
3353
+ "$ref": "#/rules@53"
3281
3354
  },
3282
3355
  "arguments": []
3283
3356
  }
@@ -3289,7 +3362,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3289
3362
  "terminal": {
3290
3363
  "$type": "RuleCall",
3291
3364
  "rule": {
3292
- "$ref": "#/rules@41"
3365
+ "$ref": "#/rules@42"
3293
3366
  },
3294
3367
  "arguments": []
3295
3368
  }
@@ -3301,7 +3374,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3301
3374
  "terminal": {
3302
3375
  "$type": "RuleCall",
3303
3376
  "rule": {
3304
- "$ref": "#/rules@56"
3377
+ "$ref": "#/rules@57"
3305
3378
  },
3306
3379
  "arguments": []
3307
3380
  },
@@ -3332,7 +3405,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3332
3405
  "terminal": {
3333
3406
  "$type": "RuleCall",
3334
3407
  "rule": {
3335
- "$ref": "#/rules@62"
3408
+ "$ref": "#/rules@63"
3336
3409
  },
3337
3410
  "arguments": []
3338
3411
  }
@@ -3344,7 +3417,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3344
3417
  "terminal": {
3345
3418
  "$type": "RuleCall",
3346
3419
  "rule": {
3347
- "$ref": "#/rules@43"
3420
+ "$ref": "#/rules@44"
3348
3421
  },
3349
3422
  "arguments": []
3350
3423
  }
@@ -3361,7 +3434,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3361
3434
  "terminal": {
3362
3435
  "$type": "RuleCall",
3363
3436
  "rule": {
3364
- "$ref": "#/rules@51"
3437
+ "$ref": "#/rules@52"
3365
3438
  },
3366
3439
  "arguments": []
3367
3440
  },
@@ -3421,7 +3494,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3421
3494
  "terminal": {
3422
3495
  "$type": "RuleCall",
3423
3496
  "rule": {
3424
- "$ref": "#/rules@71"
3497
+ "$ref": "#/rules@72"
3425
3498
  },
3426
3499
  "arguments": []
3427
3500
  },
@@ -3438,7 +3511,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3438
3511
  "terminal": {
3439
3512
  "$type": "RuleCall",
3440
3513
  "rule": {
3441
- "$ref": "#/rules@51"
3514
+ "$ref": "#/rules@52"
3442
3515
  },
3443
3516
  "arguments": []
3444
3517
  }
@@ -3446,7 +3519,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3446
3519
  {
3447
3520
  "$type": "RuleCall",
3448
3521
  "rule": {
3449
- "$ref": "#/rules@38"
3522
+ "$ref": "#/rules@39"
3450
3523
  },
3451
3524
  "arguments": [],
3452
3525
  "cardinality": "?"
@@ -3465,7 +3538,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3465
3538
  "terminal": {
3466
3539
  "$type": "RuleCall",
3467
3540
  "rule": {
3468
- "$ref": "#/rules@40"
3541
+ "$ref": "#/rules@41"
3469
3542
  },
3470
3543
  "arguments": []
3471
3544
  }
@@ -3477,7 +3550,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3477
3550
  "terminal": {
3478
3551
  "$type": "RuleCall",
3479
3552
  "rule": {
3480
- "$ref": "#/rules@57"
3553
+ "$ref": "#/rules@58"
3481
3554
  },
3482
3555
  "arguments": []
3483
3556
  }
@@ -3550,7 +3623,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3550
3623
  "terminal": {
3551
3624
  "$type": "RuleCall",
3552
3625
  "rule": {
3553
- "$ref": "#/rules@71"
3626
+ "$ref": "#/rules@72"
3554
3627
  },
3555
3628
  "arguments": []
3556
3629
  },
@@ -3567,7 +3640,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3567
3640
  "terminal": {
3568
3641
  "$type": "RuleCall",
3569
3642
  "rule": {
3570
- "$ref": "#/rules@51"
3643
+ "$ref": "#/rules@52"
3571
3644
  },
3572
3645
  "arguments": []
3573
3646
  }
@@ -3586,7 +3659,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3586
3659
  "terminal": {
3587
3660
  "$type": "RuleCall",
3588
3661
  "rule": {
3589
- "$ref": "#/rules@45"
3662
+ "$ref": "#/rules@46"
3590
3663
  },
3591
3664
  "arguments": []
3592
3665
  }
@@ -3598,7 +3671,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3598
3671
  "terminal": {
3599
3672
  "$type": "RuleCall",
3600
3673
  "rule": {
3601
- "$ref": "#/rules@57"
3674
+ "$ref": "#/rules@58"
3602
3675
  },
3603
3676
  "arguments": []
3604
3677
  }
@@ -3632,7 +3705,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3632
3705
  "terminal": {
3633
3706
  "$type": "RuleCall",
3634
3707
  "rule": {
3635
- "$ref": "#/rules@71"
3708
+ "$ref": "#/rules@72"
3636
3709
  },
3637
3710
  "arguments": []
3638
3711
  },
@@ -3645,7 +3718,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3645
3718
  "terminal": {
3646
3719
  "$type": "RuleCall",
3647
3720
  "rule": {
3648
- "$ref": "#/rules@52"
3721
+ "$ref": "#/rules@53"
3649
3722
  },
3650
3723
  "arguments": []
3651
3724
  }
@@ -3657,7 +3730,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3657
3730
  "terminal": {
3658
3731
  "$type": "RuleCall",
3659
3732
  "rule": {
3660
- "$ref": "#/rules@56"
3733
+ "$ref": "#/rules@57"
3661
3734
  },
3662
3735
  "arguments": []
3663
3736
  },
@@ -3681,7 +3754,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3681
3754
  {
3682
3755
  "$type": "RuleCall",
3683
3756
  "rule": {
3684
- "$ref": "#/rules@71"
3757
+ "$ref": "#/rules@72"
3685
3758
  },
3686
3759
  "arguments": [],
3687
3760
  "cardinality": "*"
@@ -3697,7 +3770,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3697
3770
  "terminal": {
3698
3771
  "$type": "RuleCall",
3699
3772
  "rule": {
3700
- "$ref": "#/rules@51"
3773
+ "$ref": "#/rules@52"
3701
3774
  },
3702
3775
  "arguments": []
3703
3776
  }
@@ -3716,7 +3789,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3716
3789
  "terminal": {
3717
3790
  "$type": "RuleCall",
3718
3791
  "rule": {
3719
- "$ref": "#/rules@47"
3792
+ "$ref": "#/rules@48"
3720
3793
  },
3721
3794
  "arguments": []
3722
3795
  }
@@ -3735,7 +3808,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3735
3808
  "terminal": {
3736
3809
  "$type": "RuleCall",
3737
3810
  "rule": {
3738
- "$ref": "#/rules@47"
3811
+ "$ref": "#/rules@48"
3739
3812
  },
3740
3813
  "arguments": []
3741
3814
  }
@@ -3761,7 +3834,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3761
3834
  "terminal": {
3762
3835
  "$type": "RuleCall",
3763
3836
  "rule": {
3764
- "$ref": "#/rules@48"
3837
+ "$ref": "#/rules@49"
3765
3838
  },
3766
3839
  "arguments": []
3767
3840
  }
@@ -3794,7 +3867,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3794
3867
  "terminal": {
3795
3868
  "$type": "RuleCall",
3796
3869
  "rule": {
3797
- "$ref": "#/rules@58"
3870
+ "$ref": "#/rules@59"
3798
3871
  },
3799
3872
  "arguments": []
3800
3873
  },
@@ -3818,7 +3891,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3818
3891
  {
3819
3892
  "$type": "RuleCall",
3820
3893
  "rule": {
3821
- "$ref": "#/rules@71"
3894
+ "$ref": "#/rules@72"
3822
3895
  },
3823
3896
  "arguments": [],
3824
3897
  "cardinality": "*"
@@ -3830,7 +3903,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3830
3903
  "terminal": {
3831
3904
  "$type": "RuleCall",
3832
3905
  "rule": {
3833
- "$ref": "#/rules@51"
3906
+ "$ref": "#/rules@52"
3834
3907
  },
3835
3908
  "arguments": []
3836
3909
  }
@@ -3846,7 +3919,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3846
3919
  "terminal": {
3847
3920
  "$type": "RuleCall",
3848
3921
  "rule": {
3849
- "$ref": "#/rules@48"
3922
+ "$ref": "#/rules@49"
3850
3923
  },
3851
3924
  "arguments": []
3852
3925
  }
@@ -3886,7 +3959,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3886
3959
  "terminal": {
3887
3960
  "$type": "RuleCall",
3888
3961
  "rule": {
3889
- "$ref": "#/rules@61"
3962
+ "$ref": "#/rules@62"
3890
3963
  },
3891
3964
  "arguments": []
3892
3965
  }
@@ -3903,7 +3976,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3903
3976
  "terminal": {
3904
3977
  "$type": "RuleCall",
3905
3978
  "rule": {
3906
- "$ref": "#/rules@51"
3979
+ "$ref": "#/rules@52"
3907
3980
  },
3908
3981
  "arguments": []
3909
3982
  },
@@ -3949,7 +4022,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3949
4022
  {
3950
4023
  "$type": "RuleCall",
3951
4024
  "rule": {
3952
- "$ref": "#/rules@71"
4025
+ "$ref": "#/rules@72"
3953
4026
  },
3954
4027
  "arguments": [],
3955
4028
  "cardinality": "*"
@@ -3961,7 +4034,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3961
4034
  "terminal": {
3962
4035
  "$type": "RuleCall",
3963
4036
  "rule": {
3964
- "$ref": "#/rules@51"
4037
+ "$ref": "#/rules@52"
3965
4038
  },
3966
4039
  "arguments": []
3967
4040
  }
@@ -3977,7 +4050,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
3977
4050
  "terminal": {
3978
4051
  "$type": "RuleCall",
3979
4052
  "rule": {
3980
- "$ref": "#/rules@48"
4053
+ "$ref": "#/rules@49"
3981
4054
  },
3982
4055
  "arguments": []
3983
4056
  }
@@ -4010,7 +4083,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4010
4083
  {
4011
4084
  "$type": "RuleCall",
4012
4085
  "rule": {
4013
- "$ref": "#/rules@71"
4086
+ "$ref": "#/rules@72"
4014
4087
  },
4015
4088
  "arguments": [],
4016
4089
  "cardinality": "*"
@@ -4036,7 +4109,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4036
4109
  "terminal": {
4037
4110
  "$type": "RuleCall",
4038
4111
  "rule": {
4039
- "$ref": "#/rules@51"
4112
+ "$ref": "#/rules@52"
4040
4113
  },
4041
4114
  "arguments": []
4042
4115
  }
@@ -4055,7 +4128,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4055
4128
  "terminal": {
4056
4129
  "$type": "RuleCall",
4057
4130
  "rule": {
4058
- "$ref": "#/rules@49"
4131
+ "$ref": "#/rules@50"
4059
4132
  },
4060
4133
  "arguments": []
4061
4134
  }
@@ -4074,7 +4147,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4074
4147
  "terminal": {
4075
4148
  "$type": "RuleCall",
4076
4149
  "rule": {
4077
- "$ref": "#/rules@49"
4150
+ "$ref": "#/rules@50"
4078
4151
  },
4079
4152
  "arguments": []
4080
4153
  }
@@ -4100,7 +4173,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4100
4173
  "terminal": {
4101
4174
  "$type": "RuleCall",
4102
4175
  "rule": {
4103
- "$ref": "#/rules@48"
4176
+ "$ref": "#/rules@49"
4104
4177
  },
4105
4178
  "arguments": []
4106
4179
  }
@@ -4112,7 +4185,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4112
4185
  "terminal": {
4113
4186
  "$type": "RuleCall",
4114
4187
  "rule": {
4115
- "$ref": "#/rules@58"
4188
+ "$ref": "#/rules@59"
4116
4189
  },
4117
4190
  "arguments": []
4118
4191
  },
@@ -4137,7 +4210,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4137
4210
  {
4138
4211
  "$type": "RuleCall",
4139
4212
  "rule": {
4140
- "$ref": "#/rules@68"
4213
+ "$ref": "#/rules@69"
4141
4214
  },
4142
4215
  "arguments": []
4143
4216
  },
@@ -4200,7 +4273,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4200
4273
  {
4201
4274
  "$type": "RuleCall",
4202
4275
  "rule": {
4203
- "$ref": "#/rules@51"
4276
+ "$ref": "#/rules@52"
4204
4277
  },
4205
4278
  "arguments": []
4206
4279
  },
@@ -4282,7 +4355,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4282
4355
  "terminal": {
4283
4356
  "$type": "RuleCall",
4284
4357
  "rule": {
4285
- "$ref": "#/rules@71"
4358
+ "$ref": "#/rules@72"
4286
4359
  },
4287
4360
  "arguments": []
4288
4361
  },
@@ -4302,21 +4375,21 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4302
4375
  {
4303
4376
  "$type": "RuleCall",
4304
4377
  "rule": {
4305
- "$ref": "#/rules@65"
4378
+ "$ref": "#/rules@66"
4306
4379
  },
4307
4380
  "arguments": []
4308
4381
  },
4309
4382
  {
4310
4383
  "$type": "RuleCall",
4311
4384
  "rule": {
4312
- "$ref": "#/rules@66"
4385
+ "$ref": "#/rules@67"
4313
4386
  },
4314
4387
  "arguments": []
4315
4388
  },
4316
4389
  {
4317
4390
  "$type": "RuleCall",
4318
4391
  "rule": {
4319
- "$ref": "#/rules@67"
4392
+ "$ref": "#/rules@68"
4320
4393
  },
4321
4394
  "arguments": []
4322
4395
  }
@@ -4337,7 +4410,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4337
4410
  "terminal": {
4338
4411
  "$type": "RuleCall",
4339
4412
  "rule": {
4340
- "$ref": "#/rules@54"
4413
+ "$ref": "#/rules@55"
4341
4414
  },
4342
4415
  "arguments": []
4343
4416
  }
@@ -4356,7 +4429,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4356
4429
  "terminal": {
4357
4430
  "$type": "RuleCall",
4358
4431
  "rule": {
4359
- "$ref": "#/rules@54"
4432
+ "$ref": "#/rules@55"
4360
4433
  },
4361
4434
  "arguments": []
4362
4435
  }
@@ -4378,7 +4451,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4378
4451
  "terminal": {
4379
4452
  "$type": "RuleCall",
4380
4453
  "rule": {
4381
- "$ref": "#/rules@58"
4454
+ "$ref": "#/rules@59"
4382
4455
  },
4383
4456
  "arguments": []
4384
4457
  },
@@ -4406,7 +4479,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4406
4479
  "terminal": {
4407
4480
  "$type": "RuleCall",
4408
4481
  "rule": {
4409
- "$ref": "#/rules@71"
4482
+ "$ref": "#/rules@72"
4410
4483
  },
4411
4484
  "arguments": []
4412
4485
  },
@@ -4429,7 +4502,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4429
4502
  "terminal": {
4430
4503
  "$type": "RuleCall",
4431
4504
  "rule": {
4432
- "$ref": "#/rules@51"
4505
+ "$ref": "#/rules@52"
4433
4506
  },
4434
4507
  "arguments": []
4435
4508
  }
@@ -4445,7 +4518,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4445
4518
  "terminal": {
4446
4519
  "$type": "RuleCall",
4447
4520
  "rule": {
4448
- "$ref": "#/rules@55"
4521
+ "$ref": "#/rules@56"
4449
4522
  },
4450
4523
  "arguments": []
4451
4524
  }
@@ -4457,7 +4530,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4457
4530
  "terminal": {
4458
4531
  "$type": "RuleCall",
4459
4532
  "rule": {
4460
- "$ref": "#/rules@58"
4533
+ "$ref": "#/rules@59"
4461
4534
  },
4462
4535
  "arguments": []
4463
4536
  },
@@ -4491,7 +4564,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4491
4564
  {
4492
4565
  "$type": "RuleCall",
4493
4566
  "rule": {
4494
- "$ref": "#/rules@61"
4567
+ "$ref": "#/rules@62"
4495
4568
  },
4496
4569
  "arguments": []
4497
4570
  },
@@ -4522,7 +4595,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4522
4595
  "terminal": {
4523
4596
  "$type": "RuleCall",
4524
4597
  "rule": {
4525
- "$ref": "#/rules@51"
4598
+ "$ref": "#/rules@52"
4526
4599
  },
4527
4600
  "arguments": []
4528
4601
  },
@@ -4582,12 +4655,12 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4582
4655
  "terminal": {
4583
4656
  "$type": "CrossReference",
4584
4657
  "type": {
4585
- "$ref": "#/rules@53"
4658
+ "$ref": "#/rules@54"
4586
4659
  },
4587
4660
  "terminal": {
4588
4661
  "$type": "RuleCall",
4589
4662
  "rule": {
4590
- "$ref": "#/rules@67"
4663
+ "$ref": "#/rules@68"
4591
4664
  },
4592
4665
  "arguments": []
4593
4666
  },
@@ -4604,7 +4677,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4604
4677
  {
4605
4678
  "$type": "RuleCall",
4606
4679
  "rule": {
4607
- "$ref": "#/rules@59"
4680
+ "$ref": "#/rules@60"
4608
4681
  },
4609
4682
  "arguments": [],
4610
4683
  "cardinality": "?"
@@ -4634,7 +4707,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4634
4707
  {
4635
4708
  "$type": "RuleCall",
4636
4709
  "rule": {
4637
- "$ref": "#/rules@71"
4710
+ "$ref": "#/rules@72"
4638
4711
  },
4639
4712
  "arguments": [],
4640
4713
  "cardinality": "*"
@@ -4646,12 +4719,12 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4646
4719
  "terminal": {
4647
4720
  "$type": "CrossReference",
4648
4721
  "type": {
4649
- "$ref": "#/rules@53"
4722
+ "$ref": "#/rules@54"
4650
4723
  },
4651
4724
  "terminal": {
4652
4725
  "$type": "RuleCall",
4653
4726
  "rule": {
4654
- "$ref": "#/rules@66"
4727
+ "$ref": "#/rules@67"
4655
4728
  },
4656
4729
  "arguments": []
4657
4730
  },
@@ -4668,7 +4741,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4668
4741
  {
4669
4742
  "$type": "RuleCall",
4670
4743
  "rule": {
4671
- "$ref": "#/rules@59"
4744
+ "$ref": "#/rules@60"
4672
4745
  },
4673
4746
  "arguments": [],
4674
4747
  "cardinality": "?"
@@ -4702,12 +4775,12 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4702
4775
  "terminal": {
4703
4776
  "$type": "CrossReference",
4704
4777
  "type": {
4705
- "$ref": "#/rules@53"
4778
+ "$ref": "#/rules@54"
4706
4779
  },
4707
4780
  "terminal": {
4708
4781
  "$type": "RuleCall",
4709
4782
  "rule": {
4710
- "$ref": "#/rules@65"
4783
+ "$ref": "#/rules@66"
4711
4784
  },
4712
4785
  "arguments": []
4713
4786
  },
@@ -4724,7 +4797,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4724
4797
  {
4725
4798
  "$type": "RuleCall",
4726
4799
  "rule": {
4727
- "$ref": "#/rules@59"
4800
+ "$ref": "#/rules@60"
4728
4801
  },
4729
4802
  "arguments": [],
4730
4803
  "cardinality": "?"
@@ -4759,7 +4832,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4759
4832
  "terminal": {
4760
4833
  "$type": "RuleCall",
4761
4834
  "rule": {
4762
- "$ref": "#/rules@60"
4835
+ "$ref": "#/rules@61"
4763
4836
  },
4764
4837
  "arguments": []
4765
4838
  }
@@ -4778,7 +4851,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4778
4851
  "terminal": {
4779
4852
  "$type": "RuleCall",
4780
4853
  "rule": {
4781
- "$ref": "#/rules@60"
4854
+ "$ref": "#/rules@61"
4782
4855
  },
4783
4856
  "arguments": []
4784
4857
  }
@@ -4810,7 +4883,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
4810
4883
  "terminal": {
4811
4884
  "$type": "RuleCall",
4812
4885
  "rule": {
4813
- "$ref": "#/rules@51"
4886
+ "$ref": "#/rules@52"
4814
4887
  },
4815
4888
  "arguments": []
4816
4889
  }
@@ -5106,19 +5179,25 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
5106
5179
  {
5107
5180
  "$type": "SimpleType",
5108
5181
  "typeRef": {
5109
- "$ref": "#/rules@47"
5182
+ "$ref": "#/rules@48"
5110
5183
  }
5111
5184
  },
5112
5185
  {
5113
5186
  "$type": "SimpleType",
5114
5187
  "typeRef": {
5115
- "$ref": "#/rules@40"
5188
+ "$ref": "#/rules@41"
5116
5189
  }
5117
5190
  },
5118
5191
  {
5119
5192
  "$type": "SimpleType",
5120
5193
  "typeRef": {
5121
- "$ref": "#/rules@45"
5194
+ "$ref": "#/rules@46"
5195
+ }
5196
+ },
5197
+ {
5198
+ "$type": "SimpleType",
5199
+ "typeRef": {
5200
+ "$ref": "#/rules@30"
5122
5201
  }
5123
5202
  }
5124
5203
  ]
@@ -5130,7 +5209,7 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
5130
5209
  "type": {
5131
5210
  "$type": "SimpleType",
5132
5211
  "typeRef": {
5133
- "$ref": "#/rules@40"
5212
+ "$ref": "#/rules@41"
5134
5213
  }
5135
5214
  }
5136
5215
  },
@@ -5143,19 +5222,19 @@ var ZModelGrammar = /* @__PURE__ */ __name(() => loadedZModelGrammar ?? (loadedZ
5143
5222
  {
5144
5223
  "$type": "SimpleType",
5145
5224
  "typeRef": {
5146
- "$ref": "#/rules@37"
5225
+ "$ref": "#/rules@38"
5147
5226
  }
5148
5227
  },
5149
5228
  {
5150
5229
  "$type": "SimpleType",
5151
5230
  "typeRef": {
5152
- "$ref": "#/rules@42"
5231
+ "$ref": "#/rules@43"
5153
5232
  }
5154
5233
  },
5155
5234
  {
5156
5235
  "$type": "SimpleType",
5157
5236
  "typeRef": {
5158
- "$ref": "#/rules@44"
5237
+ "$ref": "#/rules@45"
5159
5238
  }
5160
5239
  }
5161
5240
  ]
@@ -6205,7 +6284,13 @@ function isValidAttributeTarget(attrDecl, targetDecl) {
6205
6284
  if (!targetField?.args[0]) {
6206
6285
  return true;
6207
6286
  }
6208
- const fieldTypes = targetField.args[0].value.items.map((item) => item.target.ref?.name);
6287
+ const fieldTypes = targetField.args[0].value.items.map((item) => {
6288
+ if (!isReferenceExpr(item)) {
6289
+ return void 0;
6290
+ }
6291
+ const ref = item.target.ref;
6292
+ return ref && "name" in ref && typeof ref.name === "string" ? ref.name : void 0;
6293
+ }).filter((name) => !!name);
6209
6294
  let allowed = false;
6210
6295
  for (const allowedType of fieldTypes) {
6211
6296
  switch (allowedType) {
@@ -6376,14 +6461,6 @@ var DataModelValidator = class {
6376
6461
  node: field.type.unsupported
6377
6462
  });
6378
6463
  }
6379
- if (field.type.array && !isDataModel(field.type.reference?.ref)) {
6380
- const provider = this.getDataSourceProvider(AstUtils3.getContainerOfType(field, isModel));
6381
- if (provider === "sqlite") {
6382
- accept("error", `List type is not supported for "${provider}" provider.`, {
6383
- node: field.type
6384
- });
6385
- }
6386
- }
6387
6464
  field.attributes.forEach((attr) => validateAttributeApplication(attr, accept));
6388
6465
  if (isTypeDef(field.type.reference?.ref)) {
6389
6466
  if (!hasAttribute(field, "@json")) {
@@ -6393,17 +6470,6 @@ var DataModelValidator = class {
6393
6470
  }
6394
6471
  }
6395
6472
  }
6396
- getDataSourceProvider(model) {
6397
- const dataSource = model.declarations.find(isDataSource);
6398
- if (!dataSource) {
6399
- return void 0;
6400
- }
6401
- const provider = dataSource?.fields.find((f) => f.name === "provider");
6402
- if (!provider) {
6403
- return void 0;
6404
- }
6405
- return getLiteral(provider.value);
6406
- }
6407
6473
  validateAttributes(dm, accept) {
6408
6474
  getAllAttributes(dm).forEach((attr) => validateAttributeApplication(attr, accept, dm));
6409
6475
  }
@@ -6828,7 +6894,7 @@ var ExpressionValidator = class {
6828
6894
  }
6829
6895
  return false;
6830
6896
  });
6831
- if (!hasReferenceResolutionError) {
6897
+ if (hasReferenceResolutionError) {
6832
6898
  accept("error", "Expression cannot be resolved", {
6833
6899
  node: expr
6834
6900
  });
@@ -6836,6 +6902,9 @@ var ExpressionValidator = class {
6836
6902
  }
6837
6903
  }
6838
6904
  switch (expr.$type) {
6905
+ case "ReferenceExpr":
6906
+ this.validateReferenceExpr(expr, accept);
6907
+ break;
6839
6908
  case "MemberAccessExpr":
6840
6909
  this.validateMemberAccessExpr(expr, accept);
6841
6910
  break;
@@ -6847,6 +6916,13 @@ var ExpressionValidator = class {
6847
6916
  break;
6848
6917
  }
6849
6918
  }
6919
+ validateReferenceExpr(expr, accept) {
6920
+ if (isCollectionPredicateBinding(expr.target.ref) && !isMemberAccessExpr(expr.$container)) {
6921
+ accept("error", "Collection predicate binding cannot be used without a member access", {
6922
+ node: expr
6923
+ });
6924
+ }
6925
+ }
6850
6926
  validateMemberAccessExpr(expr, accept) {
6851
6927
  if (isBeforeInvocation(expr.operand) && isDataModel(expr.$resolvedType?.decl)) {
6852
6928
  accept("error", "relation fields cannot be accessed from `before()`", {
@@ -7744,7 +7820,8 @@ ${ast.fields.map((x) => this.indent + this.generate(x)).join("\n")}${ast.attribu
7744
7820
  const isCollectionPredicate2 = this.isCollectionPredicateOperator(operator);
7745
7821
  const rightExpr = this.generate(ast.right);
7746
7822
  const { left: isLeftParenthesis, right: isRightParenthesis } = this.isParenthesesNeededForBinaryExpr(ast);
7747
- return `${isLeftParenthesis ? "(" : ""}${this.generate(ast.left)}${isLeftParenthesis ? ")" : ""}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${operator}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${isRightParenthesis ? "(" : ""}${isCollectionPredicate2 ? `[${rightExpr}]` : rightExpr}${isRightParenthesis ? ")" : ""}`;
7823
+ const collectionPredicate = isCollectionPredicate2 ? `[${ast.binding ? `${ast.binding}, ${rightExpr}` : rightExpr}]` : rightExpr;
7824
+ return `${isLeftParenthesis ? "(" : ""}${this.generate(ast.left)}${isLeftParenthesis ? ")" : ""}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${operator}${isCollectionPredicate2 ? "" : this.binaryExprSpace}${isRightParenthesis ? "(" : ""}${collectionPredicate}${isRightParenthesis ? ")" : ""}`;
7748
7825
  }
7749
7826
  _generateReferenceExpr(ast) {
7750
7827
  const args = ast.args.length ? `(${ast.args.map((x) => this.generate(x)).join(", ")})` : "";
@@ -8713,11 +8790,20 @@ var ZModelLinker = class extends DefaultLinker {
8713
8790
  }
8714
8791
  resolveReference(node, document, extraScopes) {
8715
8792
  this.resolveDefault(node, document, extraScopes);
8716
- if (node.target.ref) {
8717
- if (node.target.ref.$type === EnumField) {
8718
- this.resolveToBuiltinTypeOrDecl(node, node.target.ref.$container);
8719
- } else {
8720
- this.resolveToDeclaredType(node, node.target.ref.type);
8793
+ const target = node.target.ref;
8794
+ if (target) {
8795
+ if (isCollectionPredicateBinding(target)) {
8796
+ const collectionType = target.$container.left.$resolvedType;
8797
+ if (collectionType) {
8798
+ node.$resolvedType = {
8799
+ ...collectionType,
8800
+ array: false
8801
+ };
8802
+ }
8803
+ } else if (isEnumField(target)) {
8804
+ this.resolveToBuiltinTypeOrDecl(node, target.$container);
8805
+ } else if (isDataField(target) || isFunctionParam(target)) {
8806
+ this.resolveToDeclaredType(node, target.type);
8721
8807
  }
8722
8808
  }
8723
8809
  }
@@ -8890,6 +8976,9 @@ var ZModelLinker = class extends DefaultLinker {
8890
8976
  //#endregion
8891
8977
  //#region Utils
8892
8978
  resolveToDeclaredType(node, type) {
8979
+ if (!type) {
8980
+ return;
8981
+ }
8893
8982
  let nullable = false;
8894
8983
  if (isDataFieldType(type)) {
8895
8984
  nullable = type.optional;
@@ -9004,10 +9093,13 @@ var ZModelScopeProvider = class extends DefaultScopeProvider {
9004
9093
  const allowTypeDefScope = isAuthOrAuthMemberAccess(node.operand) || !!AstUtils7.getContainerOfType(node, isTypeDef);
9005
9094
  return match5(node.operand).when(isReferenceExpr, (operand) => {
9006
9095
  const ref = operand.target.ref;
9007
- if (isDataField(ref)) {
9008
- return this.createScopeForContainer(ref.type.reference?.ref, globalScope, allowTypeDefScope);
9009
- }
9010
- return EMPTY_SCOPE;
9096
+ return match5(ref).when(isDataField, (r) => (
9097
+ // build a scope with model/typedef members
9098
+ this.createScopeForContainer(r.type.reference?.ref, globalScope, allowTypeDefScope)
9099
+ )).when(isCollectionPredicateBinding, (r) => (
9100
+ // build a scope from the collection predicate's collection
9101
+ this.createScopeForCollectionPredicateCollection(r.$container.left, globalScope, allowTypeDefScope)
9102
+ )).otherwise(() => EMPTY_SCOPE);
9011
9103
  }).when(isMemberAccessExpr, (operand) => {
9012
9104
  const ref = operand.member.ref;
9013
9105
  if (isDataField(ref) && !ref.type.array) {
@@ -9027,10 +9119,24 @@ var ZModelScopeProvider = class extends DefaultScopeProvider {
9027
9119
  }).otherwise(() => EMPTY_SCOPE);
9028
9120
  }
9029
9121
  getCollectionPredicateScope(context, collectionPredicate) {
9030
- const referenceType = this.reflection.getReferenceType(context);
9031
- const globalScope = this.getGlobalScope(referenceType, context);
9122
+ let currPredicate = collectionPredicate;
9123
+ const bindingStack = [];
9124
+ while (currPredicate) {
9125
+ if (currPredicate.binding) {
9126
+ bindingStack.unshift(currPredicate.binding);
9127
+ }
9128
+ currPredicate = AstUtils7.getContainerOfType(currPredicate.$container, isCollectionPredicate);
9129
+ }
9130
+ const globalScope = this.getGlobalScope(this.reflection.getReferenceType(context), context);
9131
+ const parentScope = bindingStack.reduce((scope, binding) => this.createScopeForNodes([
9132
+ binding
9133
+ ], scope), globalScope);
9032
9134
  const collection = collectionPredicate.left;
9033
9135
  const allowTypeDefScope = isAuthOrAuthMemberAccess(collection);
9136
+ const collectionScope = this.createScopeForCollectionPredicateCollection(collection, parentScope, allowTypeDefScope);
9137
+ return collectionScope;
9138
+ }
9139
+ createScopeForCollectionPredicateCollection(collection, globalScope, allowTypeDefScope) {
9034
9140
  return match5(collection).when(isReferenceExpr, (expr) => {
9035
9141
  const ref = expr.target.ref;
9036
9142
  if (isDataField(ref)) {
@@ -9446,6 +9552,18 @@ function validationAfterImportMerge(model) {
9446
9552
  if (authDecls.length > 1) {
9447
9553
  errors.push("Validation error: Multiple `@@auth` declarations are not allowed");
9448
9554
  }
9555
+ const provider = getDataSourceProvider(model);
9556
+ invariant3(provider !== void 0, "Datasource provider should be defined at this point");
9557
+ for (const decl of model.declarations.filter(isDataModel)) {
9558
+ const fields = getAllFields(decl, true);
9559
+ for (const field of fields) {
9560
+ if (field.type.array && !isDataModel(field.type.reference?.ref)) {
9561
+ if (!DB_PROVIDERS_SUPPORTING_LIST_TYPE.includes(provider)) {
9562
+ errors.push(`Validation error: List type is not supported for "${provider}" provider (model: "${decl.name}", field: "${field.name}")`);
9563
+ }
9564
+ }
9565
+ }
9566
+ }
9449
9567
  return errors;
9450
9568
  }
9451
9569
  __name(validationAfterImportMerge, "validationAfterImportMerge");
@@ -9468,6 +9586,18 @@ async function formatDocument(content) {
9468
9586
  return TextDocument.applyEdits(document.textDocument, edits);
9469
9587
  }
9470
9588
  __name(formatDocument, "formatDocument");
9589
+ function getDataSourceProvider(model) {
9590
+ const dataSource = model.declarations.find(isDataSource);
9591
+ if (!dataSource) {
9592
+ return void 0;
9593
+ }
9594
+ const provider = dataSource?.fields.find((f) => f.name === "provider");
9595
+ if (!provider) {
9596
+ return void 0;
9597
+ }
9598
+ return getLiteral(provider.value);
9599
+ }
9600
+ __name(getDataSourceProvider, "getDataSourceProvider");
9471
9601
  export {
9472
9602
  ZModelCodeGenerator,
9473
9603
  ZModelLanguageMetaData,