@blockml/framework 0.9.9 → 0.9.11

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 (78) hide show
  1. package/blocks/org/blockml/bml/framework/FrameworkType.bml +1 -21
  2. package/blocks/org/blockml/bml/framework/Library.bml +2 -15
  3. package/blocks/org/blockml/bml/framework/README.bml +0 -17
  4. package/blocks/org/blockml/bml/framework/capability/BootstrapFullProjectRegistry.bml +1 -20
  5. package/blocks/org/blockml/bml/framework/capability/BootstrapTypeRegistry.bml +1 -20
  6. package/blocks/org/blockml/bml/framework/capability/CollectBaseTypeChain.bml +1 -21
  7. package/blocks/org/blockml/bml/framework/capability/DefaultBootstrapPaths.bml +1 -21
  8. package/blocks/org/blockml/bml/framework/capability/EvaluateCapability.bml +1 -21
  9. package/blocks/org/blockml/bml/framework/capability/EvaluateExpression.bml +1 -20
  10. package/blocks/org/blockml/bml/framework/capability/EvaluateInterpolatedText.bml +1 -21
  11. package/blocks/org/blockml/bml/framework/capability/EvaluateParseValue.bml +1 -21
  12. package/blocks/org/blockml/bml/framework/capability/FindLocalMember.bml +1 -20
  13. package/blocks/org/blockml/bml/framework/capability/ForkBom.bml +1 -20
  14. package/blocks/org/blockml/bml/framework/capability/GetExportedFqns.bml +1 -20
  15. package/blocks/org/blockml/bml/framework/capability/GetPropertyNumericValue.bml +1 -20
  16. package/blocks/org/blockml/bml/framework/capability/IsLiteralValue.bml +1 -20
  17. package/blocks/org/blockml/bml/framework/capability/MemberIdentityKey.bml +1 -20
  18. package/blocks/org/blockml/bml/framework/capability/ParseExpression.bml +1 -19
  19. package/blocks/org/blockml/bml/framework/capability/ParseInterpolatedText.bml +1 -19
  20. package/blocks/org/blockml/bml/framework/capability/PeekLibraryTypeFqn.bml +1 -21
  21. package/blocks/org/blockml/bml/framework/capability/ProjectLibraryPackageDirs.bml +1 -21
  22. package/blocks/org/blockml/bml/framework/capability/ProjectLibraryPackageRoots.bml +1 -21
  23. package/blocks/org/blockml/bml/framework/capability/ProjectSourceRoots.bml +1 -21
  24. package/blocks/org/blockml/bml/framework/capability/RegistryFilesUnderRoots.bml +1 -21
  25. package/blocks/org/blockml/bml/framework/capability/ResolveContracts.bml +1 -20
  26. package/blocks/org/blockml/bml/framework/capability/ResolveEffectiveMembers.bml +1 -20
  27. package/blocks/org/blockml/bml/framework/capability/ResolveLibrarySeeds.bml +1 -21
  28. package/blocks/org/blockml/bml/framework/capability/RootFqnByFilePath.bml +1 -21
  29. package/blocks/org/blockml/bml/framework/capability/RootFqns.bml +1 -21
  30. package/blocks/org/blockml/bml/framework/capability/ScanPackages.bml +1 -21
  31. package/blocks/org/blockml/bml/framework/capability/ScanTypes.bml +1 -21
  32. package/blocks/org/blockml/bml/framework/capability/TypeRegistry.bml +1 -20
  33. package/blocks/org/blockml/bml/framework/capability/ValidateConstraints.bml +1 -19
  34. package/blocks/org/blockml/bml/framework/capability/ValidateEmbeddedBlocks.bml +1 -20
  35. package/blocks/org/blockml/bml/framework/capability/ValidateGenerics.bml +1 -20
  36. package/blocks/org/blockml/bml/framework/capability/ValidateInstances.bml +4 -21
  37. package/blocks/org/blockml/bml/framework/capability/ValidatePresets.bml +1 -20
  38. package/blocks/org/blockml/bml/framework/capability/ValidateReadOnly.bml +1 -20
  39. package/blocks/org/blockml/bml/framework/capability/ValidateTypes.bml +13 -23
  40. package/blocks/org/blockml/bml/framework/capability/ValidateVersions.bml +1 -19
  41. package/blocks/org/blockml/bml/framework/capability/ValidateVisibility.bml +1 -20
  42. package/blocks/org/blockml/bml/framework/config/FrameworkDiagnosticCodes.bml +1 -21
  43. package/blocks/org/blockml/bml/framework/documentation/ArchitectureOverview.bml +1 -22
  44. package/blocks/org/blockml/bml/framework/documentation/ConstraintValidation.bml +1 -22
  45. package/blocks/org/blockml/bml/framework/documentation/Diagnostics.bml +7 -26
  46. package/blocks/org/blockml/bml/framework/documentation/EffectiveMembers.bml +1 -22
  47. package/blocks/org/blockml/bml/framework/documentation/ExpressionParsing.bml +1 -22
  48. package/blocks/org/blockml/bml/framework/documentation/Introduction.bml +1 -22
  49. package/blocks/org/blockml/bml/framework/documentation/LayerSeparation.bml +1 -22
  50. package/blocks/org/blockml/bml/framework/documentation/PackageOwnership.bml +1 -22
  51. package/blocks/org/blockml/bml/framework/documentation/PublicApi.bml +1 -22
  52. package/blocks/org/blockml/bml/framework/documentation/ScopeExclusions.bml +1 -23
  53. package/blocks/org/blockml/bml/framework/documentation/TypeRegistryBootstrap.bml +1 -22
  54. package/blocks/org/blockml/bml/framework/expression/ArrayExpressionNode.bml +1 -22
  55. package/blocks/org/blockml/bml/framework/expression/BinaryExpressionNode.bml +1 -22
  56. package/blocks/org/blockml/bml/framework/expression/CallExpressionNode.bml +1 -22
  57. package/blocks/org/blockml/bml/framework/expression/ExpressionNode.bml +1 -22
  58. package/blocks/org/blockml/bml/framework/expression/InterpolatedStringNode.bml +1 -22
  59. package/blocks/org/blockml/bml/framework/expression/LiteralExpressionNode.bml +1 -22
  60. package/blocks/org/blockml/bml/framework/expression/ObjectExpressionEntry.bml +1 -21
  61. package/blocks/org/blockml/bml/framework/expression/ObjectExpressionNode.bml +1 -22
  62. package/blocks/org/blockml/bml/framework/expression/ParseExpressionError.bml +1 -21
  63. package/blocks/org/blockml/bml/framework/expression/ParseExpressionOutcome.bml +1 -21
  64. package/blocks/org/blockml/bml/framework/expression/ParseExpressionResult.bml +1 -21
  65. package/blocks/org/blockml/bml/framework/expression/PropertyExpressionNode.bml +1 -22
  66. package/blocks/org/blockml/bml/framework/registry/BootstrapOptions.bml +1 -21
  67. package/blocks/org/blockml/bml/framework/registry/BootstrapResult.bml +1 -19
  68. package/blocks/org/blockml/bml/framework/registry/BootstrapTrace.bml +1 -21
  69. package/dist/validate/validate-instances.d.ts.map +1 -1
  70. package/dist/validate/validate-instances.js +5 -0
  71. package/dist/validate/validate-instances.js.map +1 -1
  72. package/dist/validate/validate-parse-values.d.ts.map +1 -1
  73. package/dist/validate/validate-parse-values.js +18 -2
  74. package/dist/validate/validate-parse-values.js.map +1 -1
  75. package/dist/validate/validate-references.d.ts.map +1 -1
  76. package/dist/validate/validate-references.js +51 -7
  77. package/dist/validate/validate-references.js.map +1 -1
  78. package/package.json +4 -4
