@blockml/framework 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/blocks/org/blockml/bml/framework/FrameworkType.bml +4 -1
  2. package/blocks/org/blockml/bml/framework/Library.bml +7 -3
  3. package/blocks/org/blockml/bml/framework/README.bml +1 -1
  4. package/blocks/org/blockml/bml/framework/capability/BootstrapTypeRegistry.bml +5 -1
  5. package/blocks/org/blockml/bml/framework/capability/CollectBaseTypeChain.bml +4 -1
  6. package/blocks/org/blockml/bml/framework/capability/DefaultBootstrapPaths.bml +6 -3
  7. package/blocks/org/blockml/bml/framework/capability/ForkBom.bml +4 -1
  8. package/blocks/org/blockml/bml/framework/capability/GetExportedFqns.bml +22 -3
  9. package/blocks/org/blockml/bml/framework/capability/GetPropertyNumericValue.bml +4 -1
  10. package/blocks/org/blockml/bml/framework/capability/IsLiteralValue.bml +4 -1
  11. package/blocks/org/blockml/bml/framework/capability/MemberIdentityKey.bml +4 -1
  12. package/blocks/org/blockml/bml/framework/capability/ParseExpression.bml +4 -1
  13. package/blocks/org/blockml/bml/framework/capability/ResolveContracts.bml +4 -1
  14. package/blocks/org/blockml/bml/framework/capability/ResolveEffectiveMembers.bml +4 -1
  15. package/blocks/org/blockml/bml/framework/capability/ResolveLibrarySeeds.bml +57 -0
  16. package/blocks/org/blockml/bml/framework/capability/RootFqnByFilePath.bml +18 -1
  17. package/blocks/org/blockml/bml/framework/capability/RootFqns.bml +23 -3
  18. package/blocks/org/blockml/bml/framework/capability/TypeRegistry.bml +4 -1
  19. package/blocks/org/blockml/bml/framework/capability/ValidateConstraints.bml +4 -1
  20. package/blocks/org/blockml/bml/framework/capability/ValidateEmbeddedBlocks.bml +22 -3
  21. package/blocks/org/blockml/bml/framework/capability/ValidateInstances.bml +23 -7
  22. package/blocks/org/blockml/bml/framework/capability/ValidatePresets.bml +24 -5
  23. package/blocks/org/blockml/bml/framework/capability/ValidateReadOnly.bml +24 -5
  24. package/blocks/org/blockml/bml/framework/capability/ValidateTypes.bml +4 -1
  25. package/blocks/org/blockml/bml/framework/capability/ValidateVersions.bml +4 -1
  26. package/blocks/org/blockml/bml/framework/capability/ValidateVisibility.bml +24 -5
  27. package/blocks/org/blockml/bml/framework/config/FrameworkDiagnosticCodes.bml +5 -2
  28. package/blocks/org/blockml/bml/framework/documentation/ArchitectureOverview.bml +3 -0
  29. package/blocks/org/blockml/bml/framework/documentation/ConstraintValidation.bml +5 -8
  30. package/blocks/org/blockml/bml/framework/documentation/Diagnostics.bml +3 -0
  31. package/blocks/org/blockml/bml/framework/documentation/EffectiveMembers.bml +3 -0
  32. package/blocks/org/blockml/bml/framework/documentation/ExpressionParsing.bml +3 -0
  33. package/blocks/org/blockml/bml/framework/documentation/Introduction.bml +3 -0
  34. package/blocks/org/blockml/bml/framework/documentation/LayerSeparation.bml +3 -0
  35. package/blocks/org/blockml/bml/framework/documentation/PackageOwnership.bml +3 -0
  36. package/blocks/org/blockml/bml/framework/documentation/PublicApi.bml +7 -8
  37. package/blocks/org/blockml/bml/framework/documentation/ScopeExclusions.bml +3 -0
  38. package/blocks/org/blockml/bml/framework/documentation/TypeRegistryBootstrap.bml +26 -8
  39. package/blocks/org/blockml/bml/framework/expression/ArrayExpressionNode.bml +4 -1
  40. package/blocks/org/blockml/bml/framework/expression/BinaryExpressionNode.bml +4 -1
  41. package/blocks/org/blockml/bml/framework/expression/CallExpressionNode.bml +4 -1
  42. package/blocks/org/blockml/bml/framework/expression/ExpressionNode.bml +4 -1
  43. package/blocks/org/blockml/bml/framework/expression/LiteralExpressionNode.bml +7 -4
  44. package/blocks/org/blockml/bml/framework/expression/ObjectExpressionEntry.bml +50 -0
  45. package/blocks/org/blockml/bml/framework/expression/ObjectExpressionNode.bml +7 -4
  46. package/blocks/org/blockml/bml/framework/expression/ParseExpressionError.bml +4 -1
  47. package/blocks/org/blockml/bml/framework/expression/ParseExpressionOutcome.bml +4 -1
  48. package/blocks/org/blockml/bml/framework/expression/ParseExpressionResult.bml +4 -1
  49. package/blocks/org/blockml/bml/framework/expression/PropertyExpressionNode.bml +4 -1
  50. package/blocks/org/blockml/bml/framework/registry/BootstrapOptions.bml +4 -1
  51. package/blocks/org/blockml/bml/framework/registry/BootstrapResult.bml +8 -5
  52. package/blocks/org/blockml/bml/framework/registry/BootstrapTrace.bml +59 -0
  53. package/dist/index.d.ts +1 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/registry/bootstrap.d.ts +17 -0
  58. package/dist/registry/bootstrap.d.ts.map +1 -1
  59. package/dist/registry/bootstrap.js +231 -9
  60. package/dist/registry/bootstrap.js.map +1 -1
  61. package/dist/registry/library-bootstrap.d.ts +3 -1
  62. package/dist/registry/library-bootstrap.d.ts.map +1 -1
  63. package/dist/registry/library-bootstrap.js +76 -12
  64. package/dist/registry/library-bootstrap.js.map +1 -1
  65. package/package.json +4 -4
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ValidateTypes</name>
32
35
  <type>fwcap:ValidateTypes</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ValidateVersions</name>
