@blockml/bom 0.2.0 → 0.4.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.
@@ -36,7 +36,7 @@
36
36
  Membership is defined exclusively by this blocks list.
37
37
  </documentation>
38
38
 
39
- <version>0.2.0</version>
39
+ <version>0.4.0</version>
40
40
 
41
41
  <language>
42
42
  <English />
@@ -83,6 +83,7 @@
83
83
  <composition><bomtype:TypeDescriptor /></composition>
84
84
  <composition><bomtype:NamedTypeReference /></composition>
85
85
  <composition><bomtype:UnionTypeExpression /></composition>
86
+ <composition><bomtype:GroupedTypeExpression /></composition>
86
87
  <composition><bomtype:GenericParameterReference /></composition>
87
88
  <composition><bomtype:SelfTypeReference /></composition>
88
89
  <composition><bomtype:StructField /></composition>
@@ -123,9 +124,9 @@
123
124
  <composition><bomapi:SerializeOptions /></composition>
124
125
  <composition><bomapi:ParseResult /></composition>
125
126
  <composition><bomapi:SerializeResult /></composition>
126
- <composition><bomapi:ValidateOptions /></composition>
127
- <composition><bomapi:ValidateResult /></composition>
128
127
  <composition><bomapi:TypeRegistryReader /></composition>
128
+ <composition><bomapi:ValidateResult /></composition>
129
+ <composition><bomapi:ValidateOptions /></composition>
129
130
  <composition><bomcap:StripProvenance /></composition>
130
131
  <composition><bomcap:BomEquals /></composition>
131
132
  <composition><bomdocumentation:Introduction /></composition>
@@ -28,7 +28,6 @@
28
28
  <baseType>bom:UrmodellType</baseType>
29
29
  <is>Minimal TypeRegistry surface for ValidateOptions</is>
30
30
 
31
- <documentation>TypeScript interface — get(fqn) and has(fqn). Full TypeRegistry in
32
- @blockml/framework implements this reader for ValidateOptions.typeRegistry injection.</documentation>
31
+ <documentation>TypeScript interface — get(fqn) and has(fqn). Full TypeRegistry in @blockml/framework implements this reader for ValidateOptions.typeRegistry injection.</documentation>
33
32
 
34
33
  </block>
@@ -28,13 +28,11 @@
28
28
  <baseType>bom:UrmodellType</baseType>
29
29
  <is>Options for validate() (Stage 2)</is>
30
30
 
31
- <documentation>Options for @blockml/validator validate(). When typeRegistry is omitted,
32
- bootstrapPaths and/or libraryPaths (or framework default paths) populate the registry.
33
- libraryPaths selects library-graph bootstrap mode (Library.bml dependency order).</documentation>
31
+ <documentation>Options for @blockml/validator validate(). When typeRegistry is omitted, bootstrapPaths and/or libraryPaths (or framework default paths) populate the registry. libraryPaths selects library-graph bootstrap mode (Library.bml dependency order).</documentation>
34
32
 
35
33
  <properties>
36
34
  <typeRegistry type="bomapi:TypeRegistryReader">
37
- <documentation>Pre-built registry surface — optional. Implemented by @blockml/framework TypeRegistry.</documentation>
35
+ <documentation>Pre-built registry surface — optional. Implemented by @blockml/framework TypeRegistry. (optional)</documentation>
38
36
  </typeRegistry>
39
37
  <bootstrapPaths type="type:Text[]">
40
38
  <documentation>Directories scanned for .bml when typeRegistry omitted (corpus mode). (optional)</documentation>
@@ -28,12 +28,11 @@
28
28
  <baseType>bom:UrmodellType</baseType>
29
29
  <is>Result of validate() (Stage 2)</is>
30
30
 
31
- <documentation>Result of @blockml/validator validate(). success is false when any diagnostic
32
- has severity error. pragmaticModel is the forked working copy when validation ran.</documentation>
31
+ <documentation>Result of @blockml/validator validate(). success is false when any diagnostic has severity error. pragmaticModel is the forked working copy when validation ran.</documentation>
33
32
 
34
33
  <properties>
35
34
  <pragmaticModel type="bomdoc:BomDocument">
36
- <documentation>Pragmatic model fork — optional. TS type: bomdoc:BomDocument | undefined.</documentation>
35
+ <documentation>Pragmatic model fork — optional. TS type: bomdoc:BomDocument | undefined. (optional)</documentation>
37
36
  </pragmaticModel>