@@ -1,29 +1,8 @@
1
1
  <!--Framework — LiteralExpressionNode
2
2
  FQN: org.blockml.bml.framework.expression.LiteralExpressionNode-->
3
3
  <fwexpression:LiteralExpressionNode xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
- xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
4
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
5
+ xmlns:type="org.blockml.bml.type">
27
6
 
28
7
  <baseType>
29
8
  fwexpression:ExpressionNode
@@ -1,29 +1,9 @@
1
1
  <!--Framework — ObjectExpressionEntry
2
2
  FQN: org.blockml.bml.framework.expression.ObjectExpressionEntry-->
3
3
  <fwexpression:ObjectExpressionEntry xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
4
  xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
5
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
6
+ xmlns:type="org.blockml.bml.type">
27
7
 
28
8
  <baseType>
29
9
  framework:FrameworkType
@@ -1,29 +1,8 @@
1
1
  <!--Framework — ObjectExpressionNode
2
2
  FQN: org.blockml.bml.framework.expression.ObjectExpressionNode-->
3
3
  <fwexpression:ObjectExpressionNode xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
- xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
4
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
5
+ xmlns:type="org.blockml.bml.type">
27
6
 
28
7
  <baseType>
29
8
  fwexpression:ExpressionNode
@@ -1,29 +1,9 @@
1
1
  <!--Framework — ParseExpressionError