32
35
  <type>fwcap:ValidateVersions</type>
@@ -8,26 +8,45 @@
8
8
  xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
9
  "
10
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"
11
14
  xmlns:bomcommon="org.blockml.bml.bom.common"
15
+ xmlns:bomcomp="org.blockml.bml.bom.composition"
12
16
  xmlns:bomdoc="org.blockml.bml.bom.document"
17
+ xmlns:bommember="org.blockml.bml.bom.member"
18
+ xmlns:bomtype="org.blockml.bml.bom.type"
19
+ xmlns:bomvalue="org.blockml.bml.bom.value"
13
20
  xmlns:core="org.blockml.bml.core"
21
+ xmlns:def="org.blockml.bml.definition"
14
22
  xmlns:framework="org.blockml.bml.framework"
15
- xmlns:fwcap="org.blockml.bml.framework.capability">
23
+ xmlns:fwcap="org.blockml.bml.framework.capability"
24
+ xmlns:fwconfig="org.blockml.bml.framework.config"
25
+ xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
26
+ xmlns:fwexpression="org.blockml.bml.framework.expression"
27
+ xmlns:fwregistry="org.blockml.bml.framework.registry"
28
+ xmlns:parser="org.blockml.bml.compiler.parser"
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
16
33
 
17
34
  <name>ValidateVisibility</name>
18
35
  <type>fwcap:ValidateVisibility</type>
19
36
  <baseType>core:Capability</baseType>
20
- <is>Member visibility variant rules</is>
37
+ <is>Visibility member rules against TypeRegistry</is>
38
+
39
+ <documentation>Visibility member rules against TypeRegistry</documentation>
21
40
 
22
41
  <properties>
23
42
  <document type="bomdoc:BomDocument">
24
- <documentation>document. (required)</documentation>
43
+ <documentation>document. TS type: bomdoc:BomDocument. (required)</documentation>
25
44
  </document>
26
45
  <registry type="fwcap:TypeRegistry">
27
- <documentation>registry. (required)</documentation>
46
+ <documentation>registry. TS type: fwcap:TypeRegistry. (required)</documentation>
28
47
  </registry>
29
48
  <diagnostics type="bomcommon:Diagnostic[]">
30
- <documentation>diagnostics. (required)</documentation>
49
+ <documentation>diagnostics. TS type: bomcommon:Diagnostic[]. (required)</documentation>
31
50
  </diagnostics>
32
51
  </properties>
