@blockml/parser 0.3.0 → 0.5.0

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 (55) hide show
  1. package/blocks/org/blockml/bml/compiler/parser/Library.bml +2 -1
  2. package/blocks/org/blockml/bml/compiler/parser/capability/CreateMapContext.bml +1 -1
  3. package/blocks/org/blockml/bml/compiler/parser/capability/ParseXmlDom.bml +3 -0
  4. package/blocks/org/blockml/bml/compiler/parser/config/MapTimeDiagnosticCodes.bml +1 -1
  5. package/blocks/org/blockml/bml/compiler/parser/documentation/AttributeClassification.bml +4 -4
  6. package/blocks/org/blockml/bml/compiler/parser/documentation/DesignDecisions.bml +1 -1
  7. package/blocks/org/blockml/bml/compiler/parser/documentation/Diagnostics.bml +7 -0
  8. package/blocks/org/blockml/bml/compiler/parser/documentation/PublicApi.bml +3 -1
  9. package/blocks/org/blockml/bml/compiler/parser/documentation/StructuralGrammar.bml +60 -0
  10. package/blocks/org/blockml/bml/compiler/parser/documentation/TypeDescriptorParsing.bml +2 -1
  11. package/blocks/org/blockml/bml/compiler/parser/documentation/V1Scope.bml +1 -1
  12. package/blocks/org/blockml/bml/compiler/parser/map/MapContext.bml +3 -0
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/map/context.d.ts +3 -0
  18. package/dist/map/context.d.ts.map +1 -1
  19. package/dist/map/context.js +1 -0
  20. package/dist/map/context.js.map +1 -1
  21. package/dist/map/directives.d.ts +2 -1
  22. package/dist/map/directives.d.ts.map +1 -1
  23. package/dist/map/directives.js +5 -1
  24. package/dist/map/directives.js.map +1 -1
  25. package/dist/map/map-block.d.ts +2 -2
  26. package/dist/map/map-block.d.ts.map +1 -1
  27. package/dist/map/map-block.js +114 -81
  28. package/dist/map/map-block.js.map +1 -1
  29. package/dist/map/map-composition.d.ts.map +1 -1
  30. package/dist/map/map-composition.js +14 -17
  31. package/dist/map/map-composition.js.map +1 -1
  32. package/dist/map/structural.d.ts +17 -0
  33. package/dist/map/structural.d.ts.map +1 -0
  34. package/dist/map/structural.js +249 -0
  35. package/dist/map/structural.js.map +1 -0
  36. package/dist/map/type-expression.d.ts +5 -1
  37. package/dist/map/type-expression.d.ts.map +1 -1
  38. package/dist/map/type-expression.js +99 -34
  39. package/dist/map/type-expression.js.map +1 -1
  40. package/dist/parse.d.ts.map +1 -1
  41. package/dist/parse.js +36 -14
  42. package/dist/parse.js.map +1 -1
  43. package/dist/pipeline/xml-dom.d.ts +10 -1
  44. package/dist/pipeline/xml-dom.d.ts.map +1 -1
  45. package/dist/pipeline/xml-dom.js +55 -3
  46. package/dist/pipeline/xml-dom.js.map +1 -1
  47. package/dist/util/mapping-error.d.ts +17 -0
  48. package/dist/util/mapping-error.d.ts.map +1 -0
  49. package/dist/util/mapping-error.js +110 -0
  50. package/dist/util/mapping-error.js.map +1 -0
  51. package/dist/util/qname.d.ts +14 -0
  52. package/dist/util/qname.d.ts.map +1 -1
  53. package/dist/util/qname.js +64 -2
  54. package/dist/util/qname.js.map +1 -1
  55. package/package.json +3 -3
@@ -1,45 +1,19 @@
1
1
  import { createMapContext } from "./context.js";
2
2
  import { mapBlockInstanceNode, mapCompositionTemplate, mapTypeReferenceEntityInstance, isTypeReferenceEntitySugar, buildSubBlockIndex, } from "./map-composition.js";
3
- import { parseTypeExpression, inferCardinality } from "./type-expression.js";
3
+ import { parseTypeExpression, inferCardinality, } from "./type-expression.js";
4
4
  import { parseMemberValue } from "./member-value.js";