2
2
  FQN: org.blockml.bml.framework.expression.ParseExpressionError-->
3
3
  <fwexpression:ParseExpressionError xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
4
  xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
5
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
6
+ xmlns:type="org.blockml.bml.type">
27
7
 
28
8
  <baseType>
29
9
  framework:FrameworkType
@@ -1,29 +1,9 @@
1
1
  <!--Framework — ParseExpressionOutcome
2
2
  FQN: org.blockml.bml.framework.expression.ParseExpressionOutcome-->
3
3
  <fwexpression:ParseExpressionOutcome xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
4
  xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
5
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
6
+ xmlns:type="org.blockml.bml.type">
27
7
 
28
8
  <baseType>
29
9
  framework:FrameworkType
@@ -1,29 +1,9 @@
1
1
  <!--Framework — ParseExpressionResult
2
2
  FQN: org.blockml.bml.framework.expression.ParseExpressionResult-->
3
3
  <fwexpression:ParseExpressionResult xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
4
  xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
5
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
6
+ xmlns:type="org.blockml.bml.type">
27
7
 
28
8
  <baseType>
29
9
  framework:FrameworkType
@@ -1,29 +1,8 @@
1
1
  <!--Framework — PropertyExpressionNode
2
2
  FQN: org.blockml.bml.framework.expression.PropertyExpressionNode-->
3
3
  <fwexpression:PropertyExpressionNode xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
- xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
4
  xmlns:fwexpression="org.blockml.bml.framework.expression"
21
- xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
5
+ xmlns:type="org.blockml.bml.type">
27
6
 
28
7
  <baseType>
29
8
  fwexpression:ExpressionNode
@@ -1,29 +1,9 @@
1
1
  <!--Framework — BootstrapOptions
2
2
  FQN: org.blockml.bml.framework.registry.BootstrapOptions-->
3
3
  <fwregistry:BootstrapOptions xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
4
  xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
- xmlns:fwexpression="org.blockml.bml.framework.expression"
21
5
  xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
6
+ xmlns:type="org.blockml.bml.type">
27
7
 
28
8
  <baseType>
29
9
  framework:FrameworkType
@@ -1,29 +1,11 @@
1
1
  <!--Framework — BootstrapResult
2
2
  FQN: org.blockml.bml.framework.registry.BootstrapResult-->
3
3
  <fwregistry:BootstrapResult xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
4
  xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
5
  xmlns:framework="org.blockml.bml.framework"
17
6
  xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
- xmlns:fwexpression="org.blockml.bml.framework.expression"
21
7
  xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
8
+ xmlns:type="org.blockml.bml.type">
27
9
 
28
10
  <baseType>
29
11
  framework:FrameworkType
@@ -1,29 +1,9 @@
1
1
  <!--Framework — BootstrapTrace
2
2
  FQN: org.blockml.bml.framework.registry.BootstrapTrace-->
3
3
  <fwregistry:BootstrapTrace xmlns="http://blockml.org/bml"