33
52
 
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>FrameworkDiagnosticCodes</name>
32
35
  <type>fwconfig:FrameworkDiagnosticCodes</type>
@@ -37,7 +40,7 @@
37
40
 
38
41
  <properties>
39
42
  <codes type="type:Text[]">
40
- <documentation>Ordered: BML_UNKNOWN_BASE_TYPE, BML_UNKNOWN_TYPE, BML_UNKNOWN_CONTRACT, BML_MEMBER_COLLISION, BML_OVERRIDE_WITHOUT_PARENT, BML_OVERRIDE_REQUIRED, BML_EXPRESSION_PARSE_ERROR, BML_CONSTRAINT_VIOLATION, BML_CONSTRAINT_WARNING, BML_CONSTRAINT_INFORMATION, BML_CONSTRAINT_UNKNOWN, BML_CONSTRAINT_TARGET_MISMATCH, BML_EMBEDDED_BLOCKS_ON_SUBBLOCK, BML_NESTED_EMBEDDED_BLOCKS, BML_DUPLICATE_EMBEDDED_BLOCK, BML_SUBBLOCK_TYPE_MISMATCH, BML_MISSING_ID, BML_UNRESOLVABLE_INSTANCE_REF, BML_PRESET_CYCLE, BML_UNKNOWN_PROPERTY, BML_DUPLICATE_MEMBER_VISIBILITY_VARIANT, BML_VISIBILITY_PRIVATE_OVERRIDE, BML_READONLY_MEMBER_WRITE, BML_MISSING_VERSION, BML_UNKNOWN_VERSION, BML_LIBRARY_RESOLVE_ERROR, BML_LIBRARY_NESTING_VIOLATION, BML_BOOTSTRAP_READ_ERROR (required)</documentation>
43
+ <documentation>Ordered: BML_BOOTSTRAP_READ_ERROR, BML_CONSTRAINT_INFORMATION, BML_CONSTRAINT_TARGET_MISMATCH, BML_CONSTRAINT_UNKNOWN, BML_CONSTRAINT_VIOLATION, BML_CONSTRAINT_WARNING, BML_DUPLICATE_EMBEDDED_BLOCK, BML_DUPLICATE_MEMBER_VISIBILITY_VARIANT, BML_EMBEDDED_BLOCKS_ON_SUBBLOCK, BML_EXPRESSION_PARSE_ERROR, BML_LIBRARY_NESTING_VIOLATION, BML_LIBRARY_RESOLVE_ERROR, BML_MEMBER_COLLISION, BML_MISSING_ID, BML_MISSING_VERSION, BML_NESTED_EMBEDDED_BLOCKS, BML_OVERRIDE_REQUIRED, BML_OVERRIDE_WITHOUT_PARENT, BML_PRESET_CYCLE, BML_READONLY_MEMBER_WRITE, BML_SUBBLOCK_TYPE_MISMATCH, BML_UNRESOLVABLE_INSTANCE_REF, BML_UNKNOWN_BASE_TYPE, BML_UNKNOWN_CONTRACT, BML_UNKNOWN_TYPE, BML_UNKNOWN_PROPERTY, BML_UNKNOWN_VERSION, BML_VISIBILITY_PRIVATE_OVERRIDE (required)</documentation>
41
44
  </codes>
42
45
  </properties>
43
46
 
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>ArchitectureOverview</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>ConstraintValidation</name>
@@ -35,14 +38,8 @@
35
38
  <is>validateConstraints branch dispatch and embed contexts</is>
36
39
 
37
40
  <documentation>validateConstraints evaluates constraints on the effective member set from
38
- resolveEffectiveMembers (baseType + contracts + local), including baseType instance
39
- configuration bound onto inherited properties. ValuePresent is checked after that merge
40
- not against empty type-level slots. Abstract members, overrides without a local default,
41
- and properties whose type is a generic parameter (e.g. Constant.value : T) may be empty on
42
- the type definition; the value is required after instance binding. Constraint evaluation
43
- runs once on the effective member set (placement is checked on local declarations).
44
- Diagnostics use a source span in the validated document — not an ancestor property line
45
- mixed with the current file path.
41
+ resolveEffectiveMembers (baseType + contracts + local). Property ValuePresent and other
42
+ ValueConstraints on effective PropertyDefinition are checked against authored local values.
46
43
 
