@blockml/bom 0.9.0 → 0.9.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.
- package/blocks/org/blockml/bml/bom/Library.bml +3 -1
- package/blocks/org/blockml/bml/bom/api/ParseOptions.bml +7 -0
- package/blocks/org/blockml/bml/bom/block/BlockDefinition.bml +3 -0
- package/blocks/org/blockml/bml/bom/composition/BlockInstance.bml +3 -0
- package/blocks/org/blockml/bml/bom/composition/CompositionTemplate.bml +3 -0
- package/blocks/org/blockml/bml/bom/composition/GenericsBinding.bml +51 -0
- package/blocks/org/blockml/bml/bom/composition/VirtualContainerNode.bml +3 -0
- package/blocks/org/blockml/bml/bom/documentation/AuthoredSurfaceTable.bml +2 -0
- package/blocks/org/blockml/bml/bom/documentation/CalibratorExample.bml +1 -1
- package/blocks/org/blockml/bml/bom/documentation/CompositionDirectives.bml +5 -1
- package/blocks/org/blockml/bml/bom/documentation/MemberValueSemantics.bml +1 -0
- package/blocks/org/blockml/bml/bom/documentation/PackageOwnership.bml +3 -2
- package/blocks/org/blockml/bml/bom/documentation/PublicApi.bml +2 -1
- package/blocks/org/blockml/bml/bom/member/MemberDefinitionBase.bml +3 -0
- package/blocks/org/blockml/bml/bom/member/PropertyValueEntry.bml +12 -1
- package/blocks/org/blockml/bml/bom/value/InterpolatedTextValue.bml +49 -0
- package/blocks/org/blockml/bml/bom/value/MemberValue.bml +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/api.d.ts +16 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/block-definition.d.ts +3 -1
- package/dist/types/block-definition.d.ts.map +1 -1
- package/dist/types/composition.d.ts +15 -0
- package/dist/types/composition.d.ts.map +1 -1
- package/dist/types/member-definition.d.ts +3 -1
- package/dist/types/member-definition.d.ts.map +1 -1
- package/dist/types/values.d.ts +9 -1
- package/dist/types/values.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
Membership is defined exclusively by this blocks list.
|
|
41
41
|
</documentation>
|
|
42
42
|
|
|
43
|
-
<version>0.9.
|
|
43
|
+
<version>0.9.2</version>
|
|
44
44
|
|
|
45
45
|
<language>
|
|
46
46
|
<English />
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
<bomvalue:MemberValue />
|
|
85
85
|
<bomvalue:LiteralValue />
|
|
86
86
|
<bomvalue:ExpressionValue />
|
|
87
|
+
<bomvalue:InterpolatedTextValue />
|
|
87
88
|
<bomvalue:AddressValue />
|
|
88
89
|
<bomtype:Multiplicity />
|
|
89
90
|
<bomtype:InstanceConfiguration />
|
|
@@ -116,6 +117,7 @@
|
|
|
116
117
|
<bommember:ImplementationBlock />
|
|
117
118
|
<bommember:CapabilityDefinition />
|
|
118
119
|
<bomcomp:WithBinding />
|
|
120
|
+
<bomcomp:GenericsBinding />
|
|
119
121
|
<bomcomp:DirectiveAttribute />
|
|
120
122
|
<bomcomp:EachDirective />
|
|
121
123
|
<bomcomp:IfDirective />
|
|
@@ -37,6 +37,13 @@
|
|
|
37
37
|
<continueOnError type="type:Boolean">
|
|
38
38
|
<documentation>Default: true. (optional)</documentation>
|
|
39
39
|
</continueOnError>
|
|
40
|
+
<parseValue type="type:Text">
|
|
41
|
+
<documentation>
|
|
42
|
+
Optional host hook (typeFqn, raw) → { ok, value } | { ok, skipped } | { ok: false, message }.
|
|
43
|
+
Injected after TypeRegistry bootstrap (e.g. compileBmlToBom). Absent during library bootstrap.
|
|
44
|
+
(optional)
|
|
45
|
+
</documentation>
|
|
46
|
+
</parseValue>
|
|
40
47
|
</properties>
|
|
41
48
|
|
|
42
49
|
</block>
|
|
@@ -95,6 +95,9 @@
|
|
|
95
95
|
<xmlRendering type="bomcommon:XmlRenderingBlock">
|
|
96
96
|
<documentation>xmlRendering (optional). TS type: bomcommon:XmlRenderingBlock.</documentation>
|
|
97
97
|
</xmlRendering>
|
|
98
|
+
<generics type="bomcomp:GenericsBinding">
|
|
99
|
+
<documentation>Misplaced bml:generics on a Block definition. (optional)</documentation>
|
|
100
|
+
</generics>
|
|
98
101
|
<visibility type="type:Text">
|
|
99
102
|
<documentation>"private" | "protected" | "public". Sub-Blocks only. (optional)</documentation>
|
|
100
103
|
</visibility>
|
|
@@ -46,6 +46,9 @@
|
|
|
46
46
|
<scope type="type:Text">
|
|
47
47
|
<documentation>"local" | "context". (optional)</documentation>
|
|
48
48
|
</scope>
|
|
49
|
+
<generics type="bomcomp:GenericsBinding">
|
|
50
|
+
<documentation>Authored bml:generics on this instance. Binds genericTypes; overrides defaultType. (optional)</documentation>
|
|
51
|
+
</generics>
|
|
49
52
|
<basePresets type="type:Text">
|
|
50
53
|
<documentation>basePresets (optional). TS type: type:Text.</documentation>
|
|
51
54
|
</basePresets>
|
|
@@ -37,6 +37,9 @@
|
|
|
37
37
|
<directives type="bomcomp:DirectiveAttribute[]">
|
|
38
38
|
<documentation>directives (optional). TS type: bomcomp:DirectiveAttribute[].</documentation>
|
|
39
39
|
</directives>
|
|
40
|
+
<generics type="bomcomp:GenericsBinding">
|
|
41
|
+
<documentation>Misplaced bml:generics on a composition wrapper. (optional)</documentation>
|
|
42
|
+
</generics>
|
|
40
43
|
<children type="bomcomp:CompositionNode[]">
|
|
41
44
|
<documentation>children (required). TS type: bomcomp:CompositionNode[].</documentation>
|
|
42
45
|
</children>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
BOM Urmodell — GenericsBinding
|
|
3
|
+
FQN: org.blockml.bml.bom.composition.GenericsBinding
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
14
|
+
xmlns:bomcap="org.blockml.bml.bom.capability"
|
|
15
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
16
|
+
xmlns:bomcomp="org.blockml.bml.bom.composition"
|
|
17
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
18
|
+
xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
|
|
19
|
+
xmlns:bommember="org.blockml.bml.bom.member"
|
|
20
|
+
xmlns:bomtype="org.blockml.bml.bom.type"
|
|
21
|
+
xmlns:bomvalue="org.blockml.bml.bom.value"
|
|
22
|
+
xmlns:core="org.blockml.bml.core"
|
|
23
|
+
xmlns:def="org.blockml.bml.definition"
|
|
24
|
+
xmlns:type="org.blockml.bml.type">
|
|
25
|
+
|
|
26
|
+
<name>GenericsBinding</name>
|
|
27
|
+
<type>bomcomp:GenericsBinding</type>
|
|
28
|
+
<baseType>bom:UrmodellType</baseType>
|
|
29
|
+
<is>Authored bml:generics binding on an instance or illegal host</is>
|
|
30
|
+
|
|
31
|
+
<documentation>Lossless bml:generics value. arguments is present only when the
|
|
32
|
+
parenthesized TypeExpression list parsed successfully. Legal host is
|
|
33
|
+
BlockInstance; other hosts keep the binding so validate() can emit
|
|
34
|
+
BML_GENERICS_DIRECTIVE_NOT_ALLOWED.</documentation>
|
|
35
|
+
|
|
36
|
+
<properties>
|
|
37
|
+
<raw type="type:Text">
|
|
38
|
+
<documentation>raw (required). TS type: type:Text.</documentation>
|
|
39
|
+
</raw>
|
|
40
|
+
<arguments type="bomtype:TypeExpression[]">
|
|
41
|
+
<documentation>arguments (optional). TS type: bomtype:TypeExpression[].</documentation>
|
|
42
|
+
</arguments>
|
|
43
|
+
<authoredPlacement type="type:Text">
|
|
44
|
+
<documentation>"attribute" | "element". (required)</documentation>
|
|
45
|
+
</authoredPlacement>
|
|
46
|
+
<source type="bomcommon:SourceLocation">
|
|
47
|
+
<documentation>source (optional). TS type: bomcommon:SourceLocation.</documentation>
|
|
48
|
+
</source>
|
|
49
|
+
</properties>
|
|
50
|
+
|
|
51
|
+
</block>
|
|
@@ -38,6 +38,9 @@
|
|
|
38
38
|
<directives type="bomcomp:DirectiveAttribute[]">
|
|
39
39
|
<documentation>directives (optional). TS type: bomcomp:DirectiveAttribute[].</documentation>
|
|
40
40
|
</directives>
|
|
41
|
+
<generics type="bomcomp:GenericsBinding">
|
|
42
|
+
<documentation>Misplaced bml:generics on bml:container. (optional)</documentation>
|
|
43
|
+
</generics>
|
|
41
44
|
<children type="bomcomp:CompositionNode[]">
|
|
42
45
|
<documentation>children (required). TS type: bomcomp:CompositionNode[].</documentation>
|
|
43
46
|
</children>
|
|
@@ -36,10 +36,12 @@
|
|
|
36
36
|
- xmlns / xmlns:prefix → SourceInfo.namespaceBindings 1:1 authored → Serializer QName emit (B21)
|
|
37
37
|
- xsi:schemaLocation / xsi:noNamespaceSchemaLocation → SourceInfo (B25) → re-emit on root
|
|
38
38
|
- bml:xml → xmlRendering block+member — NOT directives[] → Serializer, FatBlock, XSD
|
|
39
|
+
- bml:generics → BlockInstance.generics (and illegal-host copies) — NOT directives[] → Validator binds genericTypes (open params required; defaultType may be overridden)
|
|
39
40
|
- element|attribute dual placement → authoredPlacement (D9) → MUST roundtrip authored form
|
|
40
41
|
- Text vs CDATA → authoredCharacterDataForm (D8) → emit CDATA when needed or authored
|
|
41
42
|
- Literal syntax [5,5,6] vs {x:5,…} → LiteralValue authored form → Renderer serializes
|
|
42
43
|
- ${ expr } → ExpressionValue { raw } — AST via parseExpression(), not evaluated
|
|
44
|
+
- Hello ${ expr } → InterpolatedTextValue { raw } — AST via parseInterpolatedText()
|
|
43
45
|
- aggregations declaration → AggregationDefinition declared only → TypeRegistry metadata
|
|
44
46
|
- composition children → CompositionNode tree → Renderer assembly patterns
|
|
45
47
|
- baseType FQN → string reference → TypeRegistry effective members
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
Inherited native properties not in members[] — validator uses resolveEffectiveMembers().</documentation>
|
|
48
48
|
|
|
49
49
|
<references>
|
|
50
|
-
<see type="bomdoc:BomDocument" relation="
|
|
50
|
+
<see type="bomdoc:BomDocument" relation="SeeAlso" />
|
|
51
51
|
</references>
|
|
52
52
|
|
|
53
53
|
</block>
|
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
|
|
32
32
|
<documentation>Directives follow Thymeleaf model — attributes on modified element, stored unexpanded.
|
|
33
33
|
|
|
34
|
-
bml:id, bml:version, bml:bean, bml:scope → BlockInstance fields (NOT directives[]).
|
|
34
|
+
bml:id, bml:version, bml:bean, bml:scope, bml:generics → BlockInstance fields (NOT directives[]).
|
|
35
|
+
bml:generics binds genericTypes (attribute or child element; parentheses required).
|
|
36
|
+
Open parameters require a binding; parameters with defaultType may omit it.
|
|
37
|
+
Authored arguments override defaultType.
|
|
38
|
+
Misplaced bml:generics is still stored so validate() can emit BML_GENERICS_DIRECTIVE_NOT_ALLOWED.
|
|
35
39
|
bml:with → composition, aggregation, bml:container, block instances.
|
|
36
40
|
bml:each, bml:if, bml:unless → bml:container, block instances.
|
|
37
41
|
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
LiteralValue: kind literal, opaque value, typeFqn, optional authoredPlacement (D9).
|
|
39
39
|
ExpressionValue: kind expression, raw ${} text only in BOM; AST via parseExpression().
|
|
40
|
+
InterpolatedTextValue: kind interpolated, full authored text with ${} holes; AST via parseInterpolatedText().
|
|
40
41
|
AddressValue: parsed org.blockml.bml.type.Address shape.
|
|
41
42
|
|
|
42
43
|
Preset/config merge copies into render-time view — never writes references back to BomDocument.</documentation>
|
|
@@ -30,8 +30,9 @@
|
|
|
30
30
|
<is>Toolchain package responsibilities for the Urmodell</is>
|
|
31
31
|
|
|
32
32
|
<documentation>@blockml/bom — all Urmodell interfaces, ParseResult/SerializeResult/ValidateResult (B26 + Stage 2),
|
|
33
|
-
ValidateOptions, TypeRegistryReader, Diagnostic (compiler result type), bomEquals/stripProvenance (B20)
|
|
34
|
-
|
|
33
|
+
ValidateOptions, TypeRegistryReader, Diagnostic (compiler result type), bomEquals/stripProvenance (B20).
|
|
34
|
+
|
|
35
|
+
@blockml/builder — BomBuilder writable session; seal() → BomDocument.
|
|
35
36
|
|
|
36
37
|
@blockml/framework — TypeRegistry, forkBom, resolveEffectiveMembers, validateTypes, parseExpression.
|
|
37
38
|
Utilities never mutate Urmodell.
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
|
|
36
36
|
ValidateResult: optional pragmaticModel (forked BomDocument), diagnostics[], success.
|
|
37
37
|
|
|
38
|
-
ParseOptions: filePath (default "<memory>"), continueOnError (default true)
|
|
38
|
+
ParseOptions: filePath (default "<memory>"), continueOnError (default true),
|
|
39
|
+
optional parseValue host hook (injected after TypeRegistry bootstrap).
|
|
39
40
|
|
|
40
41
|
SerializeOptions: indent (default 2; 0=compact B13), xmlDeclaration (default false B17/B24).
|
|
41
42
|
|
|
@@ -76,6 +76,9 @@
|
|
|
76
76
|
<xmlRendering type="bomcommon:XmlRenderingMember">
|
|
77
77
|
<documentation>xmlRendering (optional). TS type: bomcommon:XmlRenderingMember.</documentation>
|
|
78
78
|
</xmlRendering>
|
|
79
|
+
<generics type="bomcomp:GenericsBinding">
|
|
80
|
+
<documentation>Misplaced bml:generics on a member declaration. (optional)</documentation>
|
|
81
|
+
</generics>
|
|
79
82
|
<constraints type="bomcomp:BlockInstance[]">
|
|
80
83
|
<documentation>constraints (optional). TS type: bomcomp:BlockInstance[].</documentation>
|
|
81
84
|
</constraints>
|
|
@@ -28,7 +28,18 @@
|
|
|
28
28
|
<baseType>bom:UrmodellType</baseType>
|
|
29
29
|
<is>Namespaced property value entry</is>
|
|
30
30
|
|
|
31
|
-
<documentation>
|
|
31
|
+
<documentation>
|
|
32
|
+
Namespaced property value entry.
|
|
33
|
+
|
|
34
|
+
- `namespace` `""` — canonical BML value (same lexical type as the property)
|
|
35
|
+
- non-empty `namespace` — resolved Annotation FQN (for example `scad:value`);
|
|
36
|
+
a target-language facet, not a second BML value
|
|
37
|
+
- `PrimitiveType.parseValue` applies only to the canonical entry
|
|
38
|
+
|
|
39
|
+
TODO: a prefixed value should carry its own type (for example `scad:type` for
|
|
40
|
+
`scad:value`) so each facet can be validated in its target language. Today
|
|
41
|
+
prefixed values are not validated.
|
|
42
|
+
</documentation>
|
|
32
43
|
|
|
33
44
|
<properties>
|
|
34
45
|
<namespace type="type:Text">
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
BOM Urmodell — InterpolatedTextValue
|
|
3
|
+
FQN: org.blockml.bml.bom.value.InterpolatedTextValue
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
14
|
+
xmlns:bomcap="org.blockml.bml.bom.capability"
|
|
15
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
16
|
+
xmlns:bomcomp="org.blockml.bml.bom.composition"
|
|
17
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
18
|
+
xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
|
|
19
|
+
xmlns:bommember="org.blockml.bml.bom.member"
|
|
20
|
+
xmlns:bomtype="org.blockml.bml.bom.type"
|
|
21
|
+
xmlns:bomvalue="org.blockml.bml.bom.value"
|
|
22
|
+
xmlns:core="org.blockml.bml.core"
|
|
23
|
+
xmlns:def="org.blockml.bml.definition"
|
|
24
|
+
xmlns:type="org.blockml.bml.type">
|
|
25
|
+
|
|
26
|
+
<name>InterpolatedTextValue</name>
|
|
27
|
+
<type>bomvalue:InterpolatedTextValue</type>
|
|
28
|
+
<baseType>bomvalue:MemberValue</baseType>
|
|
29
|
+
<is>Authored interpolated text member value</is>
|
|
30
|
+
|
|
31
|
+
<documentation>raw is the full authored text including ${} holes. AST via parseInterpolatedText() — not stored.</documentation>
|
|
32
|
+
|
|
33
|
+
<properties>
|
|
34
|
+
<kind type="type:Text">
|
|
35
|
+
<documentation>kind (required). TS type: type:Text.</documentation>
|
|
36
|
+
<value>interpolated</value>
|
|
37
|
+
</kind>
|
|
38
|
+
<raw type="type:Text">
|
|
39
|
+
<documentation>Full authored text including ${} holes (required). TS type: type:Text.</documentation>
|
|
40
|
+
</raw>
|
|
41
|
+
<authoredPlacement type="type:Text">
|
|
42
|
+
<documentation>authoredPlacement (optional). TS type: type:Text.</documentation>
|
|
43
|
+
</authoredPlacement>
|
|
44
|
+
<source type="bomcommon:SourceLocation">
|
|
45
|
+
<documentation>source (optional). TS type: bomcommon:SourceLocation.</documentation>
|
|
46
|
+
</source>
|
|
47
|
+
</properties>
|
|
48
|
+
|
|
49
|
+
</block>
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<baseType>bom:UrmodellType</baseType>
|
|
29
29
|
<is>Abstract union of authored member values</is>
|
|
30
30
|
|
|
31
|
-
<documentation>Discriminated union: LiteralValue | ExpressionValue | AddressValue.</documentation>
|
|
31
|
+
<documentation>Discriminated union: LiteralValue | ExpressionValue | InterpolatedTextValue | AddressValue.</documentation>
|
|
32
32
|
|
|
33
33
|
<abstract>true</abstract>
|
|
34
34
|
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export type { BomDocument } from "./types/document.js";
|
|
|
3
3
|
export type { TypeReferenceEntityInstance, GenericType, BlockDefinition, KeywordEntry, DocumentationProseEntry, AliasEntry, ChangelogEntry, DocumentationExample, DocumentationReference, } from "./types/block-definition.js";
|
|
4
4
|
export type { TypeExpression, TypeDescriptor, Multiplicity, InstanceConfiguration, NamedTypeReference, UnionTypeExpression, GroupedTypeExpression, GenericParameterReference, SelfTypeReference, AnonymousStructType, StructField, } from "./types/type-expression.js";
|
|
5
5
|
export type { MemberDefinition, ConstrainableDefinition, MemberDefinitionBase, PropertyDefinition, PropertyValueEntry, AggregationDefinition, AssociationDefinition, CapabilityDefinition, ImplementationBlock, EmbeddedExpression, } from "./types/member-definition.js";
|
|
6
|
-
export type { CompositionTemplate, InstanceAggregationComposition, CompositionNode, BlockInstanceNode, VirtualContainerNode, BlockInstance, DirectiveAttribute, EachDirective, IfDirective, UnlessDirective, WithDirective, WithBinding, } from "./types/composition.js";
|
|
7
|
-
export type { MemberValue, LiteralValue, ExpressionValue, AddressValue, Address, } from "./types/values.js";
|
|
8
|
-
export type { ParseResult, SerializeResult, ParseOptions, SerializeOptions, ValidateResult, ValidateOptions, TypeRegistryReader, } from "./types/api.js";
|
|
6
|
+
export type { CompositionTemplate, InstanceAggregationComposition, CompositionNode, BlockInstanceNode, VirtualContainerNode, BlockInstance, GenericsBinding, DirectiveAttribute, EachDirective, IfDirective, UnlessDirective, WithDirective, WithBinding, } from "./types/composition.js";
|
|
7
|
+
export type { MemberValue, LiteralValue, ExpressionValue, InterpolatedTextValue, AddressValue, Address, } from "./types/values.js";
|
|
8
|
+
export type { ParseResult, SerializeResult, ParseOptions, ParseValueResult, ParseValueHook, SerializeOptions, ValidateResult, ValidateOptions, TypeRegistryReader, } from "./types/api.js";
|
|
9
9
|
export { bomEquals, stripProvenance } from "./equals.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,YAAY,EACV,2BAA2B,EAC3B,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,mBAAmB,EACnB,8BAA8B,EAC9B,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,YAAY,EACV,2BAA2B,EAC3B,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,mBAAmB,EACnB,8BAA8B,EAC9B,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8FA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/types/api.d.ts
CHANGED
|
@@ -13,11 +13,27 @@ export interface SerializeResult {
|
|
|
13
13
|
diagnostics: Diagnostic[];
|
|
14
14
|
success: boolean;
|
|
15
15
|
}
|
|
16
|
+
export type ParseValueResult = {
|
|
17
|
+
ok: true;
|
|
18
|
+
value: unknown;
|
|
19
|
+
} | {
|
|
20
|
+
ok: true;
|
|
21
|
+
skipped: true;
|
|
22
|
+
} | {
|
|
23
|
+
ok: false;
|
|
24
|
+
message: string;
|
|
25
|
+
};
|
|
26
|
+
export type ParseValueHook = (typeFqn: string, raw: string) => ParseValueResult;
|
|
16
27
|
export interface ParseOptions {
|
|
17
28
|
/** default: "<memory>" — written to BomDocument.source.filePath */
|
|
18
29
|
filePath?: string;
|
|
19
30
|
/** default true — keep mapping after errors; attach document when possible */
|
|
20
31
|
continueOnError?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Optional host hook for PrimitiveType.parseValue.
|
|
34
|
+
* Injected after TypeRegistry bootstrap; omitted during library bootstrap.
|
|
35
|
+
*/
|
|
36
|
+
parseValue?: ParseValueHook;
|
|
21
37
|
}
|
|
22
38
|
export interface SerializeOptions {
|
|
23
39
|
/** default 2 — pretty-print spaces (B13); 0 = compact */
|
package/dist/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAC3B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,gBAAgB,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qGAAqG;AACrG,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CharacterDataForm, EmptyElementForm, MetadataElementTrivia, MemberSectionName, SourceLocation, UnknownXmlNode, XmlRenderingBlock, XmlTrivia } from "./common.js";
|
|
2
|
-
import type { BlockInstance } from "./composition.js";
|
|
2
|
+
import type { BlockInstance, GenericsBinding } from "./composition.js";
|
|
3
3
|
import type { MemberDefinition } from "./member-definition.js";
|
|
4
4
|
import type { CompositionTemplate } from "./composition.js";
|
|
5
5
|
import type { TypeExpression } from "./type-expression.js";
|
|
@@ -70,6 +70,8 @@ export interface BlockDefinition {
|
|
|
70
70
|
final?: boolean;
|
|
71
71
|
/** Authored block-level `<bml:xml>…</bml:xml>`. */
|
|
72
72
|
xmlRendering?: XmlRenderingBlock;
|
|
73
|
+
/** Misplaced `bml:generics` on a Block definition (or member section). */
|
|
74
|
+
generics?: GenericsBinding;
|
|
73
75
|
/** BlockML access visibility — Sub-Blocks only. */
|
|
74
76
|
visibility?: "private" | "protected" | "public";
|
|
75
77
|
/** Contract TypeReferenceEntity instances merged into this Block. Root block only. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-definition.d.ts","sourceRoot":"","sources":["../../src/types/block-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-definition.d.ts","sourceRoot":"","sources":["../../src/types/block-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import type { MemberValue, ExpressionValue } from "./values.js";
|
|
2
2
|
import type { SourceLocation, XmlTrivia } from "./common.js";
|
|
3
|
+
import type { TypeExpression } from "./type-expression.js";
|
|
4
|
+
/** Authored `bml:generics` — legal on BlockInstance, preserved on illegal hosts for validate(). */
|
|
5
|
+
export interface GenericsBinding {
|
|
6
|
+
raw: string;
|
|
7
|
+
/** Present only when the parenthesized TypeExpression list parsed successfully. */
|
|
8
|
+
arguments?: TypeExpression[];
|
|
9
|
+
authoredPlacement: "attribute" | "element";
|
|
10
|
+
source?: SourceLocation;
|
|
11
|
+
}
|
|
3
12
|
/** Target aggregation name — e.g. "_parts", "blocks", "_presets". */
|
|
4
13
|
export interface CompositionTemplate {
|
|
5
14
|
aggregationName: string;
|
|
6
15
|
directives?: DirectiveAttribute[];
|
|
16
|
+
/** Misplaced `bml:generics` on a composition wrapper. */
|
|
17
|
+
generics?: GenericsBinding;
|
|
7
18
|
children: CompositionNode[];
|
|
8
19
|
source?: SourceLocation;
|
|
9
20
|
}
|
|
@@ -24,6 +35,8 @@ export interface VirtualContainerNode {
|
|
|
24
35
|
kind: "virtualContainer";
|
|
25
36
|
/** bml:each, bml:if, bml:unless, bml:with on `<bml:container>`. */
|
|
26
37
|
directives?: DirectiveAttribute[];
|
|
38
|
+
/** Misplaced `bml:generics` on `<bml:container>`. */
|
|
39
|
+
generics?: GenericsBinding;
|
|
27
40
|
children: CompositionNode[];
|
|
28
41
|
source?: SourceLocation;
|
|
29
42
|
}
|
|
@@ -39,6 +52,8 @@ export interface BlockInstance {
|
|
|
39
52
|
bean?: MemberValue;
|
|
40
53
|
/** From bml:scope — bean visibility: "local" (default) or "context". */
|
|
41
54
|
scope?: "local" | "context";
|
|
55
|
+
/** From bml:generics — binds genericTypes on this instance (overrides defaultType). */
|
|
56
|
+
generics?: GenericsBinding;
|
|
42
57
|
/** Preset reference: {PresetsDocumentFQN}::{preset-id}. */
|
|
43
58
|
basePresets?: string;
|
|
44
59
|
renderGroup?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/types/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/types/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CharacterDataForm, SourceLocation, UnknownXmlNode, XmlRenderingMember, XmlTrivia } from "./common.js";
|
|
2
|
-
import type { BlockInstance } from "./composition.js";
|
|
2
|
+
import type { BlockInstance, GenericsBinding } from "./composition.js";
|
|
3
3
|
import type { ChangelogEntry, DocumentationExample, DocumentationProseEntry, DocumentationReference, KeywordEntry, TypeReferenceEntityInstance } from "./block-definition.js";
|
|
4
4
|
import type { TypeDescriptor, TypeExpression } from "./type-expression.js";
|
|
5
5
|
import type { MemberValue } from "./values.js";
|
|
@@ -26,6 +26,8 @@ export interface MemberDefinitionBase {
|
|
|
26
26
|
final?: boolean;
|
|
27
27
|
override?: boolean;
|
|
28
28
|
xmlRendering?: XmlRenderingMember;
|
|
29
|
+
/** Misplaced `bml:generics` on a member declaration. */
|
|
30
|
+
generics?: GenericsBinding;
|
|
29
31
|
constraints?: BlockInstance[];
|
|
30
32
|
xmlTrivia?: XmlTrivia;
|
|
31
33
|
source?: SourceLocation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-definition.d.ts","sourceRoot":"","sources":["../../src/types/member-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"member-definition.d.ts","sourceRoot":"","sources":["../../src/types/member-definition.ts"],"names":[],"mappings":"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"}
|
package/dist/types/values.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SourceLocation } from "./common.js";
|
|
2
|
-
export type MemberValue = LiteralValue | ExpressionValue | AddressValue;
|
|
2
|
+
export type MemberValue = LiteralValue | ExpressionValue | InterpolatedTextValue | AddressValue;
|
|
3
3
|
export interface LiteralValue {
|
|
4
4
|
kind: "literal";
|
|
5
5
|
/**
|
|
@@ -19,6 +19,14 @@ export interface ExpressionValue {
|
|
|
19
19
|
authoredPlacement?: "attribute" | "element";
|
|
20
20
|
source?: SourceLocation;
|
|
21
21
|
}
|
|
22
|
+
export interface InterpolatedTextValue {
|
|
23
|
+
kind: "interpolated";
|
|
24
|
+
/** Full authored text including ${} holes — the only interpolation field in Canonical BOM. */
|
|
25
|
+
raw: string;
|
|
26
|
+
/** Which form carried this text when element|attribute dual placement is legal (D9). */
|
|
27
|
+
authoredPlacement?: "attribute" | "element";
|
|
28
|
+
source?: SourceLocation;
|
|
29
|
+
}
|
|
22
30
|
export interface AddressValue {
|
|
23
31
|
kind: "address";
|
|
24
32
|
/** Parsed org.blockml.bml.type.Address. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/types/values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/types/values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,eAAe,GACf,qBAAqB,GACrB,YAAY,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC5C,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,cAAc,CAAC;IACrB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC5C,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blockml/bom",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "BlockML BOM (Urmodell) TypeScript contracts — ParseResult, Diagnostic, bomEquals",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"test": "vitest run packages/bom/test"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@blockml/core": "^1.
|
|
35
|
+
"@blockml/core": "^1.1.1"
|
|
36
36
|
},
|
|
37
37
|
"engines": {
|
|
38
38
|
"node": ">=20"
|