4
- xmlns:blockml="org.blockml.bml"
5
- xmlns:bom="org.blockml.bml.bom"
6
- xmlns:bomapi="org.blockml.bml.bom.api"
7
- xmlns:bomblock="org.blockml.bml.bom.block"
8
- xmlns:bomcommon="org.blockml.bml.bom.common"
9
- xmlns:bomcomp="org.blockml.bml.bom.composition"
10
- xmlns:bomdoc="org.blockml.bml.bom.document"
11
- xmlns:bommember="org.blockml.bml.bom.member"
12
- xmlns:bomtype="org.blockml.bml.bom.type"
13
- xmlns:bomvalue="org.blockml.bml.bom.value"
14
- xmlns:core="org.blockml.bml.core"
15
- xmlns:def="org.blockml.bml.definition"
16
4
  xmlns:framework="org.blockml.bml.framework"
17
- xmlns:fwcap="org.blockml.bml.framework.capability"
18
- xmlns:fwconfig="org.blockml.bml.framework.config"
19
- xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
20
- xmlns:fwexpression="org.blockml.bml.framework.expression"
21
5
  xmlns:fwregistry="org.blockml.bml.framework.registry"
22
- xmlns:parser="org.blockml.bml.compiler.parser"
23
- xmlns:type="org.blockml.bml.type"
24
- xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
25
- xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
26
- xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
6
+ xmlns:type="org.blockml.bml.type">
27
7
 
28
8
  <baseType>
29
9
  framework:FrameworkType
@@ -1 +1 @@
1
- {"version":3,"file":"validate-instances.d.ts","sourceRoot":"","sources":["../../src/validate/validate-instances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA8KjE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,GACrB,UAAU,EAAE,CAMd"}
1
+ {"version":3,"file":"validate-instances.d.ts","sourceRoot":"","sources":["../../src/validate/validate-instances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA2LjE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,GACrB,UAAU,EAAE,CAMd"}
@@ -20,6 +20,11 @@ function validateInstanceSemantics(instance, registry, file, diagnostics) {
20
20
  diagnostics.push(diag("BML_UNKNOWN_PROPERTY", `Unknown property: ${key} on ${instance.typeFqn}`, file, instance.source?.line, instance.source?.column));
21
21
  }
22
22
  }
23
+ for (const agg of instance.aggregationCompositions ?? []) {
24
+ if (!names.has(agg.aggregationName)) {
25
+ diagnostics.push(diag("BML_UNKNOWN_PROPERTY", `Unknown property: ${agg.aggregationName} on ${instance.typeFqn}`, file, agg.composition.source?.line ?? instance.source?.line, agg.composition.source?.column ?? instance.source?.column));
26
+ }
27
+ }
23
28
  }
