@accordproject/concerto-cto 4.1.5 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/esm/chunk-ADZEFNZ5.mjs +46 -0
  2. package/dist/esm/chunk-ADZEFNZ5.mjs.map +7 -0
  3. package/dist/esm/chunk-JIDG6RUM.mjs +11851 -0
  4. package/dist/esm/chunk-JIDG6RUM.mjs.map +7 -0
  5. package/dist/esm/chunk-KXXMUWWS.mjs +370 -0
  6. package/dist/esm/chunk-KXXMUWWS.mjs.map +7 -0
  7. package/dist/esm/chunk-N5WVDVIT.mjs +831 -0
  8. package/dist/esm/chunk-N5WVDVIT.mjs.map +7 -0
  9. package/dist/esm/chunk-TXONDDFZ.mjs +53 -0
  10. package/dist/esm/chunk-TXONDDFZ.mjs.map +7 -0
  11. package/dist/esm/chunk-WNU2QZFD.mjs +40 -0
  12. package/dist/esm/chunk-WNU2QZFD.mjs.map +7 -0
  13. package/dist/esm/external.mjs +15 -0
  14. package/dist/esm/external.mjs.map +7 -0
  15. package/dist/esm/index.mjs +23 -0
  16. package/dist/esm/index.mjs.map +7 -0
  17. package/dist/esm/parseexception.mjs +12 -0
  18. package/dist/esm/parseexception.mjs.map +7 -0
  19. package/dist/esm/parserMain.mjs +16 -0
  20. package/dist/esm/parserMain.mjs.map +7 -0
  21. package/dist/esm/printer.mjs +12 -0
  22. package/dist/esm/printer.mjs.map +7 -0
  23. package/dist/esm-browser/chunk-ABBFUZVB.mjs +374 -0
  24. package/dist/esm-browser/chunk-ABBFUZVB.mjs.map +7 -0
  25. package/dist/esm-browser/chunk-E5UYTZNO.mjs +1696 -0
  26. package/dist/esm-browser/chunk-E5UYTZNO.mjs.map +7 -0
  27. package/dist/esm-browser/chunk-MSZDQHW6.mjs +66 -0
  28. package/dist/esm-browser/chunk-MSZDQHW6.mjs.map +7 -0
  29. package/dist/esm-browser/chunk-OMK4IF4X.mjs +48 -0
  30. package/dist/esm-browser/chunk-OMK4IF4X.mjs.map +7 -0
  31. package/dist/esm-browser/chunk-SEXNR5Y5.mjs +11851 -0
  32. package/dist/esm-browser/chunk-SEXNR5Y5.mjs.map +7 -0
  33. package/dist/esm-browser/chunk-VCWYA55K.mjs +933 -0
  34. package/dist/esm-browser/chunk-VCWYA55K.mjs.map +7 -0
  35. package/dist/esm-browser/chunk-YAX4W2RL.mjs +56 -0
  36. package/dist/esm-browser/chunk-YAX4W2RL.mjs.map +7 -0
  37. package/dist/esm-browser/external.mjs +14 -0
  38. package/dist/esm-browser/external.mjs.map +7 -0
  39. package/dist/esm-browser/index.mjs +27 -0
  40. package/dist/esm-browser/index.mjs.map +7 -0
  41. package/dist/esm-browser/parseexception.mjs +10 -0
  42. package/dist/esm-browser/parseexception.mjs.map +7 -0
  43. package/dist/esm-browser/parserMain.mjs +15 -0
  44. package/dist/esm-browser/parserMain.mjs.map +7 -0
  45. package/dist/esm-browser/printer.mjs +11 -0
  46. package/dist/esm-browser/printer.mjs.map +7 -0
  47. package/dist/external.d.ts +11 -5
  48. package/dist/external.js +6 -2
  49. package/dist/external.js.map +1 -1
  50. package/dist/index.d.ts +4 -4
  51. package/dist/index.js +11 -8
  52. package/dist/index.js.map +1 -1
  53. package/dist/parseexception.d.ts +2 -1
  54. package/dist/parseexception.js +6 -4
  55. package/dist/parseexception.js.map +1 -1
  56. package/dist/parser.js +573 -187
  57. package/dist/parser.js.map +1 -1
  58. package/dist/parserMain.d.ts +5 -5
  59. package/dist/parserMain.js +47 -6
  60. package/dist/parserMain.js.map +1 -1
  61. package/dist/printer.d.ts +3 -3
  62. package/dist/printer.js +9 -1
  63. package/dist/printer.js.map +1 -1
  64. package/package.json +19 -11
  65. package/dist/concerto-cto.js +0 -2
  66. package/dist/concerto-cto.js.LICENSE.txt +0 -12
