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

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 (33) hide show
  1. package/dist/esm/{chunk-KXXMUWWS.mjs → chunk-ADOFOC62.mjs} +19 -8
  2. package/dist/esm/chunk-ADOFOC62.mjs.map +7 -0
  3. package/dist/esm/{chunk-TXONDDFZ.mjs → chunk-AKCFZ6K2.mjs} +2 -2
  4. package/dist/esm/{chunk-N5WVDVIT.mjs → chunk-L6QXUSLL.mjs} +26 -38
  5. package/dist/esm/{chunk-N5WVDVIT.mjs.map → chunk-L6QXUSLL.mjs.map} +3 -3
  6. package/dist/esm/{chunk-JIDG6RUM.mjs → chunk-Z274WV22.mjs} +6 -6
  7. package/dist/esm/chunk-Z274WV22.mjs.map +7 -0
  8. package/dist/esm/external.mjs +2 -2
  9. package/dist/esm/index.mjs +4 -4
  10. package/dist/esm/parserMain.mjs +2 -2
  11. package/dist/esm/printer.mjs +1 -1
  12. package/dist/esm-browser/{chunk-VCWYA55K.mjs → chunk-5Z2F6LHO.mjs} +2 -2
  13. package/dist/esm-browser/{chunk-YAX4W2RL.mjs → chunk-HZQXVGUH.mjs} +2 -2
  14. package/dist/esm-browser/{chunk-SEXNR5Y5.mjs → chunk-TQPDAJQB.mjs} +6 -6
  15. package/dist/esm-browser/chunk-TQPDAJQB.mjs.map +7 -0
  16. package/dist/esm-browser/{chunk-ABBFUZVB.mjs → chunk-W7LTTM2O.mjs} +19 -8
  17. package/dist/esm-browser/chunk-W7LTTM2O.mjs.map +7 -0
  18. package/dist/esm-browser/external.mjs +2 -2
  19. package/dist/esm-browser/index.mjs +4 -4
  20. package/dist/esm-browser/parserMain.mjs +2 -2
  21. package/dist/esm-browser/printer.mjs +1 -1
  22. package/dist/parser.js +5 -5
  23. package/dist/parser.js.map +1 -1
  24. package/dist/printer.js +36 -7
  25. package/dist/printer.js.map +1 -1
  26. package/package.json +2 -2
  27. package/dist/esm/chunk-JIDG6RUM.mjs.map +0 -7
  28. package/dist/esm/chunk-KXXMUWWS.mjs.map +0 -7
  29. package/dist/esm-browser/chunk-ABBFUZVB.mjs.map +0 -7
  30. package/dist/esm-browser/chunk-SEXNR5Y5.mjs.map +0 -7
  31. /package/dist/esm/{chunk-TXONDDFZ.mjs.map → chunk-AKCFZ6K2.mjs.map} +0 -0
  32. /package/dist/esm-browser/{chunk-VCWYA55K.mjs.map → chunk-5Z2F6LHO.mjs.map} +0 -0
  33. /package/dist/esm-browser/{chunk-YAX4W2RL.mjs.map → chunk-HZQXVGUH.mjs.map} +0 -0