24
29
  function validateInstanceRefs(instance, ids, file, diagnostics) {
25
30
  if (instance.basePresets && !resolveInstanceRef(instance.basePresets, ids)) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-instances.js","sourceRoot":"","sources":["../../src/validate/validate-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-instances.js","sourceRoot":"","sources":["../../src/validate/validate-instances.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-parse-values.d.ts","sourceRoot":"","sources":["../../src/validate/validate-parse-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EAMX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA6NjE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAK/F"}
1
+ {"version":3,"file":"validate-parse-values.d.ts","sourceRoot":"","sources":["../../src/validate/validate-parse-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EAMX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA8OjE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAK/F"}
@@ -27,6 +27,18 @@ function isUnion(expr) {
27
27
  }
28
28
  return false;
29
29
  }
30
+ function isAnonymousStruct(expr) {
31
+ if (!expr) {
32
+ return false;
33
+ }
34
+ if (expr.kind === "anonymousStruct") {
35
+ return true;
36
+ }
37
+ if (expr.kind === "grouped") {
38
+ return isAnonymousStruct(expr.expression);
39
+ }
40
+ return false;
41
+ }
30
42
  function hasMultiplicity(expr, fallbackFqn) {
31
43
  if (expr) {
32
44
  if (expr.kind === "named" || expr.kind === "grouped") {
@@ -56,11 +68,12 @@ function checkLiteral(val, type, typeFqn, ctx, loc) {
56
68
  if (!val || val.kind !== "literal") {
57
69
  return;
58
70
  }
59
- if (isUnion(type) || type?.kind === "anonymousStruct") {
71
+ if (isUnion(type)) {
60
72
  return;
61
73
  }
62
74
  const named = namedTypeFqn(type, typeFqn);
63
- if (!named) {
75
+ const anonymous = isAnonymousStruct(type);
76
+ if (!named && !anonymous) {
64
77
  return;
65
78
  }
66
79
  const list = hasMultiplicity(type, typeFqn);
@@ -68,6 +81,9 @@ function checkLiteral(val, type, typeFqn, ctx, loc) {
68
81
  ctx.diagnostics.push(diag("BML_INVALID_VALUE", "collection value on a non-list type", ctx.file, loc));
69
82
  return;
70
83
  }
84
+ if (anonymous || !named) {
85
+ return;
86
+ }
71
87
  const items = Array.isArray(val.value) ? val.value : [val.value];
72
88
  for (const item of items) {
73
89
  const raw = rawFromUnknown(item);
@@ -1 +1 @@
1
- {"version":3,"file":"validate-parse-values.js","sourceRoot":"","sources":["../../src/validate/validate-parse-values.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-parse-values.js","sourceRoot":"","sources":["../../src/validate/validate-parse-values.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQpE,SAAS,IAAI,CACX,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAgF;IAEhF,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI;QACvB,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;KACzB,CAAC;IACF,IAAI,GAAG,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,IAAI,GAAG,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,IAAgC;IAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAgC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAgC,EAAE,WAAoB;IAC7E,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CACf,OAAe,EACf,GAAW,EACX,GAAa,EACb,GAA+B;IAE/B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,GAA4B,EAC5B,IAAgC,EAChC,OAA2B,EAC3B,GAAa,EACb,GAA+B;IAE/B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,WAAW,CAAC,IAAI,CAClB,IAAI,CACF,mBAAmB,EACnB,qCAAqC,EACrC,GAAG,CAAC,IAAI,EACR,GAAG,CACJ,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,IAAiC,EACjC,GAAa,EACb,GAA+B;IAE/B,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,MAAwB,EAAE,GAAa;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;IAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,sEAAsE;YACtE,yEAAyE;YACzE,0EAA0E;YAC1E,gEAAgE;YAChE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAClD,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACzC,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAChD,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAuB,EAAE,GAAa;IAC1D,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GACR,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;YAC1F,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,uBAAuB,IAAI,EAAE,EAAE,CAAC;QACzD,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAwB,EAAE,GAAa;IACnE,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsB,EAAE,GAAa;IAChE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QACxC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC/C,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1C,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAClC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QAC5C,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAqB,EAAE,QAAsB;IAC/E,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC;IACpD,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACrE,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-references.d.ts","sourceRoot":"","sources":["../../src/validate/validate-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EAMV,cAAc,EAEf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA6DjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CA2BnG;AAydD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAY9F"}
1
+ {"version":3,"file":"validate-references.d.ts","sourceRoot":"","sources":["../../src/validate/validate-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EAMV,cAAc,EAEf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA6DjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CA2BnG;AA0hBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAY9F"}
@@ -105,6 +105,37 @@ function packageIsKnown(pkg, registry) {
105
105
  const prefix = `${pkg}.`;
106
106
  return registry.keys().some((fqn) => fqn.startsWith(prefix));
107
107
  }
108
+ function formatTypeExpression(expr) {
109
+ switch (expr.kind) {
110
+ case "named":
111
+ return expr.fqn;
112
+ case "union":
113
+ return expr.alternatives.map(formatTypeExpression).join(" | ");
114
+ case "grouped":
115
+ return `(${formatTypeExpression(expr.expression)})`;
116
+ default:
117
+ return namedTypeFqn(expr) ?? "unknown";
118
+ }
119
+ }
120
+ function isReferenceEntityAggregation(classified) {
121
+ return classified?.role === "reference" && classified.isEntity === true;
122
+ }
123
+ function childSatisfiesAggregationPayload(childFqn, payload, registry) {
124
+ if (payload.kind === "union") {
125
+ return payload.alternatives.some((alt) => childSatisfiesAggregationPayload(childFqn, alt, registry));
126
+ }
127
+ if (payload.kind === "grouped") {
128
+ return childSatisfiesAggregationPayload(childFqn, payload.expression, registry);
129
+ }
130
+ const named = namedTypeFqn(payload);
131
+ if (!named) {
132
+ return true;
133
+ }
134
+ if (!registry.has(childFqn) || !registry.has(named)) {
135
+ return true;
136
+ }
137
+ return satisfiesTypeBound(childFqn, named, registry);
138
+ }
108
139
  function reportUnknownType(fqn, ctx, loc, code, message) {
109
140
  if (typeIsKnown(fqn, ctx.registry)) {
110
141
  return true;
@@ -326,16 +357,17 @@ function walkInstance(instance, ctx) {
326
357
  }
327
358
  for (const agg of instance.aggregationCompositions ?? []) {
328
359
  const member = members.find((m) => m.kind === "aggregation" && m.name === agg.aggregationName);
329
- const classified = member && member.kind === "aggregation"
330
- ? classifyDeclaredType(member.type, ctx.registry)
360
+ const payloadType = member && member.kind === "aggregation" ? member.type : undefined;
361
+ const classified = payloadType
362
+ ? classifyDeclaredType(payloadType, ctx.registry)
331
363
  : undefined;
332
- walkCompositionNodes(agg.composition.children, ctx, classified);
364
+ walkCompositionNodes(agg.composition.children, ctx, classified, payloadType);
333
365
  }
334
366
  }
335
- function walkCompositionNodes(nodes, ctx, aggregationDeclared) {
367
+ function walkCompositionNodes(nodes, ctx, aggregationDeclared, payloadType) {
336
368
  for (const child of nodes) {
337
369
  if (child.kind === "blockInstance") {
338
- if (aggregationDeclared?.role === "reference" && aggregationDeclared.isEntity) {
370
+ if (isReferenceEntityAggregation(aggregationDeclared)) {
339
371
  if (aggregationDeclared.kind === "type") {
340
372
  checkTypeFqn(child.instance.typeFqn, ctx, child.instance.source ?? child.source, "BML_UNKNOWN_TYPE", "Unknown type", aggregationDeclared.boundFqn);
341
373
  }
@@ -344,10 +376,16 @@ function walkCompositionNodes(nodes, ctx, aggregationDeclared) {
344
376
  checkReferenceValue(aggregationDeclared, value, ctx, child.instance.source ?? child.source);
345
377
  }
346
378
  }
379
+ else if (payloadType) {
380
+ const childFqn = child.instance.typeFqn;
381
+ if (!childSatisfiesAggregationPayload(childFqn, payloadType, ctx.registry)) {
382
+ ctx.diagnostics.push(diag("BML_TYPE_BOUND_NOT_SATISFIED", `Type ${childFqn} does not satisfy bound ${formatTypeExpression(payloadType)}`, ctx.file, child.instance.source ?? child.source));
383
+ }
384
+ }
347
385
  walkInstance(child.instance, ctx);
348
386
  }
349
387
  else {
350
- walkCompositionNodes(child.children, ctx, aggregationDeclared);
388
+ walkCompositionNodes(child.children, ctx, aggregationDeclared, payloadType);
351
389
  }
352
390
  }
353
391
  }
@@ -395,8 +433,14 @@ function walkBlockDefinition(block, ctx) {
395
433
  for (const member of block.members) {
396
434
  checkMemberTypes(member, ctx);
397
435
  }
436
+ const effective = resolveEffectiveMembers(block, ctx.registry);
398
437
  for (const template of block.compositions) {
399
- walkCompositionNodes(template.children, ctx);
438
+ const member = effective.find((candidate) => candidate.kind === "aggregation" && candidate.name === template.aggregationName);
439
+ const payloadType = member && member.kind === "aggregation" ? member.type : undefined;
440
+ const classified = payloadType
441
+ ? classifyDeclaredType(payloadType, ctx.registry)
442
+ : undefined;
443
+ walkCompositionNodes(template.children, ctx, classified, payloadType);
400
444
  }
401
445
  for (const sub of block.subBlocks) {
402
446
  walkBlockDefinition(sub, ctx);