5
5
  import { elementChildren, elementLocalName, elementPrefix, getAttribute, getCharacterData, xmlTriviaFromElement, } from "../util/xml.js";
6
6
  import { parseVisibilityFromName } from "../util/visibility.js";
7
7
  import { parseBooleanAttribute, isBooleanLiteral } from "../util/boolean.js";
8
- import { resolveBlockReference, resolvePrefix, resolveTypeName, elementSourceLoc, TYPE_REFERENCE_ENTITY, } from "../util/qname.js";
9
- import { parseDirectives } from "./directives.js";
8
+ import { resolveBlockReference, resolvePrefix, resolveTypeName, elementSourceLoc, attributeValueLoc, TYPE_REFERENCE_ENTITY, } from "../util/qname.js";
9
+ import { withElementLocation } from "../util/mapping-error.js";
10
+ import { collectBlockGrammarAttributes, collectIdentityOrSectionAttributes, collectMemberGrammarAttributes, isAllowedRootChild, reportUnknownElement, toUnknownXmlNode, } from "./structural.js";
10
11
  const MEMBER_SECTIONS = new Set([
11
12
  "properties",
12
13
  "aggregations",
13
14
  "associations",
14
15
  "capabilities",
15
16
  ]);
16
- const METADATA_TAGS = new Set([
17
- "name",
18
- "type",
19
- "baseType",
20
- "is",
21
- "isnot",
22
- "isNot",
23
- "version",
24
- "definition",
25
- "since",
26
- "status",
27
- "summary",
28
- "documentation",
29
- "abstract",
30
- "final",
31
- "language",
32
- "subBlocks",
33
- "embeddedBlocks",
34
- "genericTypes",
35
- "contracts",
36
- "aliases",
37
- "keywords",
38
- "changelog",
39
- "examples",
40
- "references",
41
- "constraints",
42
- ]);
43
17
  function mapBlockDefinition(element, ctx, parentType) {
44
18
  const block = {
45
19
  name: "",
@@ -54,6 +28,10 @@ function mapBlockDefinition(element, ctx, parentType) {
54
28
  block.xmlTrivia = trivia;
55
29
  }
56
30
  block.source = elementSourceLoc(ctx.filePath, ctx.source, element);
31
+ const unknownAttrs = collectBlockGrammarAttributes(element, ctx);
32
+ if (unknownAttrs) {
33
+ block.unknownAttributes = unknownAttrs;
34
+ }
57
35
  const childElements = elementChildren(element);
58
36
  const subBlocksRaw = [];
59
37
  const embeddedRaw = [];
@@ -63,7 +41,7 @@ function mapBlockDefinition(element, ctx, parentType) {
63
41
  associations: [],
64
42
  capabilities: [],
65
43
  };
66
- const directAggregations = [];
44
+ const unknownElements = [];
67
45
  for (const child of childElements) {
68
46
  const local = elementLocalName(child);
69
47
  if (local === "subBlocks") {
@@ -78,21 +56,14 @@ function mapBlockDefinition(element, ctx, parentType) {
78
56
  memberSections[local].push(...elementChildren(child));
79
57
  continue;
80
58
  }
81
- if (local === "composition") {
59
+ if (isAllowedRootChild(child)) {
82
60
  continue;
83
61
  }
84
- if ((elementPrefix(child) === "bml" && local === "xml") ||
85
- (elementPrefix(child) === "bml" && local === "container")) {
86
- continue;
87
- }
88
- if (!METADATA_TAGS.has(local) &&
89
- local !== "bml:xml" &&
90
- !local.startsWith("bml:")) {
91
- const hasComposition = elementChildren(child).some((c) => elementLocalName(c) === "composition");
92
- if (hasComposition || elementChildren(child).length === 0) {
93
- directAggregations.push(child);
94
- }
95
- }
62
+ reportUnknownElement(child, ctx);
63
+ unknownElements.push(toUnknownXmlNode(child, ctx));
64
+ }
65
+ if (unknownElements.length > 0) {
66
+ block.unknownElements = unknownElements;
96
67
  }
97
68
  mapMetadataFields(element, block, ctx);
98
69
  if (!block.name) {
@@ -101,7 +72,7 @@ function mapBlockDefinition(element, ctx, parentType) {
101
72
  if (ctx.isEmbedded && getAttribute(element, "type")) {
102
73
  const typeText = getTextOrAttr(element, "type");
103
74
  if (typeText) {
104
- block.type = resolveBlockReference(typeText, ctx.bindings, ctx.subBlockIndex, parentType);
75
+ block.type = withElementLocation(ctx.filePath, ctx.source, element, () => resolveBlockReference(typeText, ctx.bindings, ctx.subBlockIndex, parentType), { name: "type", value: typeText });
105
76
  }
106
77
  }
107
78
  else if (!block.type && parentType) {
@@ -118,6 +89,7 @@ function mapBlockDefinition(element, ctx, parentType) {
118
89
  parentBlockType: block.type,
119
90
  isRoot: false,
120
91
  isEmbedded: false,
92
+ diagnostics: ctx.diagnostics,
121
93
  });
122
94
  const sb = mapBlockDefinition(sbEl, sbCtx, block.type);
123
95
  if (!sb.type) {
@@ -132,19 +104,20 @@ function mapBlockDefinition(element, ctx, parentType) {
132
104
  const ebCtx = createMapContext(ctx.filePath, ctx.source, ctx.bindings, {
133
105
  isRoot: false,
134
106
  isEmbedded: true,
107
+ diagnostics: ctx.diagnostics,
135
108
  });
136
109
  block.embeddedBlocks.push(mapBlockDefinition(ebEl, ebCtx));
137
110
  }
138
111
  appendMembers(memberSections.properties ?? [], "property", block, ctx);
139
112
  appendMembers(memberSections.aggregations ?? [], "aggregation", block, ctx, true);
140
- appendMembers(directAggregations, "aggregation", block, ctx, false);
141
113
  appendMembers(memberSections.associations ?? [], "association", block, ctx);
142
114
  appendMembers(memberSections.capabilities ?? [], "capability", block, ctx);
143
115
  return block;
144
116
  }
145
117
  function appendMembers(elements, kind, block, ctx, inAggregationsSection = false) {
146
118
  for (const el of elements) {
147
- const member = mapMemberElement(el, kind, ctx, inAggregationsSection);
119
+ const typeAttr = getAttribute(el, "type");
120
+ const member = withElementLocation(ctx.filePath, ctx.source, el, () => mapMemberElement(el, kind, ctx, inAggregationsSection), typeAttr !== undefined ? { name: "type", value: typeAttr } : undefined);
148
121
  if (member) {
149
122
  block.members.push(member);
150
123
  if (member.kind === "aggregation" && member.composition) {
@@ -169,6 +142,10 @@ const MEMBER_CHILD_METADATA = new Set([
169
142
  "implementation",
170
143
  "bml:xml",
171
144
  "xml",
145
+ "abstract",
146
+ "final",
147
+ "language",
148
+ "status",
172
149
  ]);
173
150
  function isMemberMetadataChild(element) {
174
151
  const local = elementLocalName(element);
@@ -194,21 +171,20 @@ function mapMemberElement(element, kind, ctx, inAggregationsSection = false) {
194
171
  const prefix = elementPrefix(element);
195
172
  const ns = prefix ? resolvePrefix(prefix, ctx.bindings) : "";
196
173
  const base = mapMemberBase(element, name, visibility, ns ?? "", ctx);
174
+ const typeAttrForSpan = getAttribute(element, "type");
175
+ if (typeAttrForSpan !== undefined) {
176
+ const typeSource = attributeValueLoc(ctx.filePath, ctx.source, element, "type", typeAttrForSpan);
177
+ if (typeSource) {
178
+ base.typeSource = typeSource;
179
+ }
180
+ }
197
181
  if (kind === "property") {
198
- const typeAttr = getAttribute(element, "type") ?? "";
182
+ const typeAttr = getAttribute(element, "type");
199
183
  let typeFqn = "";
200
184
  let typeExpr;
201
- if (typeAttr) {
202
- try {
203
- typeExpr = parseTypeExpression(typeAttr, ctx.bindings, "type");
204
- typeFqn =
205
- typeExpr.kind === "named"
206
- ? typeExpr.fqn
207
- : "";
208
- }
209
- catch {
210
- typeFqn = resolveTypeName(typeAttr, ctx.bindings, "type");
211
- }
185
+ if (typeAttr !== undefined) {
186
+ typeExpr = parseTypeExpression(typeAttr, ctx.bindings, "type", typeResolveOptions(ctx));
187
+ typeFqn = typeExpr.kind === "named" ? typeExpr.fqn : "";
212
188
  }
213
189
  const prop = {
214
190
  ...base,
@@ -219,7 +195,7 @@ function mapMemberElement(element, kind, ctx, inAggregationsSection = false) {
219
195
  mapPropertyValues(element, prop, typeFqn, ctx);
220
196
  mapSuggestions(element, prop, ctx);
221
197
  mapMemberGroups(element, prop, ctx);
222
- return prop;
198
+ return finishMember(element, prop, ctx);
223
199
  }
224
200
  if (kind === "aggregation") {
225
201
  const typeAttr = getAttribute(element, "type");
@@ -229,13 +205,7 @@ function mapMemberElement(element, kind, ctx, inAggregationsSection = false) {
229
205
  authoredInAggregationsSection: inAggregationsSection,
230
206
  };
231
207
  if (typeAttr) {
232
- try {
233
- agg.type = parseTypeExpression(typeAttr, ctx.bindings, "type");
234
- }
235
- catch {
236
- const fqn = resolveBlockReference(typeAttr, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
237
- agg.type = { kind: "named", fqn };
238
- }
208
+ agg.type = parseTypeExpression(typeAttr, ctx.bindings, "type", typeResolveOptions(ctx));
239
209
  agg.cardinality = inferCardinality(agg.type) ?? "0..n";
240
210
  }
241
211
  const def = getAttribute(element, "default");
@@ -246,16 +216,16 @@ function mapMemberElement(element, kind, ctx, inAggregationsSection = false) {
246
216
  agg.composition = mapCompositionTemplate(element, name, ctx);
247
217
  }
248
218
  mapMemberGroups(element, agg, ctx);
249
- return agg;
219
+ return finishMember(element, agg, ctx);
250
220
  }
251
221
  if (kind === "association") {
252
222
  const typeAttr = getAttribute(element, "type") ?? "";
253
- return {
223
+ return finishMember(element, {
254
224
  ...base,
255
225
  kind: "association",
256
- type: parseTypeExpression(typeAttr, ctx.bindings, "block"),
226
+ type: parseTypeExpression(typeAttr, ctx.bindings, "block", typeResolveOptions(ctx)),
257
227
  cardinality: "0..n",
258
- };
228
+ }, ctx);
259
229
  }
260
230
  const capTypeAttr = getAttribute(element, "type") ?? "";
261
231
  const cap = {
@@ -266,16 +236,44 @@ function mapMemberElement(element, kind, ctx, inAggregationsSection = false) {
266
236
  const inputType = getAttribute(element, "inputType");
267
237
  const outputType = getAttribute(element, "outputType");
268
238
  if (inputType) {
269
- cap.inputType = parseTypeExpression(inputType, ctx.bindings, "type");
239
+ cap.inputType = parseTypeExpression(inputType, ctx.bindings, "type", typeResolveOptions(ctx));
240
+ const inputTypeSource = attributeValueLoc(ctx.filePath, ctx.source, element, "inputType", inputType);
241
+ if (inputTypeSource) {
242
+ cap.inputTypeSource = inputTypeSource;
243
+ }
270
244
  }
271
245
  if (outputType) {
272
- cap.outputType = parseTypeExpression(outputType, ctx.bindings, "type");
246
+ cap.outputType = parseTypeExpression(outputType, ctx.bindings, "type", typeResolveOptions(ctx));
247
+ const outputTypeSource = attributeValueLoc(ctx.filePath, ctx.source, element, "outputType", outputType);
248
+ if (outputTypeSource) {
249
+ cap.outputTypeSource = outputTypeSource;
250
+ }
273
251
  }
274
252
  const implEl = elementChildren(element).find((c) => elementLocalName(c) === "implementation");
275
253
  if (implEl) {
276
254
  cap.implementation = mapImplementation(implEl, ctx);
277
255
  }
278
- return cap;
256
+ return finishMember(element, cap, ctx);
257
+ }
258
+ function finishMember(element, member, ctx) {
259
+ if (member.kind !== "aggregation") {
260
+ const unknown = [];
261
+ for (const child of elementChildren(element)) {
262
+ if (isMemberMetadataChild(child)) {
263
+ continue;
264
+ }
265
+ const local = elementLocalName(child);
266
+ if (local === "value" || local.endsWith(":value")) {
267
+ continue;
268
+ }
269
+ reportUnknownElement(child, ctx);
270
+ unknown.push(toUnknownXmlNode(child, ctx));
271
+ }
272
+ if (unknown.length > 0) {
273
+ member.unknownElements = unknown;
274
+ }
275
+ }
276
+ return member;
279
277
  }
280
278
  function parseMemberXmlRendering(raw, placement) {
281
279
  const kinds = raw
@@ -311,6 +309,19 @@ function mapMemberBase(element, name, visibility, namespace, ctx) {
311
309
  base[flag] = parseBooleanAttribute(v);
312
310
  }
313
311
  }
312
+ for (const child of elementChildren(element)) {
313
+ const local = elementLocalName(child);
314
+ if (local === "abstract" || local === "final") {
315
+ const raw = getTextOrAttr(child) ?? getAttribute(child, "value");
316
+ if (raw !== undefined) {
317
+ base[local] = parseBooleanAttribute(raw);
318
+ }
319
+ }
320
+ }
321
+ const unknownMemberAttrs = collectMemberGrammarAttributes(element, ctx);
322
+ if (unknownMemberAttrs) {
323
+ base.unknownAttributes = unknownMemberAttrs;
324
+ }
314
325
  const xmlAttr = getAttribute(element, "bml:xml");
315
326
  const xmlEl = elementChildren(element).find((c) => elementLocalName(c) === "bml:xml" || elementLocalName(c) === "xml");
316
327
  if (xmlAttr !== undefined) {
@@ -360,19 +371,24 @@ function mapMemberDocumentation(element, target, ctx) {
360
371
  }
361
372
  function mapMetadataFields(element, block, ctx) {
362
373
  for (const child of elementChildren(element)) {
374
+ const extraAttrs = collectIdentityOrSectionAttributes(child, ctx);
375
+ if (extraAttrs) {
376
+ block.unknownAttributes = { ...block.unknownAttributes, ...extraAttrs };
377
+ }
363
378
  const local = elementLocalName(child);
364
379
  switch (local) {
365
380
  case "name":
366
381
  block.name = getTextOrAttr(child) ?? block.name;
367
382
  break;
368
383
  case "type":
369
- block.type = resolveBlockReference(getTextOrAttr(child) ?? "", ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
384
+ block.type = withElementLocation(ctx.filePath, ctx.source, child, () => resolveBlockReference(getTextOrAttr(child) ?? "", ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType));
370
385
  block.typeSource = elementSourceLoc(ctx.filePath, ctx.source, child);
386
+ ctx.parentBlockType = block.type;
371
387
  break;
372
388
  case "baseType": {
373
389
  const bt = getTextOrAttr(child);
374
390
  if (bt) {
375
- block.baseType = resolveBlockReference(bt, ctx.bindings, ctx.subBlockIndex, block.type);
391
+ block.baseType = withElementLocation(ctx.filePath, ctx.source, child, () => namedTypeFqn(bt, ctx, block.type));
376
392
  }
377
393
  block.baseTypeSource = elementSourceLoc(ctx.filePath, ctx.source, child);
378
394
  break;
@@ -397,7 +413,7 @@ function mapMetadataFields(element, block, ctx) {
397
413
  break;
398
414
  }
399
415
  case "definition":
400
- block.definitionFqn = resolveBlockReference(getTextOrAttr(child) ?? "", ctx.bindings, ctx.subBlockIndex, block.type);
416
+ block.definitionFqn = withElementLocation(ctx.filePath, ctx.source, child, () => resolveBlockReference(getTextOrAttr(child) ?? "", ctx.bindings, ctx.subBlockIndex, block.type));
401
417
  break;
402
418
  case "since": {
403
419
  const v = getTextOrAttr(child);
@@ -666,12 +682,29 @@ function mapContracts(element, ctx) {
666
682
  }
667
683
  return contracts;
668
684
  }
685
+ function typeResolveOptions(ctx) {
686
+ const options = {
687
+ subBlockIndex: ctx.subBlockIndex,
688
+ };
689
+ if (ctx.parentBlockType) {
690
+ options.currentTypeFqn = ctx.parentBlockType;
691
+ }
692
+ return options;
693
+ }
694
+ function namedTypeFqn(raw, ctx, fallbackParent) {
695
+ const expr = parseTypeExpression(raw, ctx.bindings, "type", typeResolveOptions(ctx));
696
+ if (expr.kind === "named") {
697
+ return expr.fqn;
698
+ }
699
+ return resolveBlockReference(raw, ctx.bindings, ctx.subBlockIndex, fallbackParent);
700
+ }
669
701
  function mapGenericTypes(element, ctx) {
670
702
  return elementChildren(element).map((c) => {
671
703
  const defaultType = getAttribute(c, "defaultType");
704
+ const raw = getAttribute(c, "baseType") ?? getTextOrAttr(c) ?? "org.blockml.bml.core.Block";
672
705
  return {
673
706
  name: elementLocalName(c),
674
- baseType: resolveBlockReference(getAttribute(c, "baseType") ?? getTextOrAttr(c) ?? "org.blockml.bml.core.Block", ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType),
707
+ baseType: withElementLocation(ctx.filePath, ctx.source, c, () => namedTypeFqn(raw, ctx, ctx.parentBlockType)),
675
708
  ...(defaultType !== undefined ? { defaultType } : {}),
676
709
  };
677
710
  });
@@ -788,8 +821,8 @@ function mapImplementation(element, ctx) {
788
821
  export function mapBlock(element, ctx) {
789
822
  return mapBlockDefinition(element, ctx);
790
823
  }
791
- export function mapDocumentBlock(element, filePath, source, bindings) {
792
- const ctx = createMapContext(filePath, source, bindings, { isRoot: true });
793
- return mapBlockDefinition(element, ctx);
824
+ export function mapDocumentBlock(element, filePath, source, bindings, diagnostics = []) {
825
+ const ctx = createMapContext(filePath, source, bindings, { isRoot: true, diagnostics });
826
+ return withElementLocation(filePath, source, element, () => mapBlockDefinition(element, ctx));
794
827
  }
795
828
  //# sourceMappingURL=map-block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-block.js","sourceRoot":"","sources":["../../src/map/map-block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-block.js","sourceRoot":"","sources":["../../src/map/map-block.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"map-composition.d.ts","sourceRoot":"","sources":["../../src/map/map-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAkB9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2C/C,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,UAAU,GACd,mBAAmB,CAiBrB;AAmCD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,GACd,iBAAiB,CA6InB;AAaD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,GACd,OAAO,CAWT;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,EACf,MAAM,CAAC,EAAE,MAAM;;;iBA4BqB,0CAA0C;;;;;;;;EAK/E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3C,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrB"}
1
+ {"version":3,"file":"map-composition.d.ts","sourceRoot":"","sources":["../../src/map/map-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAmB9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA8C/C,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,UAAU,GACd,mBAAmB,CAiBrB;AAmCD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,GACd,iBAAiB,CAyHnB;AAaD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,GACd,OAAO,CAWT;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,EACf,MAAM,CAAC,EAAE,MAAM;;;iBA4BqB,0CAA0C;;;;;;;;EAK/E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3C,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrB"}
@@ -1,9 +1,10 @@
1
1
  import { parseDirectives, parseBmlMeta } from "./directives.js";
2
2
  import { parseMemberValue } from "./member-value.js";
3
3
  import { elementChildren, elementLocalName, elementPrefix, getAttribute, isElement, xmlTriviaFromElement, } from "../util/xml.js";
4
- import { resolveBlockReference, resolvePrefix, resolveTypeName, TYPE_REFERENCE_ENTITY, } from "../util/qname.js";
4
+ import { resolveBlockReference, resolvePrefix, resolveTypeName, TYPE_REFERENCE_ENTITY, elementSourceLoc, } from "../util/qname.js";
5
5
  import { parseVisibilityFromName } from "../util/visibility.js";
6
- import { elementSourceLoc } from "../util/qname.js";
6
+ import { withElementLocation } from "../util/mapping-error.js";
7
+ import { listUnknownBmlAttributes } from "./structural.js";
7
8
  const MEMBER_SECTIONS = new Set([
8
9
  "properties",
9
10
  "aggregations",
@@ -39,13 +40,15 @@ const METADATA_ELEMENTS = new Set([
39
40
  "bml:xml",
40
41
  "groups",
41
42
  "suggestions",
43
+ "subTypes",
44
+ "languages",
42
45
  ]);
43
46
  const RESERVED = new Set([...MEMBER_SECTIONS, ...METADATA_ELEMENTS, "composition", "implementation", "value", "groups", "suggestions"]);
44
47
  export function mapCompositionTemplate(element, aggregationName, ctx) {
45
48
  const loc = elementSourceLoc(ctx.filePath, ctx.source, element);
46
49
  const compositionEl = elementChildren(element).find((c) => elementLocalName(c) === "composition");
47
50
  const target = compositionEl ?? element;
48
- const directives = parseDirectives(target, loc);
51
+ const directives = parseDirectives(target, loc, ctx);
49
52
  const children = compositionEl
50
53
  ? mapCompositionChildren(compositionEl, ctx)
51
54
  : mapCompositionChildren(element, ctx);
@@ -71,7 +74,7 @@ function mapCompositionChildren(compositionEl, ctx) {
71
74
  }
72
75
  if (local === "container" || local === "bml:container") {
73
76
  const loc = elementSourceLoc(ctx.filePath, ctx.source, child);
74
- const directives = parseDirectives(child, loc);
77
+ const directives = parseDirectives(child, loc, ctx);
75
78
  const vnode = {
76
79
  kind: "virtualContainer",
77
80
  ...(directives.length > 0 ? { directives } : {}),
@@ -89,18 +92,8 @@ export function mapBlockInstanceNode(element, ctx) {
89
92
  const local = elementLocalName(element);
90
93
  const prefix = elementPrefix(element);
91
94
  const loc = elementSourceLoc(ctx.filePath, ctx.source, element);
92
- let typeFqn;
93
- if (element.childNodes.length === 0 &&
94
- !element.hasAttributes()) {
95
- typeFqn = resolveBlockReference(prefix ? `${prefix}:${local}` : local, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
96
- }
97
- else if (element.childNodes.length === 0 &&
98
- Object.keys(element.attributes ?? {}).length <= 2) {
99
- typeFqn = resolveBlockReference(prefix ? `${prefix}:${local}` : local, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
100
- }
101
- else {
102
- typeFqn = resolveBlockReference(prefix ? `${prefix}:${local}` : local, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
103
- }
95
+ const qname = prefix ? `${prefix}:${local}` : local;
96
+ const typeFqn = withElementLocation(ctx.filePath, ctx.source, element, () => resolveBlockReference(qname, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType));
104
97
  const meta = parseBmlMeta(element, typeFqn, ctx.filePath, loc);
105
98
  const memberValues = {};
106
99
  if (element.attributes) {
@@ -156,12 +149,16 @@ export function mapBlockInstanceNode(element, ctx) {
156
149
  }
157
150
  }
158
151
  }
159
- const directives = parseDirectives(element, loc);
152
+ const directives = parseDirectives(element, loc, ctx);
160
153
  const instance = {
161
154
  typeFqn,
162
155
  memberValues: Object.fromEntries(Object.entries(memberValues).filter(([, v]) => v !== undefined)),
163
156
  source: loc,
164
157
  };
158
+ const unknownBml = listUnknownBmlAttributes(element);
159
+ if (unknownBml) {
160
+ instance.unknownAttributes = unknownBml;
161
+ }
165
162
  if (meta.id)
166
163
  instance.id = meta.id;
167
164
  if (meta.version)