@blockml/bom 0.9.1 → 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.
@@ -40,7 +40,7 @@
40
40
  Membership is defined exclusively by this blocks list.
41
41
  </documentation>
42
42
 
43
- <version>0.9.1</version>
43
+ <version>0.9.2</version>
44
44
 
45
45
  <language>
46
46
  <English />
@@ -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>
@@ -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="ExampleOf" />
50
+ <see type="bomdoc:BomDocument" relation="SeeAlso" />
51
51
  </references>
52
52
 
53
53
  </block>
@@ -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
 
@@ -28,7 +28,18 @@
28
28
  <baseType>bom:UrmodellType</baseType>
29
29
  <is>Namespaced property value entry</is>
30
30
 
31
- <documentation>Namespaced property value entry</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">
package/dist/index.d.ts CHANGED
@@ -5,6 +5,6 @@ export type { TypeExpression, TypeDescriptor, Multiplicity, InstanceConfiguratio
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, GenericsBinding, DirectiveAttribute, EachDirective, IfDirective, UnlessDirective, WithDirective, WithBinding, } from "./types/composition.js";
7
7
  export type { MemberValue, LiteralValue, ExpressionValue, InterpolatedTextValue, AddressValue, Address, } from "./types/values.js";
8
- export type { ParseResult, SerializeResult, ParseOptions, SerializeOptions, ValidateResult, ValidateOptions, TypeRegistryReader, } from "./types/api.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
@@ -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,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,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":"AA4FA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8FA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -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 */
@@ -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;CAC3B;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
+ {"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockml/bom",
3
- "version": "0.9.1",
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.0.10"
35
+ "@blockml/core": "^1.1.1"
36
36
  },
37
37
  "engines": {
38
38
  "node": ">=20"