47
44
  Embed contexts for directly declared constraint BlockInstances:
48
45
  block — BlockConstraint (RequiresMember), ValueConstraint (Min/Max/ValuePresent)
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>Diagnostics</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>EffectiveMembers</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>ExpressionParsing</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>Introduction</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>LayerSeparation</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>PackageOwnership</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>PublicApi</name>
@@ -39,10 +42,11 @@
39
42
  TypeRegistry — class; register/get/has/keys/size on BomDocument index
40
43
  bootstrapTypeRegistry(options?) → BootstrapResult
41
44
  defaultBootstrapPaths(rootDir?) → string[]
45
+ resolveLibrarySeeds(rootDir?, extras?) → string[]
42
46
  BootstrapOptions — paths?, libraryPaths?, rootDir?
47
+ BootstrapResult — registry, diagnostics, exportsByLibrary?, trace?
48
+ BootstrapTrace — corpusPaths, seeds, searchRoots, librariesVisited, skippedCoveredRoots
43
49
  rootFqnByFilePath(registry) → Map&lt;filePath, rootFqn&gt;
44
- rootFqns(registry) → string[]
45
- getExportedFqns(libraryPath, bootstrap, rootDir?) → Set&lt;string&gt; | undefined
46
50
  forkBom(document) → BomDocument
47
51
  resolveEffectiveMembers(block, registry) → MemberDefinition[]
48
52
  resolveContracts(block, registry) → MemberDefinition[] (contract slice; used by resolveEffectiveMembers)
@@ -50,17 +54,12 @@
50
54
  memberIdentityKey(member) → string
51
55
  parseExpression(source) → ParseExpressionOutcome
52
56
  validateTypes(document, registry) → Diagnostic[]
53
- validateEmbeddedBlocks(document) → Diagnostic[]
54
57
  validateVersions(document, registry) → Diagnostic[]
55
- validateInstances(document, registry) → Diagnostic[]
56
- validatePresets(document, registry) → Diagnostic[]
57
- validateVisibility(document, registry) → Diagnostic[]
58
- validateReadOnly(document, registry) → Diagnostic[]
59
58
  validateConstraints(document, registry) → Diagnostic[]
60
59
  getPropertyNumericValue(property) → number | undefined
61
60
  isLiteralValue(value) → boolean
62
61
 
63
- Types: BootstrapResult, BootstrapOptions, ExpressionNode, ParseExpressionResult, ParseExpressionOutcome
62
+ Types: BootstrapResult, BootstrapTrace, BootstrapOptions, ExpressionNode, ParseExpressionResult, ParseExpressionOutcome
64
63
 
65
64
  Not exported from index: getLiteralNumericValue (internal helper in validate-types.ts).</documentation>
66
65
 
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>ScopeExclusions</name>
@@ -27,6 +27,9 @@
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
29
  xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
30
33
  xmlns:doc="org.blockml.bml.documentation">
31
34
 
32
35
  <name>TypeRegistryBootstrap</name>
@@ -40,17 +43,32 @@
40
43
  parses via @blockml/parser parse(), registers each document root block.
41
44
 
42
45
  library — when options.libraryPaths is set, resolves each Library.bml dependency graph
43
- (dependencies, subLibraries) in order, then registers blocks from each library blocks root.
44
- Missing Library path BML_LIBRARY_RESOLVE_ERROR. Outer re-export of inner-only block
46
+ (dependencies, subLibraries) in order, then registers blocks from each library blocks root
47
+ except trees already covered by options.paths (srcDir / corpus). Missing Library path
48
+ BML_LIBRARY_RESOLVE_ERROR. Outer re-export of inner-only block →
45
49
  BML_LIBRARY_NESTING_VIOLATION (minimal check).
46
50
 
47
- defaultBootstrapPaths(rootDir?) returns:
48
- node_modules/@blockml/core/blocks
49
- node_modules/@machineblocks/core/blocks
51
+ defaultBootstrapPaths(rootDir?) returns BlockML srcDir roots for production
52
+ npm dependencies (package.json dependencies + optionalDependencies) of the nearest
53
+ package, resolved via node_modules walk-up. Used as corpus fallback when no paths
54
+ are given. A BlockML package is identified by blockml.library or blockml.config.json;
55
+ its source root is srcDir (default "blocks", override only in that package's
56
+ blockml.config.json).
50
57
 