@@ -31,7 +31,7 @@ function decoratorArgFromMetaModel(mm) {
31
31
  break;
32
32
  case `${import_concerto_metamodel.MetaModelNamespace}.DecoratorString`:
33
33
  const strRef = mm;
34
- result += `"${strRef.value}"`;
34
+ result += toStringLiteral(strRef.value);
35
35
  break;
36
36
  default:
37
37
  result += `${mm.value}`;
@@ -125,8 +125,8 @@ function modifiersFromMetaModel(mm) {
125
125
  break;
126
126
  case `${import_concerto_metamodel.MetaModelNamespace}.DateTimeProperty`:
127
127
  case `${import_concerto_metamodel.MetaModelNamespace}.DateTimeScalar`:
128
- if (mm.defaultValue) {
129
- defaultString += ` default="${mm.defaultValue}"`;
128
+ if (mm.defaultValue !== void 0) {
129
+ defaultString += ` default=${toStringLiteral(mm.defaultValue)}`;
130
130
  }
131
131
  break;
132
132
  case `${import_concerto_metamodel.MetaModelNamespace}.DoubleProperty`:
@@ -165,11 +165,11 @@ function modifiersFromMetaModel(mm) {
165
165
  break;
166
166
  case `${import_concerto_metamodel.MetaModelNamespace}.StringProperty`:
167
167
  case `${import_concerto_metamodel.MetaModelNamespace}.StringScalar`:
168
- if (mm.defaultValue) {
169
- defaultString += ` default="${mm.defaultValue}"`;
168
+ if (mm.defaultValue !== void 0) {
169
+ defaultString += ` default=${toStringLiteral(mm.defaultValue)}`;
170
170
  }
171
171
  if (mm.validator) {
172
- validatorString += ` regex=/${mm.validator.pattern}/${mm.validator.flags || ""}`;
172
+ validatorString += ` regex=${toRegexLiteral(mm.validator.pattern, mm.validator.flags)}`;
173
173
  }
174
174
  if (mm.lengthValidator) {
175
175
  const minLength = mm.lengthValidator.minLength !== void 0 ? mm.lengthValidator.minLength : "";
@@ -178,7 +178,7 @@ function modifiersFromMetaModel(mm) {
178
178
  }
179
179
  break;
180
180
  case `${import_concerto_metamodel.MetaModelNamespace}.ObjectProperty`:
181
- if (mm.defaultValue) {
181
+ if (mm.defaultValue !== void 0) {
182
182
  defaultString += ` default="${mm.defaultValue}"`;
183
183
  }
184
184
  break;
@@ -190,6 +190,17 @@ function modifiersFromMetaModel(mm) {
190
190
  }
191
191
  return result + defaultString + validatorString;
192
192
  }
193
+ function toStringLiteral(value) {
194
+ return JSON.stringify(String(value));
195
+ }
196
+ function toRegexLiteral(pattern, flags) {
197
+ let source = pattern;
198
+ try {
199
+ source = new RegExp(pattern, flags).source;
200
+ } catch {
201
+ }
202
+ return `/${source}/${flags || ""}`;
203
+ }
193
204
  function toDoubleString(value) {
194
205
  const normalizedValue = Number(value).toLocaleString("en-US", {
195
206
  useGrouping: false,
@@ -371,4 +382,4 @@ export {
371
382
  toCTO,
372
383
  printer_default
373
384
  };
374
- //# sourceMappingURL=chunk-ABBFUZVB.mjs.map
385
+ //# sourceMappingURL=chunk-W7LTTM2O.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/printer.ts"],
4
+ "sourcesContent": ["/*\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n MetaModelNamespace,\n IDeclaration,\n IDecorator,\n IDecoratorLiteral,\n IDecoratorString,\n IDecoratorTypeReference,\n IMapDeclaration,\n IModel,\n IProperty,\n IImport,\n IImportTypes,\n IConceptDeclaration,\n IIdentifiedBy,\n IImportType,\n IDecoratorBoolean,\n IDecoratorNumber\n} from '@accordproject/concerto-metamodel';\n\n/**\n * Returns true if the metamodel is a MapDeclaration\n * @param {object} mm - the metamodel\n * @return {boolean} the string for that model\n */\nfunction isMap(mm: IDeclaration): boolean {\n return mm.$class === `${MetaModelNamespace}.MapDeclaration`;\n}\n\n/**\n * Returns true if the metamodel is a ScalarDeclaration\n * @param {object} mm - the metamodel\n * @return {boolean} the string for that model\n */\nfunction isScalar(mm: IDeclaration): boolean {\n return [\n `${MetaModelNamespace}.BooleanScalar`,\n `${MetaModelNamespace}.IntegerScalar`,\n `${MetaModelNamespace}.LongScalar`,\n `${MetaModelNamespace}.DoubleScalar`,\n `${MetaModelNamespace}.StringScalar`,\n `${MetaModelNamespace}.DateTimeScalar`,\n ].includes(mm.$class);\n}\n\n/**\n * Create decorator argument string from a metamodel\n * @param {object} mm - the metamodel\n * @return {string} the string for the decorator argument\n */\nfunction decoratorArgFromMetaModel(mm: IDecoratorLiteral): string {\n let result = '';\n switch (mm.$class) {\n case `${MetaModelNamespace}.DecoratorTypeReference`:\n const typeRef = mm as IDecoratorTypeReference;\n result += `${typeRef.type.name}${!!typeRef.isArray ? '[]' : ''}`;\n break;\n case `${MetaModelNamespace}.DecoratorString`:\n const strRef = mm as IDecoratorString;\n result += toStringLiteral(strRef.value);\n break;\n default:\n result += `${(mm as (IDecoratorNumber | IDecoratorBoolean)).value}`;\n break;\n }\n return result;\n}\n\n/**\n * Create decorator string from a metamodel\n * @param {object} mm - the metamodel\n * @return {string} the string for the decorator\n */\nfunction decoratorFromMetaModel(mm: IDecorator): string {\n let result = '';\n result += `@${mm.name}`;\n if (mm.arguments) {\n result += '(';\n result += mm.arguments.map(decoratorArgFromMetaModel).join(',');\n result += ')';\n }\n return result;\n}\n\n/**\n * Create decorators string from a metamodel\n * @param {object} mm - the metamodel\n * @param {string} prefix - indentation\n * @return {string} the string for the decorators\n */\nfunction decoratorsFromMetaModel(mm: IDecorator[], prefix: string): string {\n let result = '';\n result += mm.map(decoratorFromMetaModel).join(`\\n${prefix}`);\n result += `\\n${prefix}`;\n return result;\n}\n\n/**\n * Create type string from a metamodel\n *\n * @param {object} mm - the metamodel\n * @return {string} the string for the type\n */\nfunction typeFromMetaModel(mm: any): string {\n let result = '';\n switch (mm.$class) {\n case `${MetaModelNamespace}.EnumProperty`:\n break;\n case `${MetaModelNamespace}.BooleanScalar`:\n case `${MetaModelNamespace}.BooleanProperty`:\n case `${MetaModelNamespace}.BooleanMapValueType`:\n result += ' Boolean';\n break;\n case `${MetaModelNamespace}.DateTimeProperty`:\n case `${MetaModelNamespace}.DateTimeScalar`:\n case `${MetaModelNamespace}.DateTimeMapKeyType`:\n case `${MetaModelNamespace}.DateTimeMapValueType`:\n result += ' DateTime';\n break;\n case `${MetaModelNamespace}.DoubleProperty`:\n case `${MetaModelNamespace}.DoubleScalar`:\n case `${MetaModelNamespace}.DoubleMapValueType`:\n result += ' Double';\n break;\n case `${MetaModelNamespace}.IntegerProperty`:\n case `${MetaModelNamespace}.IntegerScalar`:\n case `${MetaModelNamespace}.IntegerMapValueType`:\n result += ' Integer';\n break;\n case `${MetaModelNamespace}.LongProperty`:\n case `${MetaModelNamespace}.LongScalar`:\n case `${MetaModelNamespace}.LongMapValueType`:\n result += ' Long';\n break;\n case `${MetaModelNamespace}.StringProperty`:\n case `${MetaModelNamespace}.StringScalar`:\n case `${MetaModelNamespace}.StringMapKeyType`:\n case `${MetaModelNamespace}.StringMapValueType`:\n result += ' String';\n break;\n case `${MetaModelNamespace}.ObjectProperty`:\n case `${MetaModelNamespace}.ObjectMapKeyType`:\n case `${MetaModelNamespace}.ObjectMapValueType`:\n result += ` ${mm.type.name}`;\n break;\n case `${MetaModelNamespace}.RelationshipProperty`:\n case `${MetaModelNamespace}.RelationshipMapValueType`:\n result += ` ${mm.type.name}`;\n break;\n }\n return result;\n}\n\n/**\n * Create modifiers string from a metamodel\n *\n * @param {object} mm - the metamodel\n * @return {string} the string for the modifiers\n */\nfunction modifiersFromMetaModel(mm: any): string {\n let result = '';\n let defaultString = '';\n let validatorString = '';\n\n switch (mm.$class) {\n case `${MetaModelNamespace}.EnumProperty`:\n break;\n case `${MetaModelNamespace}.BooleanProperty`:\n case `${MetaModelNamespace}.BooleanScalar`:\n if (mm.defaultValue === true || mm.defaultValue === false) {\n if (mm.defaultValue) {\n defaultString += ' default=true';\n } else {\n defaultString += ' default=false';\n }\n }\n break;\n case `${MetaModelNamespace}.DateTimeProperty`:\n case `${MetaModelNamespace}.DateTimeScalar`:\n if (mm.defaultValue !== undefined) {\n defaultString += ` default=${toStringLiteral(mm.defaultValue)}`;\n }\n break;\n case `${MetaModelNamespace}.DoubleProperty`:\n case `${MetaModelNamespace}.DoubleScalar`:\n if (mm.defaultValue !== undefined) {\n const doubleString = toDoubleString(mm.defaultValue);\n defaultString += ` default=${doubleString}`;\n }\n if (mm.validator) {\n const lowerString = mm.validator.lower !== undefined ? toDoubleString(mm.validator.lower) : '';\n const upperString = mm.validator.upper !== undefined ? toDoubleString(mm.validator.upper) : '';\n validatorString += ` range=[${lowerString},${upperString}]`;\n }\n break;\n case `${MetaModelNamespace}.IntegerProperty`:\n case `${MetaModelNamespace}.IntegerScalar`:\n if (mm.defaultValue !== undefined) {\n defaultString += ` default=${mm.defaultValue.toString()}`;\n }\n if (mm.validator) {\n const lowerString = mm.validator.lower !== undefined ? mm.validator.lower : '';\n const upperString = mm.validator.upper !== undefined ? mm.validator.upper : '';\n validatorString += ` range=[${lowerString},${upperString}]`;\n }\n break;\n case `${MetaModelNamespace}.LongProperty`:\n case `${MetaModelNamespace}.LongScalar`:\n if (mm.defaultValue !== undefined) {\n defaultString += ` default=${mm.defaultValue.toString()}`;\n }\n if (mm.validator) {\n const lowerString = mm.validator.lower !== undefined ? mm.validator.lower : '';\n const upperString = mm.validator.upper !== undefined ? mm.validator.upper : '';\n validatorString += ` range=[${lowerString},${upperString}]`;\n }\n break;\n case `${MetaModelNamespace}.StringProperty`:\n case `${MetaModelNamespace}.StringScalar`:\n if (mm.defaultValue !== undefined) {\n defaultString += ` default=${toStringLiteral(mm.defaultValue)}`;\n }\n if (mm.validator) {\n validatorString += ` regex=${toRegexLiteral(mm.validator.pattern, mm.validator.flags)}`;\n }\n if (mm.lengthValidator) {\n const minLength = mm.lengthValidator.minLength !== undefined ? mm.lengthValidator.minLength : '';\n const maxLength = mm.lengthValidator.maxLength !== undefined ? mm.lengthValidator.maxLength : '';\n validatorString += ` length=[${minLength},${maxLength}]`;\n }\n break;\n case `${MetaModelNamespace}.ObjectProperty`:\n if (mm.defaultValue !== undefined) {\n defaultString += ` default=\"${mm.defaultValue}\"`;\n }\n break;\n }\n\n if (mm.sizeValidator) {\n const minSize = mm.sizeValidator.minSize !== undefined ? mm.sizeValidator.minSize : '';\n const maxSize = mm.sizeValidator.maxSize !== undefined ? mm.sizeValidator.maxSize : '';\n validatorString += ` size=[${minSize},${maxSize}]`;\n }\n\n return result + defaultString + validatorString;\n}\n\n/**\n * Format a string as a quoted CTO string literal, escaping any characters that\n * would otherwise terminate the literal or break parsing.\n * @param {string} value - string value to quote\n * @returns {string} CTO-compatible quoted string literal\n */\nfunction toStringLiteral(value: string): string {\n return JSON.stringify(String(value));\n}\n\n/**\n * Format a regular expression validator as a CTO regex literal. Unescaped\n * forward slashes and line terminators in the pattern would terminate the\n * literal early, so the pattern is normalized the same way JavaScript\n * normalizes RegExp.prototype.source. Patterns that are not valid regular\n * expressions are emitted unchanged.\n * @param {string} pattern - the regular expression pattern\n * @param {string} [flags] - the regular expression flags\n * @returns {string} CTO-compatible regex literal\n */\nfunction toRegexLiteral(pattern: string, flags?: string): string {\n let source = pattern;\n try {\n source = new RegExp(pattern, flags).source;\n } catch {\n // Leave invalid patterns untouched rather than throwing while printing\n }\n return `/${source}/${flags || ''}`;\n}\n\n/**\n * Format a numeric literal as a Double token for CTO output.\n * @param {number} value - numeric value to format\n * @returns {string} CTO-compatible Double literal\n */\nfunction toDoubleString(value: number): string {\n const normalizedValue = Number(value).toLocaleString('en-US', {\n useGrouping: false,\n // Intl.NumberFormat permits 1..21; use the maximum to avoid exponent output.\n maximumSignificantDigits: 21,\n });\n\n if (!normalizedValue.includes('.')) {\n return `${normalizedValue}.0`;\n }\n\n return normalizedValue;\n}\n\n/**\n * Create property string from a metamodel\n *\n * @param {object} prop - the property metamodel object\n * @return {string} the string for the property\n */\nfunction propertyFromMetaModel(prop: IProperty): string {\n let result = '';\n\n if (prop.decorators) {\n result += decoratorsFromMetaModel(prop.decorators, ' ');\n }\n\n if (prop.$class === `${MetaModelNamespace}.RelationshipProperty`) {\n result += '-->';\n } else {\n result += 'o';\n }\n result += typeFromMetaModel(prop);\n if (prop.isArray) {\n result += '[]';\n }\n result += ` ${prop.name}`;\n result += modifiersFromMetaModel(prop);\n if (prop.isOptional) {\n result += ' optional';\n }\n return result;\n}\n\n/**\n * Create map type string from a metamodel map\n *\n * @param {object} entry - the map metamodel object\n * @return {string} the string for the map\n */\nfunction mapFromMetaModel(entry: any): string {\n let result = '';\n if (entry.decorators) {\n result += decoratorsFromMetaModel(entry.decorators, ' ');\n }\n if (entry.$class === `${MetaModelNamespace}.RelationshipMapValueType`) {\n result += '-->';\n } else {\n result += 'o';\n }\n result += typeFromMetaModel(entry);\n return result;\n}\n\n/**\n * Create declaration string from a metamodel\n *\n * @param {object} mm - the declaration metamodel object\n * @return {string} the string for the declaration\n */\nfunction declFromMetaModel(mm: IDeclaration): string {\n let result = '';\n\n if (mm.decorators) {\n result += decoratorsFromMetaModel(mm.decorators, '');\n }\n\n if (isScalar(mm)) {\n result += `scalar ${mm.name} extends`;\n result += typeFromMetaModel(mm);\n result += modifiersFromMetaModel(mm);\n } else if (isMap(mm)) {\n result += `map ${mm.name} {`;\n const mapDecl = mm as IMapDeclaration;\n result += `\\n ${mapFromMetaModel(mapDecl.key)}`;\n result += `\\n ${mapFromMetaModel(mapDecl.value)}`;\n result += '\\n}';\n } else {\n const conceptDecl = mm as IConceptDeclaration;\n if (conceptDecl.isAbstract) {\n result += 'abstract ';\n }\n switch (mm.$class) {\n case `${MetaModelNamespace}.AssetDeclaration`:\n result += `asset ${mm.name} `;\n break;\n case `${MetaModelNamespace}.ConceptDeclaration`:\n result += `concept ${mm.name} `;\n break;\n case `${MetaModelNamespace}.EventDeclaration`:\n result += `event ${mm.name} `;\n break;\n case `${MetaModelNamespace}.ParticipantDeclaration`:\n result += `participant ${mm.name} `;\n break;\n case `${MetaModelNamespace}.TransactionDeclaration`:\n result += `transaction ${mm.name} `;\n break;\n case `${MetaModelNamespace}.EnumDeclaration`:\n result += `enum ${mm.name} `;\n break;\n }\n\n // Handle identified\n if (conceptDecl.identified) {\n if (conceptDecl.identified.$class === `${MetaModelNamespace}.IdentifiedBy`) {\n const identifiedBy = conceptDecl.identified as IIdentifiedBy;\n result += `identified by ${identifiedBy.name} `;\n } else {\n result += 'identified ';\n }\n }\n\n // Handle supertype\n if (conceptDecl.superType) {\n if (conceptDecl.superType.name === mm.name) {\n throw new Error(`The declaration \"${mm.name}\" cannot extend itself.`);\n }\n result += `extends ${conceptDecl.superType.name} `;\n }\n\n result += '{';\n\n // Handle properties\n conceptDecl.properties.forEach((property: IProperty) => {\n result += `\\n ${propertyFromMetaModel(property)}`;\n });\n result += '\\n}';\n }\n\n return result;\n}\n\n/**\n * Converts a metamodel instance to a CTO string\n *\n * @param {*} metaModel - the metamodel instance\n * @return {string} the CTO model as a string\n */\nexport function toCTO(metaModel: IModel): string {\n let result = '';\n\n // version\n if (metaModel.concertoVersion) {\n result += `concerto version \"${metaModel.concertoVersion}\"\\n\\n`;\n }\n\n // decorators\n if (metaModel.decorators && metaModel.decorators.length > 0) {\n result += decoratorsFromMetaModel(metaModel.decorators, '');\n }\n\n // namespace\n result += `namespace ${metaModel.namespace}`;\n\n // imports\n if (metaModel.imports && metaModel.imports.length > 0) {\n result += '\\n';\n metaModel.imports.forEach((imp: IImport) => {\n switch (imp.$class) {\n case `${MetaModelNamespace}.ImportType`:\n case `${MetaModelNamespace}.ImportTypeFrom`: {\n const typedImport = imp as IImportType;\n result += `\\nimport ${imp.namespace}.${typedImport.name}`;\n break;\n }\n case `${MetaModelNamespace}.ImportAll`:\n case `${MetaModelNamespace}.ImportAllFrom`:\n result += `\\nimport ${imp.namespace}.*`;\n break;\n case `${MetaModelNamespace}.ImportTypes`: {\n const typesImport = imp as IImportTypes;\n if (!typesImport.types || typesImport.types.length === 0) {\n break;\n }\n const aliasedTypes = typesImport.aliasedTypes\n ? new Map(\n typesImport.aliasedTypes.map((aliasedType: any) => [\n aliasedType.name,\n aliasedType.aliasedName,\n ])\n )\n : new Map();\n const commaSeparatedTypesString = typesImport.types\n .map((type: string) =>\n aliasedTypes.has(type)\n ? `${type} as ${aliasedTypes.get(type)}`\n : type\n )\n .join(',');\n result += `\\nimport ${imp.namespace}.{${commaSeparatedTypesString}}`;\n break;\n }\n default:\n throw new Error('Unrecognized import');\n }\n if (imp.uri) {\n result += ` from ${imp.uri}`;\n }\n });\n }\n\n // declarations\n if (metaModel.declarations && metaModel.declarations.length > 0) {\n metaModel.declarations.forEach((decl: IDeclaration) => {\n result += `\\n\\n${declFromMetaModel(decl)}`;\n });\n }\n\n return result;\n}\n\nconst Printer = {\n toCTO,\n};\nexport default Printer;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -2,8 +2,8 @@ import {
2
2
  createDefaultFileDownloader,
3
3
  external_default,
4
4
  resolveExternal
5
- } from "./chunk-VCWYA55K.mjs";
6
- import "./chunk-SEXNR5Y5.mjs";
5
+ } from "./chunk-5Z2F6LHO.mjs";
6
+ import "./chunk-TQPDAJQB.mjs";
7
7
  import "./chunk-E5UYTZNO.mjs";
8
8
  import "./chunk-MSZDQHW6.mjs";
9
9
  export {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  external_default
3
- } from "./chunk-VCWYA55K.mjs";
3
+ } from "./chunk-5Z2F6LHO.mjs";
4
4
  import {
5
5
  parserMain_default
6
- } from "./chunk-YAX4W2RL.mjs";
7
- import "./chunk-SEXNR5Y5.mjs";
6
+ } from "./chunk-HZQXVGUH.mjs";
7
+ import "./chunk-TQPDAJQB.mjs";
8
8
  import {
9
9
  parseexception_default
10
10
  } from "./chunk-OMK4IF4X.mjs";
11
11
  import {
12
12
  printer_default
13
- } from "./chunk-ABBFUZVB.mjs";
13
+ } from "./chunk-W7LTTM2O.mjs";
14
14
  import "./chunk-E5UYTZNO.mjs";
15
15
  import {
16
16
  init_browser_process_shim
@@ -2,8 +2,8 @@ import {
2
2
  parse,
3
3
  parseModels,
4
4
  parserMain_default
5
- } from "./chunk-YAX4W2RL.mjs";
6
- import "./chunk-SEXNR5Y5.mjs";
5
+ } from "./chunk-HZQXVGUH.mjs";
6
+ import "./chunk-TQPDAJQB.mjs";
7
7
  import "./chunk-OMK4IF4X.mjs";
8
8
  import "./chunk-E5UYTZNO.mjs";
9
9
  import "./chunk-MSZDQHW6.mjs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  printer_default,
3
3
  toCTO
4
- } from "./chunk-ABBFUZVB.mjs";
4
+ } from "./chunk-W7LTTM2O.mjs";
5
5
  import "./chunk-E5UYTZNO.mjs";
6
6
  import "./chunk-MSZDQHW6.mjs";
7
7
  export {
package/dist/parser.js CHANGED
@@ -766,7 +766,7 @@ function peg$parse(input, options) {
766
766
  const result = {
767
767
  $class: "concerto.metamodel@1.0.0.StringScalar",
768
768
  };
769
- if (d) {
769
+ if (d !== null) {
770
770
  result.defaultValue = d;
771
771
  }
772
772
  if (validators.regex) {
@@ -781,7 +781,7 @@ function peg$parse(input, options) {
781
781
  const result = {
782
782
  $class: "concerto.metamodel@1.0.0.DateTimeScalar",
783
783
  };
784
- if (d) {
784
+ if (d !== null) {
785
785
  result.defaultValue = d;
786
786
  }
787
787
  return result;
@@ -830,7 +830,7 @@ function peg$parse(input, options) {
830
830
  isOptional: buildBoolean(optional),
831
831
  ...buildRange(location())
832
832
  };
833
- if (d) {
833
+ if (d !== null) {
834
834
  result.defaultValue = d;
835
835
  }
836
836
  if (decorators.length > 0) {
@@ -868,7 +868,7 @@ function peg$parse(input, options) {
868
868
  isOptional: buildBoolean(optional),
869
869
  ...buildRange(location())
870
870
  };
871
- if (d) {
871
+ if (d !== null) {
872
872
  result.defaultValue = d;
873
873
  }
874
874
  if (decorators.length > 0) {
@@ -887,7 +887,7 @@ function peg$parse(input, options) {
887
887
  isOptional: buildBoolean(optional),
888
888
  ...buildRange(location())
889
889
  };
890
- if (d) {
890
+ if (d !== null) {
891
891
  result.defaultValue = d;
892
892
  }
893
893
  if (decorators.length > 0) {