38
37
  <diagnostics type="bomcommon:Diagnostic[]">
39
38
  <documentation>diagnostics (required). TS type: bomcommon:Diagnostic[].</documentation>
@@ -132,7 +132,7 @@
132
132
  <documentation>source (optional). TS type: bomcommon:SourceLocation.</documentation>
133
133
  </source>
134
134
  <typeSource type="bomcommon:SourceLocation">
135
- <documentation>typeSource (optional). TS type: bomcommon:SourceLocation.</documentation>
135
+ <documentation>Span of the type= attribute or <type> element value. (optional)</documentation>
136
136
  </typeSource>
137
137
  <baseTypeSource type="bomcommon:SourceLocation">
138
138
  <documentation>baseTypeSource (optional). TS type: bomcommon:SourceLocation.</documentation>
@@ -39,8 +39,7 @@
39
39
 
40
40
  SerializeOptions: indent (default 2; 0=compact B13), xmlDeclaration (default false B17/B24).
41
41
 
42
- ValidateOptions: typeRegistry (TypeRegistryReader), bootstrapPaths, libraryPaths,
43
- continueOnError (default true).
42
+ ValidateOptions: typeRegistry (TypeRegistryReader), bootstrapPaths, libraryPaths, continueOnError (default true).
44
43
 
45
44
  TypeRegistryReader: minimal get/has surface for ValidateOptions — implemented by @blockml/framework.
46
45
 
@@ -32,7 +32,8 @@
32
32
  <documentation>TypeExpression (alias TypeDescriptor in V1) — structured parse-time AST, not a ValueType.
33
33
  Used for Capability inputType/outputType and Property type attributes.
34
34
 
35
- Union variants: named, union, genericParam, self, anonymousStruct.
35
+ Union variants: named, union, grouped, genericParam, self, anonymousStruct.
36
+ grouped wraps a TypeExpression for nested multiplicity: (T[])[] or (A | B)[].
36
37
 
37
38
  Anonymous struct = shorthand for inline class with ordered fields (FunctionMapping positional order).
38
39
  Single primitive = NamedTypeReference directly — not wrapped in one-field struct.
@@ -44,6 +44,12 @@
44
44
  <outputType type="bomtype:TypeDescriptor">
45
45
  <documentation>outputType (optional). TS type: bomtype:TypeDescriptor.</documentation>
46
46
  </outputType>
47
+ <inputTypeSource type="bomcommon:SourceLocation">
48
+ <documentation>Span of the inputType= attribute value. (optional)</documentation>
49
+ </inputTypeSource>
50
+ <outputTypeSource type="bomcommon:SourceLocation">
51
+ <documentation>Span of the outputType= attribute value. (optional)</documentation>
52
+ </outputTypeSource>
47
53
  <implementation type="bommember:ImplementationBlock">
48
54
  <documentation>implementation (optional). TS type: bommember:ImplementationBlock.</documentation>
49
55
  </implementation>
@@ -85,6 +85,9 @@
85
85
  <source type="bomcommon:SourceLocation">
86
86
  <documentation>source (optional). TS type: bomcommon:SourceLocation.</documentation>
87
87
  </source>
88
+ <typeSource type="bomcommon:SourceLocation">
89
+ <documentation>Span of the type= attribute value (use-site for type diagnostics). (optional)</documentation>
90
+ </typeSource>
88
91
  </properties>
89
92
 
90
93
  </block>
@@ -0,0 +1,46 @@
1
+ <!--
2
+ BOM Urmodell — GroupedTypeExpression
3
+ FQN: org.blockml.bml.bom.type.GroupedTypeExpression
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>GroupedTypeExpression</name>
27
+ <type>bomtype:GroupedTypeExpression</type>
28
+ <baseType>bomtype:TypeExpression</baseType>
29
+ <is>Parenthesized type expression with optional outer multiplicity</is>
30
+
31
+ <documentation>Grouping wrapper for nested multiplicity, e.g. (T[])[] or (A | B)[]. Inner expression may itself carry multiplicity.</documentation>
32
+
33
+ <properties>
34
+ <kind type="type:Text">
35
+ <documentation>kind (required). TS type: type:Text.</documentation>
36
+ <value>grouped</value>
37
+ </kind>
38
+ <expression type="bomtype:TypeExpression">
39
+ <documentation>expression (required). TS type: bomtype:TypeExpression.</documentation>
40
+ </expression>
41
+ <multiplicity type="bomtype:Multiplicity">
42
+ <documentation>multiplicity (optional). TS type: bomtype:Multiplicity.</documentation>
43
+ </multiplicity>
44
+ </properties>
45
+
46
+ </block>
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type { SourceLocation, SourceInfo, XmlTrivia, MemberSectionName, MetadataElementTrivia, XmlNodeKind, CharacterDataForm, XmlRenderingBlock, XmlRenderingMember, DiagnosticSeverity, Diagnostic, } from "./types/common.js";
2
2
  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