51
- BootstrapResult: { registry: TypeRegistry, diagnostics: Diagnostic[] }
52
- Read errors emit BML_BOOTSTRAP_READ_ERROR (warning). Parse diagnostics are collected
53
- but do not stop registration of successfully parsed documents.
58
+ resolveLibrarySeeds(rootDir, extras?) prepends package.json blockml.library, then
59
+ extras (config.libraries / --libraries), deduped by realpath.
60
+
61
+ bootstrapTypeRegistry also indexes Library.bml under all BlockML packages found in
62
+ node_modules and workspace packages/ along the directory walk (FQN search space).
63
+ First Library.bml wins per type FQN unless that file is the current library
64
+ (self-loop); then another file with the same type is used. node_modules is
65
+ indexed before workspace packages.
66
+
67
+ BootstrapResult: { registry, diagnostics, exportsByLibrary?, trace? }
68
+ trace lists corpusPaths, seeds, searchRoots (index only), librariesVisited, and
69
+ skippedCoveredRoots. Read errors emit BML_BOOTSTRAP_READ_ERROR (warning). Parse
70
+ diagnostics are collected but do not stop registration of successfully parsed
71
+ documents.
54
72
 
55
73
  Hosts (@blockml/cli, @blockml/validator) may inject a pre-built TypeRegistry via
56
74
  ValidateOptions.typeRegistry instead of bootstrapping. ValidateOptions.libraryPaths
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ArrayExpressionNode</name>
32
35
  <type>fwexpression:ArrayExpressionNode</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>BinaryExpressionNode</name>
32
35
  <type>fwexpression:BinaryExpressionNode</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>CallExpressionNode</name>
32
35
  <type>fwexpression:CallExpressionNode</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ExpressionNode</name>
32
35
  <type>fwexpression:ExpressionNode</type>
@@ -26,22 +26,25 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>LiteralExpressionNode</name>
32
35
  <type>fwexpression:LiteralExpressionNode</type>
33
36
  <baseType>fwexpression:ExpressionNode</baseType>
34
37
  <is>Literal expression AST node</is>
35
38
 
36
- <documentation>kind: literal. value: string | number | boolean | null.</documentation>
39
+ <documentation>kind: literal. value: string | number | boolean | null. BML union covers primitives; null is documented only.</documentation>
37
40
 
38
41
  <properties>
39
42
  <kind type="type:Text">
40
43
  <documentation>kind. TS type: type:Text. (required)</documentation>
41
44
  <value>literal</value>
42
45
  </kind>
43
- <value type="core:Any">
44
- <documentation>value. TS type: core:Any. (required)</documentation>
46
+ <value type="type:Text | type:Integer | type:Decimal | type:Boolean">
47
+ <documentation>BML type gap: TS string | number | boolean | null. Union covers primitive cases; null is documented only. (required)</documentation>
45
48
  </value>
46
49
  </properties>
47
50
 
@@ -0,0 +1,50 @@
1
+ <!--
2
+ Framework — ObjectExpressionEntry
3
+ FQN: org.blockml.bml.framework.expression.ObjectExpressionEntry
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:bomcommon="org.blockml.bml.bom.common"
15
+ xmlns:bomcomp="org.blockml.bml.bom.composition"
16
+ xmlns:bomdoc="org.blockml.bml.bom.document"
17
+ xmlns:bommember="org.blockml.bml.bom.member"
18
+ xmlns:bomtype="org.blockml.bml.bom.type"
19
+ xmlns:bomvalue="org.blockml.bml.bom.value"
20
+ xmlns:core="org.blockml.bml.core"
21
+ xmlns:def="org.blockml.bml.definition"
22
+ xmlns:framework="org.blockml.bml.framework"
23
+ xmlns:fwcap="org.blockml.bml.framework.capability"
24
+ xmlns:fwconfig="org.blockml.bml.framework.config"
25
+ xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
26
+ xmlns:fwexpression="org.blockml.bml.framework.expression"
27
+ xmlns:fwregistry="org.blockml.bml.framework.registry"
28
+ xmlns:parser="org.blockml.bml.compiler.parser"
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
33
+
34
+ <name>ObjectExpressionEntry</name>
35
+ <type>fwexpression:ObjectExpressionEntry</type>
36
+ <baseType>framework:FrameworkType</baseType>
37
+ <is>One key/value pair in an object expression</is>
38
+
39
+ <documentation>BML type gap: stands for TypeScript Record&lt;string, ExpressionNode&gt;. Core has no Map ValueType; this struct is the per-entry shape.</documentation>
40
+
41
+ <properties>
42
+ <key type="type:Text">
43
+ <documentation>key. TS type: type:Text. (required)</documentation>
44
+ </key>
45
+ <value type="fwexpression:ExpressionNode">
46
+ <documentation>value. TS type: fwexpression:ExpressionNode. (required)</documentation>
47
+ </value>
48
+ </properties>
49
+
50
+ </block>
@@ -26,22 +26,25 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ObjectExpressionNode</name>
32
35
  <type>fwexpression:ObjectExpressionNode</type>