package/dist/parser.js CHANGED
@@ -243,9 +243,10 @@ function peg$parse(input, options) {
243
243
  var peg$c92 = "o";
244
244
  var peg$c93 = "regex";
245
245
  var peg$c94 = "length";
246
- var peg$c95 = "range";
247
- var peg$c96 = "-->";
248
- var peg$c97 = ".{";
246
+ var peg$c95 = "size";
247
+ var peg$c96 = "range";
248
+ var peg$c97 = "-->";
249
+ var peg$c98 = ".{";
249
250
  var peg$r0 = /^[\n\r\u2028\u2029]/;
250
251
  var peg$r1 = /^[+\-]/;
251
252
  var peg$r2 = /^[0-9]/;
@@ -412,9 +413,10 @@ function peg$parse(input, options) {
412
413
  var peg$e133 = peg$literalExpectation("o", false);
413
414
  var peg$e134 = peg$literalExpectation("regex", false);
414
415
  var peg$e135 = peg$literalExpectation("length", false);
415
- var peg$e136 = peg$literalExpectation("range", false);
416
- var peg$e137 = peg$literalExpectation("-->", false);
417
- var peg$e138 = peg$literalExpectation(".{", false);
416
+ var peg$e136 = peg$literalExpectation("size", false);
417
+ var peg$e137 = peg$literalExpectation("range", false);
418
+ var peg$e138 = peg$literalExpectation("-->", false);
419
+ var peg$e139 = peg$literalExpectation(".{", false);
418
420
  var peg$f0 = function (program) { return program; };
419
421
  var peg$f1 = function (name) { return name; };
420
422
  var peg$f2 = function (first, rest) {
@@ -760,18 +762,18 @@ function peg$parse(input, options) {
760
762
  }
761
763
  return result;
762
764
  };
763
- var peg$f69 = function (d, regex, length) {
765
+ var peg$f69 = function (d, validators) {
764
766
  const result = {
765
767
  $class: "concerto.metamodel@1.0.0.StringScalar",
766
768
  };
767
769
  if (d) {
768
770
  result.defaultValue = d;
769
771
  }
770
- if (regex) {
771
- result.validator = regex;
772
+ if (validators.regex) {
773
+ result.validator = validators.regex;
772
774
  }
773
- if (length) {
774
- result.lengthValidator = length;
775
+ if (validators.length) {
776
+ result.lengthValidator = validators.length;
775
777
  }
776
778
  return result;
777
779
  };
@@ -819,7 +821,7 @@ function peg$parse(input, options) {
819
821
  ...buildRange(location())
820
822
  };
821
823
  };
822
- var peg$f78 = function (decorators, propertyType, array, id, d, optional) {
824
+ var peg$f78 = function (decorators, propertyType, array, id, d, size, optional) {
823
825
  const result = {
824
826
  $class: "concerto.metamodel@1.0.0.ObjectProperty",
825
827
  name: id.name,
@@ -834,9 +836,12 @@ function peg$parse(input, options) {
834
836
  if (decorators.length > 0) {
835
837
  result.decorators = decorators;
836
838
  }
839
+ if (size) {
840
+ result.sizeValidator = size;
841
+ }
837
842
  return result;
838
843
  };
839
- var peg$f79 = function (decorators, array, id, d, optional) {
844
+ var peg$f79 = function (decorators, array, id, d, size, optional) {
840
845
  const result = {
841
846
  $class: "concerto.metamodel@1.0.0.BooleanProperty",
842
847
  name: id.name,
@@ -850,9 +855,12 @@ function peg$parse(input, options) {
850
855
  if (decorators.length > 0) {
851
856
  result.decorators = decorators;
852
857
  }
858
+ if (size) {
859
+ result.sizeValidator = size;
860
+ }
853
861
  return result;
854
862
  };
855
- var peg$f80 = function (decorators, array, id, d, optional) {
863
+ var peg$f80 = function (decorators, array, id, d, size, optional) {
856
864
  const result = {
857
865
  $class: "concerto.metamodel@1.0.0.DateTimeProperty",
858
866
  name: id.name,
@@ -866,9 +874,12 @@ function peg$parse(input, options) {
866
874
  if (decorators.length > 0) {
867
875
  result.decorators = decorators;
868
876
  }
877
+ if (size) {
878
+ result.sizeValidator = size;
879
+ }
869
880
  return result;
870
881
  };
871
- var peg$f81 = function (decorators, array, id, d, regex, length, optional) {
882
+ var peg$f81 = function (decorators, array, id, d, validators, optional) {
872
883
  const result = {
873
884
  $class: "concerto.metamodel@1.0.0.StringProperty",
874
885
  name: id.name,
@@ -882,11 +893,14 @@ function peg$parse(input, options) {
882
893
  if (decorators.length > 0) {
883
894
  result.decorators = decorators;
884
895
  }
885
- if (regex) {
886
- result.validator = regex;
896
+ if (validators.regex) {
897
+ result.validator = validators.regex;
887
898
  }
888
- if (length) {
889
- result.lengthValidator = length;
899
+ if (validators.length) {
900
+ result.lengthValidator = validators.length;
901
+ }
902
+ if (validators.size) {
903
+ result.sizeValidator = validators.size;
890
904
  }
891
905
  return result;
892
906
  };
@@ -905,7 +919,19 @@ function peg$parse(input, options) {
905
919
  }
906
920
  return result;
907
921
  };
908
- var peg$f84 = function (lower, upper) {
922
+ var peg$f84 = function (minSize, maxSize) {
923
+ const result = {
924
+ $class: `${metamodelNamespace}.CollectionSizeValidator`
925
+ };
926
+ if (minSize) {
927
+ result.minSize = parseInt(minSize);
928
+ }
929
+ if (maxSize) {
930
+ result.maxSize = parseInt(maxSize);
931
+ }
932
+ return result;
933
+ };
934
+ var peg$f85 = function (lower, upper) {
909
935
  const result = {
910
936
  $class: `${metamodelNamespace}.DoubleDomainValidator`
911
937
  };
@@ -917,7 +943,7 @@ function peg$parse(input, options) {
917
943
  }
918
944
  return result;
919
945
  };
920
- var peg$f85 = function (lower, upper) {
946
+ var peg$f86 = function (lower, upper) {
921
947
  const result = {
922
948
  $class: `${metamodelNamespace}.IntegerDomainValidator`
923
949
  };
@@ -929,7 +955,7 @@ function peg$parse(input, options) {
929
955
  }
930
956
  return result;
931
957
  };
932
- var peg$f86 = function (lower, upper) {
958
+ var peg$f87 = function (lower, upper) {
933
959
  const result = {
934
960
  $class: `${metamodelNamespace}.LongDomainValidator`
935
961
  };
@@ -941,7 +967,43 @@ function peg$parse(input, options) {
941
967
  }
942
968
  return result;
943
969
  };
944
- var peg$f87 = function (decorators, propertyType, array, id, d, range, optional) {
970
+ var peg$f88 = function (v) { return v; };
971
+ var peg$f89 = function (items) {
972
+ return bucketValidators(items, {
973
+ [`${metamodelNamespace}.StringRegexValidator`]: 'regex',
974
+ [`${metamodelNamespace}.StringLengthValidator`]: 'length',
975
+ });
976
+ };
977
+ var peg$f90 = function (v) { return v; };
978
+ var peg$f91 = function (items) {
979
+ return bucketValidators(items, {
980
+ [`${metamodelNamespace}.StringRegexValidator`]: 'regex',
981
+ [`${metamodelNamespace}.StringLengthValidator`]: 'length',
982
+ [`${metamodelNamespace}.CollectionSizeValidator`]: 'size',
983
+ });
984
+ };
985
+ var peg$f92 = function (v) { return v; };
986
+ var peg$f93 = function (items) {
987
+ return bucketValidators(items, {
988
+ [`${metamodelNamespace}.DoubleDomainValidator`]: 'range',
989
+ [`${metamodelNamespace}.CollectionSizeValidator`]: 'size',
990
+ });
991
+ };
992
+ var peg$f94 = function (v) { return v; };
993
+ var peg$f95 = function (items) {
994
+ return bucketValidators(items, {
995
+ [`${metamodelNamespace}.IntegerDomainValidator`]: 'range',
996
+ [`${metamodelNamespace}.CollectionSizeValidator`]: 'size',
997
+ });
998
+ };
999
+ var peg$f96 = function (v) { return v; };
1000
+ var peg$f97 = function (items) {
1001
+ return bucketValidators(items, {
1002
+ [`${metamodelNamespace}.LongDomainValidator`]: 'range',
1003
+ [`${metamodelNamespace}.CollectionSizeValidator`]: 'size',
1004
+ });
1005
+ };
1006
+ var peg$f98 = function (decorators, propertyType, array, id, d, validators, optional) {
945
1007
  const result = {
946
1008
  $class: "concerto.metamodel@1.0.0.DoubleProperty",
947
1009
  name: id.name,
@@ -955,12 +1017,15 @@ function peg$parse(input, options) {
955
1017
  if (decorators.length > 0) {
956
1018
  result.decorators = decorators;
957
1019
  }
958
- if (range) {
959
- result.validator = range;
1020
+ if (validators.range) {
1021
+ result.validator = validators.range;
1022
+ }
1023
+ if (validators.size) {
1024
+ result.sizeValidator = validators.size;
960
1025
  }
961
1026
  return result;
962
1027
  };
963
- var peg$f88 = function (decorators, propertyType, array, id, d, range, optional) {
1028
+ var peg$f99 = function (decorators, propertyType, array, id, d, validators, optional) {
964
1029
  const result = {
965
1030
  $class: "concerto.metamodel@1.0.0.IntegerProperty",
966
1031
  name: id.name,
@@ -974,12 +1039,15 @@ function peg$parse(input, options) {
974
1039
  if (decorators.length > 0) {
975
1040
  result.decorators = decorators;
976
1041
  }
977
- if (range) {
978
- result.validator = range;
1042
+ if (validators.range) {
1043
+ result.validator = validators.range;
1044
+ }
1045
+ if (validators.size) {
1046
+ result.sizeValidator = validators.size;
979
1047
  }
980
1048
  return result;
981
1049
  };
982
- var peg$f89 = function (decorators, propertyType, array, id, d, range, optional) {
1050
+ var peg$f100 = function (decorators, propertyType, array, id, d, validators, optional) {
983
1051
  const result = {
984
1052
  $class: "concerto.metamodel@1.0.0.LongProperty",
985
1053
  name: id.name,
@@ -993,12 +1061,15 @@ function peg$parse(input, options) {
993
1061
  if (decorators.length > 0) {
994
1062
  result.decorators = decorators;
995
1063
  }
996
- if (range) {
997
- result.validator = range;
1064
+ if (validators.range) {
1065
+ result.validator = validators.range;
1066
+ }
1067
+ if (validators.size) {
1068
+ result.sizeValidator = validators.size;
998
1069
  }
999
1070
  return result;
1000
1071
  };
1001
- var peg$f90 = function (decorators, id, body) {
1072
+ var peg$f101 = function (decorators, id, body) {
1002
1073
  const result = {
1003
1074
  $class: "concerto.metamodel@1.0.0.MapDeclaration",
1004
1075
  name: id.name,
@@ -1011,13 +1082,13 @@ function peg$parse(input, options) {
1011
1082
  }
1012
1083
  return result;
1013
1084
  };
1014
- var peg$f91 = function (key, value) {
1085
+ var peg$f102 = function (key, value) {
1015
1086
  return {
1016
1087
  type: "MapDeclarationBody",
1017
1088
  declarations: optionalList([key, value])
1018
1089
  };
1019
1090
  };
1020
- var peg$f92 = function (decorators) {
1091
+ var peg$f103 = function (decorators) {
1021
1092
  const result = {
1022
1093
  $class: "concerto.metamodel@1.0.0.StringMapKeyType",
1023
1094
  ...buildRange(location())
@@ -1027,7 +1098,7 @@ function peg$parse(input, options) {
1027
1098
  }
1028
1099
  return result;
1029
1100
  };
1030
- var peg$f93 = function (decorators) {
1101
+ var peg$f104 = function (decorators) {
1031
1102
  const result = {
1032
1103
  $class: "concerto.metamodel@1.0.0.DateTimeMapKeyType",
1033
1104
  ...buildRange(location())
@@ -1037,7 +1108,7 @@ function peg$parse(input, options) {
1037
1108
  }
1038
1109
  return result;
1039
1110
  };
1040
- var peg$f94 = function (decorators, propertyType) {
1111
+ var peg$f105 = function (decorators, propertyType) {
1041
1112
  const result = {
1042
1113
  $class: "concerto.metamodel@1.0.0.ObjectMapKeyType",
1043
1114
  type: propertyType,
@@ -1048,7 +1119,7 @@ function peg$parse(input, options) {
1048
1119
  }
1049
1120
  return result;
1050
1121
  };
1051
- var peg$f95 = function (decorators) {
1122
+ var peg$f106 = function (decorators) {
1052
1123
  const result = {
1053
1124
  $class: "concerto.metamodel@1.0.0.BooleanMapValueType",
1054
1125
  ...buildRange(location())
@@ -1058,7 +1129,7 @@ function peg$parse(input, options) {
1058
1129
  }
1059
1130
  return result;
1060
1131
  };
1061
- var peg$f96 = function (decorators) {
1132
+ var peg$f107 = function (decorators) {
1062
1133
  const result = {
1063
1134
  $class: "concerto.metamodel@1.0.0.DateTimeMapValueType",
1064
1135
  ...buildRange(location())
@@ -1068,7 +1139,7 @@ function peg$parse(input, options) {
1068
1139
  }
1069
1140
  return result;
1070
1141
  };
1071
- var peg$f97 = function (decorators) {
1142
+ var peg$f108 = function (decorators) {
1072
1143
  const result = {
1073
1144
  $class: "concerto.metamodel@1.0.0.StringMapValueType",
1074
1145
  ...buildRange(location())
@@ -1078,7 +1149,7 @@ function peg$parse(input, options) {
1078
1149
  }
1079
1150
  return result;
1080
1151
  };
1081
- var peg$f98 = function (decorators) {
1152
+ var peg$f109 = function (decorators) {
1082
1153
  const result = {
1083
1154
  $class: "concerto.metamodel@1.0.0.IntegerMapValueType",
1084
1155
  ...buildRange(location())
@@ -1088,7 +1159,7 @@ function peg$parse(input, options) {
1088
1159
  }
1089
1160
  return result;
1090
1161
  };
1091
- var peg$f99 = function (decorators) {
1162
+ var peg$f110 = function (decorators) {
1092
1163
  const result = {
1093
1164
  $class: "concerto.metamodel@1.0.0.LongMapValueType",
1094
1165
  ...buildRange(location())
@@ -1098,7 +1169,7 @@ function peg$parse(input, options) {
1098
1169
  }
1099
1170
  return result;
1100
1171
  };
1101
- var peg$f100 = function (decorators) {
1172
+ var peg$f111 = function (decorators) {
1102
1173
  const result = {
1103
1174
  $class: "concerto.metamodel@1.0.0.DoubleMapValueType",
1104
1175
  ...buildRange(location())
@@ -1108,7 +1179,7 @@ function peg$parse(input, options) {
1108
1179
  }
1109
1180
  return result;
1110
1181
  };
1111
- var peg$f101 = function (decorators, symbol, propertyType) {
1182
+ var peg$f112 = function (decorators, symbol, propertyType) {
1112
1183
  const result = {
1113
1184
  $class: "concerto.metamodel@1.0.0.ObjectMapValueType",
1114
1185
  type: propertyType,
@@ -1122,7 +1193,7 @@ function peg$parse(input, options) {
1122
1193
  }
1123
1194
  return result;
1124
1195
  };
1125
- var peg$f102 = function (decorators, id, body) {
1196
+ var peg$f113 = function (decorators, id, body) {
1126
1197
  const result = {
1127
1198
  $class: "concerto.metamodel@1.0.0.EnumDeclaration",
1128
1199
  name: id.name,
@@ -1134,13 +1205,13 @@ function peg$parse(input, options) {
1134
1205
  }
1135
1206
  return result;
1136
1207
  };
1137
- var peg$f103 = function (decls) {
1208
+ var peg$f114 = function (decls) {
1138
1209
  return {
1139
1210
  type: "EnumDeclarationBody",
1140
1211
  declarations: optionalList(decls)
1141
1212
  };
1142
1213
  };
1143
- var peg$f104 = function (decorators, id) {
1214
+ var peg$f115 = function (decorators, id) {
1144
1215
  const result = {
1145
1216
  $class: "concerto.metamodel@1.0.0.EnumProperty",
1146
1217
  name: id.name,
@@ -1151,7 +1222,7 @@ function peg$parse(input, options) {
1151
1222
  }
1152
1223
  return result;
1153
1224
  };
1154
- var peg$f105 = function (decorators, propertyType, array, id, optional) {
1225
+ var peg$f116 = function (decorators, propertyType, array, id, size, optional) {
1155
1226
  const result = {
1156
1227
  $class: "concerto.metamodel@1.0.0.RelationshipProperty",
1157
1228
  name: id.name,
@@ -1163,24 +1234,27 @@ function peg$parse(input, options) {
1163
1234
  if (decorators.length > 0) {
1164
1235
  result.decorators = decorators;
1165
1236
  }
1237
+ if (size) {
1238
+ result.sizeValidator = size;
1239
+ }
1166
1240
  return result;
1167
1241
  };
1168
- var peg$f106 = function (first, rest) {
1242
+ var peg$f117 = function (first, rest) {
1169
1243
  return first.concat(JSON.stringify(rest).replace(/['"]+/g, ''));
1170
1244
  };
1171
- var peg$f107 = function (ns, version, name) {
1245
+ var peg$f118 = function (ns, version, name) {
1172
1246
  return `${ns}@${version}${name}`;
1173
1247
  };
1174
- var peg$f108 = function (ns, version) {
1248
+ var peg$f119 = function (ns, version) {
1175
1249
  return `${ns}@${version}`;
1176
1250
  };
1177
- var peg$f109 = function (ns) {
1251
+ var peg$f120 = function (ns) {
1178
1252
  return ns;
1179
1253
  };
1180
- var peg$f110 = function (u) {
1254
+ var peg$f121 = function (u) {
1181
1255
  return u;
1182
1256
  };
1183
- var peg$f111 = function (ns, u) {
1257
+ var peg$f122 = function (ns, u) {
1184
1258
  const { namespace, name } = fullyQualifiedName(ns);
1185
1259
  const result = {
1186
1260
  $class: `${metamodelNamespace}.ImportType`,
@@ -1190,7 +1264,7 @@ function peg$parse(input, options) {
1190
1264
  u && (result.uri = u);
1191
1265
  return result;
1192
1266
  };
1193
- var peg$f112 = function (ns, types, u) {
1267
+ var peg$f123 = function (ns, types, u) {
1194
1268
  const { aliasedTypes, typesNames } = types.reduce((acc, type) => {
1195
1269
  if (type.$class === "concerto.metamodel@1.0.0.AliasedType") {
1196
1270
  acc.aliasedTypes.push(type);
@@ -1210,7 +1284,7 @@ function peg$parse(input, options) {
1210
1284
  u && (result.uri = u);
1211
1285
  return result;
1212
1286
  };
1213
- var peg$f113 = function (name, aliasedName) {
1287
+ var peg$f124 = function (name, aliasedName) {
1214
1288
  if (isPrimitiveType(aliasedName)) {
1215
1289
  throw new Error(`A type cannot be aliased to a Primitive type, here "${name}" is being aliased as "${aliasedName}".`);
1216
1290
  }
@@ -1220,13 +1294,13 @@ function peg$parse(input, options) {
1220
1294
  aliasedName
1221
1295
  };
1222
1296
  };
1223
- var peg$f114 = function (head, tail) {
1297
+ var peg$f125 = function (head, tail) {
1224
1298
  return [head, ...tail.map(t => t[2])];
1225
1299
  };
1226
- var peg$f115 = function (version) {
1300
+ var peg$f126 = function (version) {
1227
1301
  return version.value;
1228
1302
  };
1229
- var peg$f116 = function (version, decorators, ns, imports, body) {
1303
+ var peg$f127 = function (version, decorators, ns, imports, body) {
1230
1304
  const result = {
1231
1305
  $class: "concerto.metamodel@1.0.0.Model",
1232
1306
  decorators: optionalList(decorators),
@@ -1239,10 +1313,10 @@ function peg$parse(input, options) {
1239
1313
  }
1240
1314
  return result;
1241
1315
  };
1242
- var peg$f117 = function (first, rest) {
1316
+ var peg$f128 = function (first, rest) {
1243
1317
  return buildList(first, rest, 1);
1244
1318
  };
1245
- var peg$f118 = function (first, rest) {
1319
+ var peg$f129 = function (first, rest) {
1246
1320
  return buildList(first, rest, 1);
1247
1321
  };
1248
1322
  var peg$currPos = 0;
@@ -9631,7 +9705,7 @@ function peg$parse(input, options) {
9631
9705
  return s0;
9632
9706
  }
9633
9707
  function peg$parseStringScalar() {
9634
- var s0, s1, s2, s3, s4, s5, s6, s7, s8;
9708
+ var s0, s1, s2, s3, s4, s5;
9635
9709
  s0 = peg$currPos;
9636
9710
  s1 = peg$parseStringType();
9637
9711
  if (s1 !== peg$FAILED) {
@@ -9640,19 +9714,10 @@ function peg$parse(input, options) {
9640
9714
  if (s3 === peg$FAILED) {
9641
9715
  s3 = null;
9642
9716
  }
9643
- s4 = peg$parse__();
9644
- s5 = peg$parseStringRegexValidator();
9645
- if (s5 === peg$FAILED) {
9646
- s5 = null;
9647
- }
9648
- s6 = peg$parse__();
9649
- s7 = peg$parseStringLengthValidator();
9650
- if (s7 === peg$FAILED) {
9651
- s7 = null;
9652
- }
9653
- s8 = peg$parse__();
9717
+ s4 = peg$parseStringScalarValidators();
9718
+ s5 = peg$parse__();
9654
9719
  peg$savedPos = s0;
9655
- s0 = peg$f69(s3, s5, s7);
9720
+ s0 = peg$f69(s3, s4);
9656
9721
  }
9657
9722
  else {
9658
9723
  peg$currPos = s0;
@@ -10024,7 +10089,7 @@ function peg$parse(input, options) {
10024
10089
  return s0;
10025
10090
  }
10026
10091
  function peg$parseObjectFieldDeclaration() {
10027
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
10092
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
10028
10093
  s0 = peg$currPos;
10029
10094
  s1 = peg$parseDecorators();
10030
10095
  s2 = peg$parse__();
@@ -10065,13 +10130,18 @@ function peg$parse(input, options) {
10065
10130
  s11 = null;
10066
10131
  }
10067
10132
  s12 = peg$parse__();
10068
- s13 = peg$parseOptional();
10133
+ s13 = peg$parseCollectionSizeValidator();
10069
10134
  if (s13 === peg$FAILED) {
10070
10135
  s13 = null;
10071
10136
  }
10072
10137
  s14 = peg$parse__();
10138
+ s15 = peg$parseOptional();
10139
+ if (s15 === peg$FAILED) {
10140
+ s15 = null;
10141
+ }
10142
+ s16 = peg$parse__();
10073
10143
  peg$savedPos = s0;
10074
- s0 = peg$f78(s1, s5, s7, s9, s11, s13);
10144
+ s0 = peg$f78(s1, s5, s7, s9, s11, s13, s15);
10075
10145
  }
10076
10146
  else {
10077
10147
  peg$currPos = s0;
@@ -10090,7 +10160,7 @@ function peg$parse(input, options) {
10090
10160
  return s0;
10091
10161
  }
10092
10162
  function peg$parseBooleanFieldDeclaration() {
10093
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
10163
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
10094
10164
  s0 = peg$currPos;
10095
10165
  s1 = peg$parseDecorators();
10096
10166
  s2 = peg$parse__();
@@ -10131,13 +10201,18 @@ function peg$parse(input, options) {
10131
10201
  s11 = null;
10132
10202
  }
10133
10203
  s12 = peg$parse__();
10134
- s13 = peg$parseOptional();
10204
+ s13 = peg$parseCollectionSizeValidator();
10135
10205
  if (s13 === peg$FAILED) {
10136
10206
  s13 = null;
10137
10207
  }
10138
10208
  s14 = peg$parse__();
10209
+ s15 = peg$parseOptional();
10210
+ if (s15 === peg$FAILED) {
10211
+ s15 = null;
10212
+ }
10213
+ s16 = peg$parse__();
10139
10214
  peg$savedPos = s0;
10140
- s0 = peg$f79(s1, s7, s9, s11, s13);
10215
+ s0 = peg$f79(s1, s7, s9, s11, s13, s15);
10141
10216
  }
10142
10217
  else {
10143
10218
  peg$currPos = s0;
@@ -10156,7 +10231,7 @@ function peg$parse(input, options) {
10156
10231
  return s0;
10157
10232
  }
10158
10233
  function peg$parseDateTimeFieldDeclaration() {
10159
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
10234
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
10160
10235
  s0 = peg$currPos;
10161
10236
  s1 = peg$parseDecorators();
10162
10237
  s2 = peg$parse__();
@@ -10197,13 +10272,18 @@ function peg$parse(input, options) {
10197
10272
  s11 = null;
10198
10273
  }
10199
10274
  s12 = peg$parse__();
10200
- s13 = peg$parseOptional();
10275
+ s13 = peg$parseCollectionSizeValidator();
10201
10276
  if (s13 === peg$FAILED) {
10202
10277
  s13 = null;
10203
10278
  }
10204
10279
  s14 = peg$parse__();
10280
+ s15 = peg$parseOptional();
10281
+ if (s15 === peg$FAILED) {
10282
+ s15 = null;
10283
+ }
10284
+ s16 = peg$parse__();
10205
10285
  peg$savedPos = s0;
10206
- s0 = peg$f80(s1, s7, s9, s11, s13);
10286
+ s0 = peg$f80(s1, s7, s9, s11, s13, s15);
10207
10287
  }
10208
10288
  else {
10209
10289
  peg$currPos = s0;
@@ -10222,7 +10302,7 @@ function peg$parse(input, options) {
10222
10302
  return s0;
10223
10303
  }
10224
10304
  function peg$parseStringFieldDeclaration() {
10225
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18;
10305
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
10226
10306
  s0 = peg$currPos;
10227
10307
  s1 = peg$parseDecorators();
10228
10308
  s2 = peg$parse__();
@@ -10262,24 +10342,15 @@ function peg$parse(input, options) {
10262
10342
  if (s11 === peg$FAILED) {
10263
10343
  s11 = null;
10264
10344
  }
10265
- s12 = peg$parse__();
10266
- s13 = peg$parseStringRegexValidator();
10267
- if (s13 === peg$FAILED) {
10268
- s13 = null;
10345
+ s12 = peg$parseStringFieldValidators();
10346
+ s13 = peg$parse__();
10347
+ s14 = peg$parseOptional();
10348
+ if (s14 === peg$FAILED) {
10349
+ s14 = null;
10269
10350
  }
10270
- s14 = peg$parse__();
10271
- s15 = peg$parseStringLengthValidator();
10272
- if (s15 === peg$FAILED) {
10273
- s15 = null;
10274
- }
10275
- s16 = peg$parse__();
10276
- s17 = peg$parseOptional();
10277
- if (s17 === peg$FAILED) {
10278
- s17 = null;
10279
- }
10280
- s18 = peg$parse__();
10351
+ s15 = peg$parse__();
10281
10352
  peg$savedPos = s0;
10282
- s0 = peg$f81(s1, s7, s9, s11, s13, s15, s17);
10353
+ s0 = peg$f81(s1, s7, s9, s11, s12, s14);
10283
10354
  }
10284
10355
  else {
10285
10356
  peg$currPos = s0;
@@ -10450,12 +10521,12 @@ function peg$parse(input, options) {
10450
10521
  }
10451
10522
  return s0;
10452
10523
  }
10453
- function peg$parseRealDomainValidator() {
10524
+ function peg$parseCollectionSizeValidator() {
10454
10525
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
10455
10526
  s0 = peg$currPos;
10456
- if (input.substr(peg$currPos, 5) === peg$c95) {
10527
+ if (input.substr(peg$currPos, 4) === peg$c95) {
10457
10528
  s1 = peg$c95;
10458
- peg$currPos += 5;
10529
+ peg$currPos += 4;
10459
10530
  }
10460
10531
  else {
10461
10532
  s1 = peg$FAILED;
@@ -10463,6 +10534,111 @@ function peg$parse(input, options) {
10463
10534
  peg$fail(peg$e136);
10464
10535
  }
10465
10536
  }
10537
+ if (s1 !== peg$FAILED) {
10538
+ s2 = peg$parse__();
10539
+ if (input.charCodeAt(peg$currPos) === 61) {
10540
+ s3 = peg$c62;
10541
+ peg$currPos++;
10542
+ }
10543
+ else {
10544
+ s3 = peg$FAILED;
10545
+ if (peg$silentFails === 0) {
10546
+ peg$fail(peg$e99);
10547
+ }
10548
+ }
10549
+ if (s3 !== peg$FAILED) {
10550
+ s4 = peg$parse__();
10551
+ if (input.charCodeAt(peg$currPos) === 91) {
10552
+ s5 = peg$c34;
10553
+ peg$currPos++;
10554
+ }
10555
+ else {
10556
+ s5 = peg$FAILED;
10557
+ if (peg$silentFails === 0) {
10558
+ peg$fail(peg$e49);
10559
+ }
10560
+ }
10561
+ if (s5 !== peg$FAILED) {
10562
+ s6 = peg$parse__();
10563
+ s7 = peg$currPos;
10564
+ s8 = peg$parseSignedInteger();
10565
+ if (s8 === peg$FAILED) {
10566
+ s8 = null;
10567
+ }
10568
+ s7 = input.substring(s7, peg$currPos);
10569
+ s8 = peg$parse__();
10570
+ if (input.charCodeAt(peg$currPos) === 44) {
10571
+ s9 = peg$c61;
10572
+ peg$currPos++;
10573
+ }
10574
+ else {
10575
+ s9 = peg$FAILED;
10576
+ if (peg$silentFails === 0) {
10577
+ peg$fail(peg$e98);
10578
+ }
10579
+ }
10580
+ if (s9 !== peg$FAILED) {
10581
+ s10 = peg$parse__();
10582
+ s11 = peg$currPos;
10583
+ s12 = peg$parseSignedInteger();
10584
+ if (s12 === peg$FAILED) {
10585
+ s12 = null;
10586
+ }
10587
+ s11 = input.substring(s11, peg$currPos);
10588
+ s12 = peg$parse__();
10589
+ if (input.charCodeAt(peg$currPos) === 93) {
10590
+ s13 = peg$c35;
10591
+ peg$currPos++;
10592
+ }
10593
+ else {
10594
+ s13 = peg$FAILED;
10595
+ if (peg$silentFails === 0) {
10596
+ peg$fail(peg$e50);
10597
+ }
10598
+ }
10599
+ if (s13 !== peg$FAILED) {
10600
+ peg$savedPos = s0;
10601
+ s0 = peg$f84(s7, s11);
10602
+ }
10603
+ else {
10604
+ peg$currPos = s0;
10605
+ s0 = peg$FAILED;
10606
+ }
10607
+ }
10608
+ else {
10609
+ peg$currPos = s0;
10610
+ s0 = peg$FAILED;
10611
+ }
10612
+ }
10613
+ else {
10614
+ peg$currPos = s0;
10615
+ s0 = peg$FAILED;
10616
+ }
10617
+ }
10618
+ else {
10619
+ peg$currPos = s0;
10620
+ s0 = peg$FAILED;
10621
+ }
10622
+ }
10623
+ else {
10624
+ peg$currPos = s0;
10625
+ s0 = peg$FAILED;
10626
+ }
10627
+ return s0;
10628
+ }
10629
+ function peg$parseRealDomainValidator() {
10630
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
10631
+ s0 = peg$currPos;
10632
+ if (input.substr(peg$currPos, 5) === peg$c96) {
10633
+ s1 = peg$c96;
10634
+ peg$currPos += 5;
10635
+ }
10636
+ else {
10637
+ s1 = peg$FAILED;
10638
+ if (peg$silentFails === 0) {
10639
+ peg$fail(peg$e137);
10640
+ }
10641
+ }
10466
10642
  if (s1 !== peg$FAILED) {
10467
10643
  s2 = peg$parse__();
10468
10644
  if (input.charCodeAt(peg$currPos) === 61) {
@@ -10527,7 +10703,7 @@ function peg$parse(input, options) {
10527
10703
  }
10528
10704
  if (s13 !== peg$FAILED) {
10529
10705
  peg$savedPos = s0;
10530
- s0 = peg$f84(s7, s11);
10706
+ s0 = peg$f85(s7, s11);
10531
10707
  }
10532
10708
  else {
10533
10709
  peg$currPos = s0;
@@ -10558,14 +10734,14 @@ function peg$parse(input, options) {
10558
10734
  function peg$parseIntegerDomainValidator() {
10559
10735
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
10560
10736
  s0 = peg$currPos;
10561
- if (input.substr(peg$currPos, 5) === peg$c95) {
10562
- s1 = peg$c95;
10737
+ if (input.substr(peg$currPos, 5) === peg$c96) {
10738
+ s1 = peg$c96;
10563
10739
  peg$currPos += 5;
10564
10740
  }
10565
10741
  else {
10566
10742
  s1 = peg$FAILED;
10567
10743
  if (peg$silentFails === 0) {
10568
- peg$fail(peg$e136);
10744
+ peg$fail(peg$e137);
10569
10745
  }
10570
10746
  }
10571
10747
  if (s1 !== peg$FAILED) {
@@ -10632,7 +10808,7 @@ function peg$parse(input, options) {
10632
10808
  }
10633
10809
  if (s13 !== peg$FAILED) {
10634
10810
  peg$savedPos = s0;
10635
- s0 = peg$f85(s7, s11);
10811
+ s0 = peg$f86(s7, s11);
10636
10812
  }
10637
10813
  else {
10638
10814
  peg$currPos = s0;
@@ -10663,14 +10839,14 @@ function peg$parse(input, options) {
10663
10839
  function peg$parseLongDomainValidator() {
10664
10840
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
10665
10841
  s0 = peg$currPos;
10666
- if (input.substr(peg$currPos, 5) === peg$c95) {
10667
- s1 = peg$c95;
10842
+ if (input.substr(peg$currPos, 5) === peg$c96) {
10843
+ s1 = peg$c96;
10668
10844
  peg$currPos += 5;
10669
10845
  }
10670
10846
  else {
10671
10847
  s1 = peg$FAILED;
10672
10848
  if (peg$silentFails === 0) {
10673
- peg$fail(peg$e136);
10849
+ peg$fail(peg$e137);
10674
10850
  }
10675
10851
  }
10676
10852
  if (s1 !== peg$FAILED) {
@@ -10737,7 +10913,7 @@ function peg$parse(input, options) {
10737
10913
  }
10738
10914
  if (s13 !== peg$FAILED) {
10739
10915
  peg$savedPos = s0;
10740
- s0 = peg$f86(s7, s11);
10916
+ s0 = peg$f87(s7, s11);
10741
10917
  }
10742
10918
  else {
10743
10919
  peg$currPos = s0;
@@ -10765,8 +10941,214 @@ function peg$parse(input, options) {
10765
10941
  }
10766
10942
  return s0;
10767
10943
  }
10944
+ function peg$parseStringScalarValidators() {
10945
+ var s0, s1, s2, s3, s4;
10946
+ s0 = peg$currPos;
10947
+ s1 = [];
10948
+ s2 = peg$currPos;
10949
+ s3 = peg$parse__();
10950
+ s4 = peg$parseStringRegexValidator();
10951
+ if (s4 === peg$FAILED) {
10952
+ s4 = peg$parseStringLengthValidator();
10953
+ }
10954
+ if (s4 !== peg$FAILED) {
10955
+ peg$savedPos = s2;
10956
+ s2 = peg$f88(s4);
10957
+ }
10958
+ else {
10959
+ peg$currPos = s2;
10960
+ s2 = peg$FAILED;
10961
+ }
10962
+ while (s2 !== peg$FAILED) {
10963
+ s1.push(s2);
10964
+ s2 = peg$currPos;
10965
+ s3 = peg$parse__();
10966
+ s4 = peg$parseStringRegexValidator();
10967
+ if (s4 === peg$FAILED) {
10968
+ s4 = peg$parseStringLengthValidator();
10969
+ }
10970
+ if (s4 !== peg$FAILED) {
10971
+ peg$savedPos = s2;
10972
+ s2 = peg$f88(s4);
10973
+ }
10974
+ else {
10975
+ peg$currPos = s2;
10976
+ s2 = peg$FAILED;
10977
+ }
10978
+ }
10979
+ peg$savedPos = s0;
10980
+ s1 = peg$f89(s1);
10981
+ s0 = s1;
10982
+ return s0;
10983
+ }
10984
+ function peg$parseStringFieldValidators() {
10985
+ var s0, s1, s2, s3, s4;
10986
+ s0 = peg$currPos;
10987
+ s1 = [];
10988
+ s2 = peg$currPos;
10989
+ s3 = peg$parse__();
10990
+ s4 = peg$parseStringRegexValidator();
10991
+ if (s4 === peg$FAILED) {
10992
+ s4 = peg$parseStringLengthValidator();
10993
+ if (s4 === peg$FAILED) {
10994
+ s4 = peg$parseCollectionSizeValidator();
10995
+ }
10996
+ }
10997
+ if (s4 !== peg$FAILED) {
10998
+ peg$savedPos = s2;
10999
+ s2 = peg$f90(s4);
11000
+ }
11001
+ else {
11002
+ peg$currPos = s2;
11003
+ s2 = peg$FAILED;
11004
+ }
11005
+ while (s2 !== peg$FAILED) {
11006
+ s1.push(s2);
11007
+ s2 = peg$currPos;
11008
+ s3 = peg$parse__();
11009
+ s4 = peg$parseStringRegexValidator();
11010
+ if (s4 === peg$FAILED) {
11011
+ s4 = peg$parseStringLengthValidator();
11012
+ if (s4 === peg$FAILED) {
11013
+ s4 = peg$parseCollectionSizeValidator();
11014
+ }
11015
+ }
11016
+ if (s4 !== peg$FAILED) {
11017
+ peg$savedPos = s2;
11018
+ s2 = peg$f90(s4);
11019
+ }
11020
+ else {
11021
+ peg$currPos = s2;
11022
+ s2 = peg$FAILED;
11023
+ }
11024
+ }
11025
+ peg$savedPos = s0;
11026
+ s1 = peg$f91(s1);
11027
+ s0 = s1;
11028
+ return s0;
11029
+ }
11030
+ function peg$parseRealFieldValidators() {
11031
+ var s0, s1, s2, s3, s4;
11032
+ s0 = peg$currPos;
11033
+ s1 = [];
11034
+ s2 = peg$currPos;
11035
+ s3 = peg$parse__();
11036
+ s4 = peg$parseRealDomainValidator();
11037
+ if (s4 === peg$FAILED) {
11038
+ s4 = peg$parseCollectionSizeValidator();
11039
+ }
11040
+ if (s4 !== peg$FAILED) {
11041
+ peg$savedPos = s2;
11042
+ s2 = peg$f92(s4);
11043
+ }
11044
+ else {
11045
+ peg$currPos = s2;
11046
+ s2 = peg$FAILED;
11047
+ }
11048
+ while (s2 !== peg$FAILED) {
11049
+ s1.push(s2);
11050
+ s2 = peg$currPos;
11051
+ s3 = peg$parse__();
11052
+ s4 = peg$parseRealDomainValidator();
11053
+ if (s4 === peg$FAILED) {
11054
+ s4 = peg$parseCollectionSizeValidator();
11055
+ }
11056
+ if (s4 !== peg$FAILED) {
11057
+ peg$savedPos = s2;
11058
+ s2 = peg$f92(s4);
11059
+ }
11060
+ else {
11061
+ peg$currPos = s2;
11062
+ s2 = peg$FAILED;
11063
+ }
11064
+ }
11065
+ peg$savedPos = s0;
11066
+ s1 = peg$f93(s1);
11067
+ s0 = s1;
11068
+ return s0;
11069
+ }
11070
+ function peg$parseIntegerFieldValidators() {
11071
+ var s0, s1, s2, s3, s4;
11072
+ s0 = peg$currPos;
11073
+ s1 = [];
11074
+ s2 = peg$currPos;
11075
+ s3 = peg$parse__();
11076
+ s4 = peg$parseIntegerDomainValidator();
11077
+ if (s4 === peg$FAILED) {
11078
+ s4 = peg$parseCollectionSizeValidator();
11079
+ }
11080
+ if (s4 !== peg$FAILED) {
11081
+ peg$savedPos = s2;
11082
+ s2 = peg$f94(s4);
11083
+ }
11084
+ else {
11085
+ peg$currPos = s2;
11086
+ s2 = peg$FAILED;
11087
+ }
11088
+ while (s2 !== peg$FAILED) {
11089
+ s1.push(s2);
11090
+ s2 = peg$currPos;
11091
+ s3 = peg$parse__();
11092
+ s4 = peg$parseIntegerDomainValidator();
11093
+ if (s4 === peg$FAILED) {
11094
+ s4 = peg$parseCollectionSizeValidator();
11095
+ }
11096
+ if (s4 !== peg$FAILED) {
11097
+ peg$savedPos = s2;
11098
+ s2 = peg$f94(s4);
11099
+ }
11100
+ else {
11101
+ peg$currPos = s2;
11102
+ s2 = peg$FAILED;
11103
+ }
11104
+ }
11105
+ peg$savedPos = s0;
11106
+ s1 = peg$f95(s1);
11107
+ s0 = s1;
11108
+ return s0;
11109
+ }
11110
+ function peg$parseLongFieldValidators() {
11111
+ var s0, s1, s2, s3, s4;
11112
+ s0 = peg$currPos;
11113
+ s1 = [];
11114
+ s2 = peg$currPos;
11115
+ s3 = peg$parse__();
11116
+ s4 = peg$parseLongDomainValidator();
11117
+ if (s4 === peg$FAILED) {
11118
+ s4 = peg$parseCollectionSizeValidator();
11119
+ }
11120
+ if (s4 !== peg$FAILED) {
11121
+ peg$savedPos = s2;
11122
+ s2 = peg$f96(s4);
11123
+ }
11124
+ else {
11125
+ peg$currPos = s2;
11126
+ s2 = peg$FAILED;
11127
+ }
11128
+ while (s2 !== peg$FAILED) {
11129
+ s1.push(s2);
11130
+ s2 = peg$currPos;
11131
+ s3 = peg$parse__();
11132
+ s4 = peg$parseLongDomainValidator();
11133
+ if (s4 === peg$FAILED) {
11134
+ s4 = peg$parseCollectionSizeValidator();
11135
+ }
11136
+ if (s4 !== peg$FAILED) {
11137
+ peg$savedPos = s2;
11138
+ s2 = peg$f96(s4);
11139
+ }
11140
+ else {
11141
+ peg$currPos = s2;
11142
+ s2 = peg$FAILED;
11143
+ }
11144
+ }
11145
+ peg$savedPos = s0;
11146
+ s1 = peg$f97(s1);
11147
+ s0 = s1;
11148
+ return s0;
11149
+ }
10768
11150
  function peg$parseRealFieldDeclaration() {
10769
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
11151
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
10770
11152
  s0 = peg$currPos;
10771
11153
  s1 = peg$parseDecorators();
10772
11154
  s2 = peg$parse__();
@@ -10806,19 +11188,15 @@ function peg$parse(input, options) {
10806
11188
  if (s11 === peg$FAILED) {
10807
11189
  s11 = null;
10808
11190
  }
10809
- s12 = peg$parse__();
10810
- s13 = peg$parseRealDomainValidator();
10811
- if (s13 === peg$FAILED) {
10812
- s13 = null;
10813
- }
10814
- s14 = peg$parse__();
10815
- s15 = peg$parseOptional();
10816
- if (s15 === peg$FAILED) {
10817
- s15 = null;
11191
+ s12 = peg$parseRealFieldValidators();
11192
+ s13 = peg$parse__();
11193
+ s14 = peg$parseOptional();
11194
+ if (s14 === peg$FAILED) {
11195
+ s14 = null;
10818
11196
  }
10819
- s16 = peg$parse__();
11197
+ s15 = peg$parse__();
10820
11198
  peg$savedPos = s0;
10821
- s0 = peg$f87(s1, s5, s7, s9, s11, s13, s15);
11199
+ s0 = peg$f98(s1, s5, s7, s9, s11, s12, s14);
10822
11200
  }
10823
11201
  else {
10824
11202
  peg$currPos = s0;
@@ -10837,7 +11215,7 @@ function peg$parse(input, options) {
10837
11215
  return s0;
10838
11216
  }
10839
11217
  function peg$parseIntegerFieldDeclaration() {
10840
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
11218
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
10841
11219
  s0 = peg$currPos;
10842
11220
  s1 = peg$parseDecorators();
10843
11221
  s2 = peg$parse__();
@@ -10877,19 +11255,15 @@ function peg$parse(input, options) {
10877
11255
  if (s11 === peg$FAILED) {
10878
11256
  s11 = null;
10879
11257
  }
10880
- s12 = peg$parse__();
10881
- s13 = peg$parseIntegerDomainValidator();
10882
- if (s13 === peg$FAILED) {
10883
- s13 = null;
10884
- }
10885
- s14 = peg$parse__();
10886
- s15 = peg$parseOptional();
10887
- if (s15 === peg$FAILED) {
10888
- s15 = null;
11258
+ s12 = peg$parseIntegerFieldValidators();
11259
+ s13 = peg$parse__();
11260
+ s14 = peg$parseOptional();
11261
+ if (s14 === peg$FAILED) {
11262
+ s14 = null;
10889
11263
  }
10890
- s16 = peg$parse__();
11264
+ s15 = peg$parse__();
10891
11265
  peg$savedPos = s0;
10892
- s0 = peg$f88(s1, s5, s7, s9, s11, s13, s15);
11266
+ s0 = peg$f99(s1, s5, s7, s9, s11, s12, s14);
10893
11267
  }
10894
11268
  else {
10895
11269
  peg$currPos = s0;
@@ -10908,7 +11282,7 @@ function peg$parse(input, options) {
10908
11282
  return s0;
10909
11283
  }
10910
11284
  function peg$parseLongFieldDeclaration() {
10911
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
11285
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
10912
11286
  s0 = peg$currPos;
10913
11287
  s1 = peg$parseDecorators();
10914
11288
  s2 = peg$parse__();
@@ -10948,19 +11322,15 @@ function peg$parse(input, options) {
10948
11322
  if (s11 === peg$FAILED) {
10949
11323
  s11 = null;
10950
11324
  }
10951
- s12 = peg$parse__();
10952
- s13 = peg$parseLongDomainValidator();
10953
- if (s13 === peg$FAILED) {
10954
- s13 = null;
10955
- }
10956
- s14 = peg$parse__();
10957
- s15 = peg$parseOptional();
10958
- if (s15 === peg$FAILED) {
10959
- s15 = null;
11325
+ s12 = peg$parseLongFieldValidators();
11326
+ s13 = peg$parse__();
11327
+ s14 = peg$parseOptional();
11328
+ if (s14 === peg$FAILED) {
11329
+ s14 = null;
10960
11330
  }
10961
- s16 = peg$parse__();
11331
+ s15 = peg$parse__();
10962
11332
  peg$savedPos = s0;
10963
- s0 = peg$f89(s1, s5, s7, s9, s11, s13, s15);
11333
+ s0 = peg$f100(s1, s5, s7, s9, s11, s12, s14);
10964
11334
  }
10965
11335
  else {
10966
11336
  peg$currPos = s0;
@@ -11016,7 +11386,7 @@ function peg$parse(input, options) {
11016
11386
  }
11017
11387
  if (s11 !== peg$FAILED) {
11018
11388
  peg$savedPos = s0;
11019
- s0 = peg$f90(s1, s5, s9);
11389
+ s0 = peg$f101(s1, s5, s9);
11020
11390
  }
11021
11391
  else {
11022
11392
  peg$currPos = s0;
@@ -11053,7 +11423,7 @@ function peg$parse(input, options) {
11053
11423
  s3 = peg$parseMapValueType();
11054
11424
  if (s3 !== peg$FAILED) {
11055
11425
  peg$savedPos = s0;
11056
- s0 = peg$f91(s1, s3);
11426
+ s0 = peg$f102(s1, s3);
11057
11427
  }
11058
11428
  else {
11059
11429
  peg$currPos = s0;
@@ -11087,7 +11457,7 @@ function peg$parse(input, options) {
11087
11457
  if (s5 !== peg$FAILED) {
11088
11458
  s6 = peg$parse__();
11089
11459
  peg$savedPos = s0;
11090
- s0 = peg$f92(s1);
11460
+ s0 = peg$f103(s1);
11091
11461
  }
11092
11462
  else {
11093
11463
  peg$currPos = s0;
@@ -11121,7 +11491,7 @@ function peg$parse(input, options) {
11121
11491
  if (s5 !== peg$FAILED) {
11122
11492
  s6 = peg$parse__();
11123
11493
  peg$savedPos = s0;
11124
- s0 = peg$f93(s1);
11494
+ s0 = peg$f104(s1);
11125
11495
  }
11126
11496
  else {
11127
11497
  peg$currPos = s0;
@@ -11155,7 +11525,7 @@ function peg$parse(input, options) {
11155
11525
  if (s5 !== peg$FAILED) {
11156
11526
  s6 = peg$parse__();
11157
11527
  peg$savedPos = s0;
11158
- s0 = peg$f94(s1, s5);
11528
+ s0 = peg$f105(s1, s5);
11159
11529
  }
11160
11530
  else {
11161
11531
  peg$currPos = s0;
@@ -11200,7 +11570,7 @@ function peg$parse(input, options) {
11200
11570
  if (s5 !== peg$FAILED) {
11201
11571
  s6 = peg$parse__();
11202
11572
  peg$savedPos = s0;
11203
- s0 = peg$f95(s1);
11573
+ s0 = peg$f106(s1);
11204
11574
  }
11205
11575
  else {
11206
11576
  peg$currPos = s0;
@@ -11234,7 +11604,7 @@ function peg$parse(input, options) {
11234
11604
  if (s5 !== peg$FAILED) {
11235
11605
  s6 = peg$parse__();
11236
11606
  peg$savedPos = s0;
11237
- s0 = peg$f96(s1);
11607
+ s0 = peg$f107(s1);
11238
11608
  }
11239
11609
  else {
11240
11610
  peg$currPos = s0;
@@ -11268,7 +11638,7 @@ function peg$parse(input, options) {
11268
11638
  if (s5 !== peg$FAILED) {
11269
11639
  s6 = peg$parse__();
11270
11640
  peg$savedPos = s0;
11271
- s0 = peg$f97(s1);
11641
+ s0 = peg$f108(s1);
11272
11642
  }
11273
11643
  else {
11274
11644
  peg$currPos = s0;
@@ -11302,7 +11672,7 @@ function peg$parse(input, options) {
11302
11672
  if (s5 !== peg$FAILED) {
11303
11673
  s6 = peg$parse__();
11304
11674
  peg$savedPos = s0;
11305
- s0 = peg$f98(s1);
11675
+ s0 = peg$f109(s1);
11306
11676
  }
11307
11677
  else {
11308
11678
  peg$currPos = s0;
@@ -11336,7 +11706,7 @@ function peg$parse(input, options) {
11336
11706
  if (s5 !== peg$FAILED) {
11337
11707
  s6 = peg$parse__();
11338
11708
  peg$savedPos = s0;
11339
- s0 = peg$f99(s1);
11709
+ s0 = peg$f110(s1);
11340
11710
  }
11341
11711
  else {
11342
11712
  peg$currPos = s0;
@@ -11370,7 +11740,7 @@ function peg$parse(input, options) {
11370
11740
  if (s5 !== peg$FAILED) {
11371
11741
  s6 = peg$parse__();
11372
11742
  peg$savedPos = s0;
11373
- s0 = peg$f100(s1);
11743
+ s0 = peg$f111(s1);
11374
11744
  }
11375
11745
  else {
11376
11746
  peg$currPos = s0;
@@ -11399,14 +11769,14 @@ function peg$parse(input, options) {
11399
11769
  }
11400
11770
  }
11401
11771
  if (s3 === peg$FAILED) {
11402
- if (input.substr(peg$currPos, 3) === peg$c96) {
11403
- s3 = peg$c96;
11772
+ if (input.substr(peg$currPos, 3) === peg$c97) {
11773
+ s3 = peg$c97;
11404
11774
  peg$currPos += 3;
11405
11775
  }
11406
11776
  else {
11407
11777
  s3 = peg$FAILED;
11408
11778
  if (peg$silentFails === 0) {
11409
- peg$fail(peg$e137);
11779
+ peg$fail(peg$e138);
11410
11780
  }
11411
11781
  }
11412
11782
  }
@@ -11416,7 +11786,7 @@ function peg$parse(input, options) {
11416
11786
  if (s5 !== peg$FAILED) {
11417
11787
  s6 = peg$parse__();
11418
11788
  peg$savedPos = s0;
11419
- s0 = peg$f101(s1, s3, s5);
11789
+ s0 = peg$f112(s1, s3, s5);
11420
11790
  }
11421
11791
  else {
11422
11792
  peg$currPos = s0;
@@ -11489,7 +11859,7 @@ function peg$parse(input, options) {
11489
11859
  }
11490
11860
  if (s11 !== peg$FAILED) {
11491
11861
  peg$savedPos = s0;
11492
- s0 = peg$f102(s1, s5, s9);
11862
+ s0 = peg$f113(s1, s5, s9);
11493
11863
  }
11494
11864
  else {
11495
11865
  peg$currPos = s0;
@@ -11522,7 +11892,7 @@ function peg$parse(input, options) {
11522
11892
  s2 = peg$parseEnumPropertyDeclaration();
11523
11893
  }
11524
11894
  peg$savedPos = s0;
11525
- s1 = peg$f103(s1);
11895
+ s1 = peg$f114(s1);
11526
11896
  s0 = s1;
11527
11897
  return s0;
11528
11898
  }
@@ -11547,7 +11917,7 @@ function peg$parse(input, options) {
11547
11917
  if (s5 !== peg$FAILED) {
11548
11918
  s6 = peg$parse__();
11549
11919
  peg$savedPos = s0;
11550
- s0 = peg$f104(s1, s5);
11920
+ s0 = peg$f115(s1, s5);
11551
11921
  }
11552
11922
  else {
11553
11923
  peg$currPos = s0;
@@ -11561,18 +11931,18 @@ function peg$parse(input, options) {
11561
11931
  return s0;
11562
11932
  }
11563
11933
  function peg$parseRelationshipDeclaration() {
11564
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
11934
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
11565
11935
  s0 = peg$currPos;
11566
11936
  s1 = peg$parseDecorators();
11567
11937
  s2 = peg$parse__();
11568
- if (input.substr(peg$currPos, 3) === peg$c96) {
11569
- s3 = peg$c96;
11938
+ if (input.substr(peg$currPos, 3) === peg$c97) {
11939
+ s3 = peg$c97;
11570
11940
  peg$currPos += 3;
11571
11941
  }
11572
11942
  else {
11573
11943
  s3 = peg$FAILED;
11574
11944
  if (peg$silentFails === 0) {
11575
- peg$fail(peg$e137);
11945
+ peg$fail(peg$e138);
11576
11946
  }
11577
11947
  }
11578
11948
  if (s3 !== peg$FAILED) {
@@ -11597,13 +11967,18 @@ function peg$parse(input, options) {
11597
11967
  s9 = peg$parseIdentifier();
11598
11968
  if (s9 !== peg$FAILED) {
11599
11969
  s10 = peg$parse__();
11600
- s11 = peg$parseOptional();
11970
+ s11 = peg$parseCollectionSizeValidator();
11601
11971
  if (s11 === peg$FAILED) {
11602
11972
  s11 = null;
11603
11973
  }
11604
11974
  s12 = peg$parse__();
11975
+ s13 = peg$parseOptional();
11976
+ if (s13 === peg$FAILED) {
11977
+ s13 = null;
11978
+ }
11979
+ s14 = peg$parse__();
11605
11980
  peg$savedPos = s0;
11606
- s0 = peg$f105(s1, s5, s7, s9, s11);
11981
+ s0 = peg$f116(s1, s5, s7, s9, s11, s13);
11607
11982
  }
11608
11983
  else {
11609
11984
  peg$currPos = s0;
@@ -11692,7 +12067,7 @@ function peg$parse(input, options) {
11692
12067
  }
11693
12068
  s2 = input.substring(s2, peg$currPos);
11694
12069
  peg$savedPos = s0;
11695
- s0 = peg$f106(s1, s2);
12070
+ s0 = peg$f117(s1, s2);
11696
12071
  }
11697
12072
  else {
11698
12073
  peg$currPos = s0;
@@ -11735,7 +12110,7 @@ function peg$parse(input, options) {
11735
12110
  }
11736
12111
  if (s4 !== peg$FAILED) {
11737
12112
  peg$savedPos = s0;
11738
- s0 = peg$f107(s1, s3, s4);
12113
+ s0 = peg$f118(s1, s3, s4);
11739
12114
  }
11740
12115
  else {
11741
12116
  peg$currPos = s0;
@@ -11784,7 +12159,7 @@ function peg$parse(input, options) {
11784
12159
  }
11785
12160
  if (s3 !== peg$FAILED) {
11786
12161
  peg$savedPos = s0;
11787
- s0 = peg$f108(s1, s3);
12162
+ s0 = peg$f119(s1, s3);
11788
12163
  }
11789
12164
  else {
11790
12165
  peg$currPos = s0;
@@ -11828,7 +12203,7 @@ function peg$parse(input, options) {
11828
12203
  if (s3 !== peg$FAILED) {
11829
12204
  s4 = peg$parse__();
11830
12205
  peg$savedPos = s0;
11831
- s0 = peg$f109(s3);
12206
+ s0 = peg$f120(s3);
11832
12207
  }
11833
12208
  else {
11834
12209
  peg$currPos = s0;
@@ -11858,7 +12233,7 @@ function peg$parse(input, options) {
11858
12233
  if (s3 !== peg$FAILED) {
11859
12234
  s4 = peg$parse__();
11860
12235
  peg$savedPos = s0;
11861
- s0 = peg$f110(s3);
12236
+ s0 = peg$f121(s3);
11862
12237
  }
11863
12238
  else {
11864
12239
  peg$currPos = s0;
@@ -11885,7 +12260,7 @@ function peg$parse(input, options) {
11885
12260
  s5 = null;
11886
12261
  }
11887
12262
  peg$savedPos = s0;
11888
- s0 = peg$f111(s3, s5);
12263
+ s0 = peg$f122(s3, s5);
11889
12264
  }
11890
12265
  else {
11891
12266
  peg$currPos = s0;
@@ -11906,14 +12281,14 @@ function peg$parse(input, options) {
11906
12281
  s2 = peg$parse__();
11907
12282
  s3 = peg$parseQualifiedNamespaceDeclaration();
11908
12283
  if (s3 !== peg$FAILED) {
11909
- if (input.substr(peg$currPos, 2) === peg$c97) {
11910
- s4 = peg$c97;
12284
+ if (input.substr(peg$currPos, 2) === peg$c98) {
12285
+ s4 = peg$c98;
11911
12286
  peg$currPos += 2;
11912
12287
  }
11913
12288
  else {
11914
12289
  s4 = peg$FAILED;
11915
12290
  if (peg$silentFails === 0) {
11916
- peg$fail(peg$e138);
12291
+ peg$fail(peg$e139);
11917
12292
  }
11918
12293
  }
11919
12294
  if (s4 !== peg$FAILED) {
@@ -11938,7 +12313,7 @@ function peg$parse(input, options) {
11938
12313
  s10 = null;
11939
12314
  }
11940
12315
  peg$savedPos = s0;
11941
- s0 = peg$f112(s3, s6, s10);
12316
+ s0 = peg$f123(s3, s6, s10);
11942
12317
  }
11943
12318
  else {
11944
12319
  peg$currPos = s0;
@@ -11999,7 +12374,7 @@ function peg$parse(input, options) {
11999
12374
  }
12000
12375
  if (s5 !== peg$FAILED) {
12001
12376
  peg$savedPos = s0;
12002
- s0 = peg$f113(s1, s5);
12377
+ s0 = peg$f124(s1, s5);
12003
12378
  }
12004
12379
  else {
12005
12380
  peg$currPos = s0;
@@ -12097,7 +12472,7 @@ function peg$parse(input, options) {
12097
12472
  }
12098
12473
  }
12099
12474
  peg$savedPos = s0;
12100
- s0 = peg$f114(s1, s3);
12475
+ s0 = peg$f125(s1, s3);
12101
12476
  }
12102
12477
  else {
12103
12478
  peg$currPos = s0;
@@ -12126,7 +12501,7 @@ function peg$parse(input, options) {
12126
12501
  if (s5 !== peg$FAILED) {
12127
12502
  s6 = peg$parse__();
12128
12503
  peg$savedPos = s0;
12129
- s0 = peg$f115(s5);
12504
+ s0 = peg$f126(s5);
12130
12505
  }
12131
12506
  else {
12132
12507
  peg$currPos = s0;
@@ -12163,7 +12538,7 @@ function peg$parse(input, options) {
12163
12538
  s5 = null;
12164
12539
  }
12165
12540
  peg$savedPos = s0;
12166
- s0 = peg$f116(s1, s2, s3, s4, s5);
12541
+ s0 = peg$f127(s1, s2, s3, s4, s5);
12167
12542
  }
12168
12543
  else {
12169
12544
  peg$currPos = s0;
@@ -12203,7 +12578,7 @@ function peg$parse(input, options) {
12203
12578
  }
12204
12579
  }
12205
12580
  peg$savedPos = s0;
12206
- s0 = peg$f117(s1, s2);
12581
+ s0 = peg$f128(s1, s2);
12207
12582
  }
12208
12583
  else {
12209
12584
  peg$currPos = s0;
@@ -12243,7 +12618,7 @@ function peg$parse(input, options) {
12243
12618
  }
12244
12619
  }
12245
12620
  peg$savedPos = s0;
12246
- s0 = peg$f118(s1, s2);
12621
+ s0 = peg$f129(s1, s2);
12247
12622
  }
12248
12623
  else {
12249
12624
  peg$currPos = s0;
@@ -12352,6 +12727,17 @@ function peg$parse(input, options) {
12352
12727
  const primitiveTypes = ['Boolean', 'String', 'DateTime', 'Double', 'Integer', 'Long'];
12353
12728
  return (primitiveTypes.indexOf(typeName) >= 0);
12354
12729
  }
12730
+ function bucketValidators(items, kindByClass) {
12731
+ const result = {};
12732
+ for (const v of items) {
12733
+ const kind = kindByClass[v.$class];
12734
+ if (result[kind]) {
12735
+ error(`Duplicate ${kind} validator`);
12736
+ }
12737
+ result[kind] = v;
12738
+ }
12739
+ return result;
12740
+ }
12355
12741
  peg$result = peg$startRuleFunction();
12356
12742
  if (peg$result !== peg$FAILED && peg$currPos === input.length) {
12357
12743
  return peg$result;