- export type { TypeExpression, TypeDescriptor, Multiplicity, InstanceConfiguration, NamedTypeReference, UnionTypeExpression, GenericParameterReference, SelfTypeReference, AnonymousStructType, StructField, } from "./types/type-expression.js";
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
6
  export type { CompositionTemplate, InstanceAggregationComposition, CompositionNode, BlockInstanceNode, VirtualContainerNode, BlockInstance, DirectiveAttribute, EachDirective, IfDirective, UnlessDirective, WithDirective, WithBinding, } from "./types/composition.js";
7
7
  export type { MemberValue, LiteralValue, ExpressionValue, AddressValue, Address, } from "./types/values.js";
@@ -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,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,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,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,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuFA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwFA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -29,6 +29,8 @@ export interface MemberDefinitionBase {
29
29
  constraints?: BlockInstance[];
30
30
  xmlTrivia?: XmlTrivia;
31
31
  source?: SourceLocation;
32
+ /** Source span of the authored `type` attribute value when present. */
33
+ typeSource?: SourceLocation;
32
34
  }
33
35
  export interface PropertyDefinition extends MemberDefinitionBase {
34
36
  kind: "property";
@@ -74,6 +76,10 @@ export interface CapabilityDefinition extends MemberDefinitionBase {
74
76
  typeFqn: string;
75
77
  inputType?: TypeDescriptor;
76
78
  outputType?: TypeDescriptor;
79
+ /** Source span of the authored `inputType` attribute value. */
80
+ inputTypeSource?: SourceLocation;
81
+ /** Source span of the authored `outputType` attribute value. */
82
+ outputTypeSource?: SourceLocation;
77
83
  implementation?: ImplementationBlock;
78
84
  }
79
85
  export interface ImplementationBlock {
@@ -1 +1 @@
1
- {"version":3,"file":"member-definition.d.ts","sourceRoot":"","sources":["../../src/types/member-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"member-definition.d.ts","sourceRoot":"","sources":["../../src/types/member-definition.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { LiteralValue, ExpressionValue } from "./values.js";
2
2
  /** Parse-time type expression — not a language ValueType. */
3
- export type TypeExpression = NamedTypeReference | AnonymousStructType | UnionTypeExpression | GenericParameterReference | SelfTypeReference;
3
+ export type TypeExpression = NamedTypeReference | AnonymousStructType | UnionTypeExpression | GroupedTypeExpression | GenericParameterReference | SelfTypeReference;
4
4
  /** V1 alias kept for Capability inputType / outputType. */
5
5
  export type TypeDescriptor = TypeExpression;
6
6
  export interface Multiplicity {
@@ -24,6 +24,11 @@ export interface UnionTypeExpression {
24
24
  kind: "union";
25
25
  alternatives: TypeExpression[];
26
26
  }
27
+ export interface GroupedTypeExpression {
28
+ kind: "grouped";
29
+ expression: TypeExpression;
30
+ multiplicity?: Multiplicity;
31
+ }
27
32
  export interface GenericParameterReference {
28
33
  kind: "genericParam";
29
34
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../src/types/type-expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,iBAAiB,CAAC;AAEtB,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC,CAAC;IACvD,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACjC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;CACtB"}
1
+ {"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../src/types/type-expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,yBAAyB,GACzB,iBAAiB,CAAC;AAEtB,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC,CAAC;IACvD,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACjC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;CACtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockml/bom",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
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.0.3"
35
+ "@blockml/core": "^1.0.5"
36
36
  },
37
37
  "engines": {
38
38
  "node": ">=20"