33
36
  <baseType>fwexpression:ExpressionNode</baseType>
34
37
  <is>Object expression AST node</is>
35
38
 
36
- <documentation>kind: object. entries: Record<string, ExpressionNode>.</documentation>
39
+ <documentation>kind: object. entries: Record&lt;string, ExpressionNode&gt;.</documentation>
37
40
 
38
41
  <properties>
39
42
  <kind type="type:Text">
40
43
  <documentation>kind. TS type: type:Text. (required)</documentation>
41
44
  <value>object</value>
42
45
  </kind>
43
- <entries type="core:Any">
44
- <documentation>Record<string, ExpressionNode>. (required)</documentation>
46
+ <entries type="fwexpression:ObjectExpressionEntry[]">
47
+ <documentation>BML type gap: TS Record&lt;string, ExpressionNode&gt;. (required)</documentation>
45
48
  </entries>
46
49
  </properties>
47
50
 
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ParseExpressionError</name>
32
35
  <type>fwexpression:ParseExpressionError</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ParseExpressionOutcome</name>
32
35
  <type>fwexpression:ParseExpressionOutcome</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>ParseExpressionResult</name>
32
35
  <type>fwexpression:ParseExpressionResult</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>PropertyExpressionNode</name>
32
35
  <type>fwexpression:PropertyExpressionNode</type>
@@ -26,7 +26,10 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>BootstrapOptions</name>
32
35
  <type>fwregistry:BootstrapOptions</type>
@@ -26,17 +26,17 @@
26
26
  xmlns:fwexpression="org.blockml.bml.framework.expression"
27
27
  xmlns:fwregistry="org.blockml.bml.framework.registry"
28
28
  xmlns:parser="org.blockml.bml.compiler.parser"
29
- xmlns:type="org.blockml.bml.type">
29
+ xmlns:type="org.blockml.bml.type"
30
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
31
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
32
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
33
 
31
34
  <name>BootstrapResult</name>
32
35
  <type>fwregistry:BootstrapResult</type>
33
36
  <baseType>framework:FrameworkType</baseType>
34
37
  <is>Result of bootstrapTypeRegistry corpus walk</is>
35
38
 
36
- <documentation>Returned by fwcap:BootstrapTypeRegistry. Registry may be partially populated when diagnostics are present.
37
-
38
- exportsByLibrary — optional Map from absolute Library.bml path to exported block FQNs;
39
- present only when bootstrap used libraryPaths mode.</documentation>
39
+ <documentation>Returned by fwcap:BootstrapTypeRegistry. Registry may be partially populated when diagnostics are present. exportsByLibrary is set in libraryPaths mode. trace lists corpus, seeds, search index, visited libraries, and skipped covered roots.</documentation>
40
40
 
41
41
  <properties>
42
42
  <registry type="fwcap:TypeRegistry">
@@ -48,6 +48,9 @@
48
48
  <exportsByLibrary type="type:Text">
49
49
  <documentation>exportsByLibrary — Map&lt;libraryPath, Set&lt;exportedFqn&gt;&gt; when libraryPaths bootstrap. (optional)</documentation>
50
50
  </exportsByLibrary>
51
+ <trace type="fwregistry:BootstrapTrace">
52
+ <documentation>Bootstrap source trace for hosts such as CLI --verbose. (optional)</documentation>
53
+ </trace>
51
54
  </properties>
52
55
 
53
56
  </block>