@blockml/fatblock-target 0.9.4 → 0.9.6
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/target/fatblock/FatblockType.bml +16 -18
- package/blocks/org/blockml/bml/target/fatblock/Library.bml +20 -27
- package/blocks/org/blockml/bml/target/fatblock/README.bml +14 -21
- package/blocks/org/blockml/bml/target/fatblock/api/AssembleFatDocumentResult.bml +20 -18
- package/blocks/org/blockml/bml/target/fatblock/api/FatBlockOptions.bml +33 -21
- package/blocks/org/blockml/bml/target/fatblock/api/FatBlockRenderOutput.bml +23 -19
- package/blocks/org/blockml/bml/target/fatblock/capability/AssembleFatDocument.bml +26 -24
- package/blocks/org/blockml/bml/target/fatblock/capability/CloneBlockDefinition.bml +19 -20
- package/blocks/org/blockml/bml/target/fatblock/capability/CollectCandidateFqns.bml +31 -25
- package/blocks/org/blockml/bml/target/fatblock/capability/FatOutputBasename.bml +19 -21
- package/blocks/org/blockml/bml/target/fatblock/capability/FilterByIncludes.bml +22 -22
- package/blocks/org/blockml/bml/target/fatblock/capability/MatchesIncludePattern.bml +22 -21
- package/blocks/org/blockml/bml/target/fatblock/capability/MergeNamespaceBindings.bml +22 -22
- package/blocks/org/blockml/bml/target/fatblock/capability/Render.bml +22 -22
- package/blocks/org/blockml/bml/target/fatblock/capability/ResolveOptions.bml +19 -21
- package/blocks/org/blockml/bml/target/fatblock/capability/RootFqnsByFilePath.bml +19 -21
- package/blocks/org/blockml/bml/target/fatblock/capability/SerializeFatDocument.bml +22 -22
- package/blocks/org/blockml/bml/target/fatblock/capability/ValidateRequest.bml +19 -21
- package/blocks/org/blockml/bml/target/fatblock/config/DefaultFatBlockOptions.bml +18 -18
- package/blocks/org/blockml/bml/target/fatblock/config/FatBlockConstants.bml +35 -21
- package/blocks/org/blockml/bml/target/fatblock/documentation/ArchitectureOverview.bml +16 -20
- package/blocks/org/blockml/bml/target/fatblock/documentation/CandidateCollection.bml +17 -21
- package/blocks/org/blockml/bml/target/fatblock/documentation/DesignDecisions.bml +26 -32
- package/blocks/org/blockml/bml/target/fatblock/documentation/Diagnostics.bml +16 -20
- package/blocks/org/blockml/bml/target/fatblock/documentation/EmbedAssemblyRules.bml +15 -19
- package/blocks/org/blockml/bml/target/fatblock/documentation/Introduction.bml +17 -21
- package/blocks/org/blockml/bml/target/fatblock/documentation/LayerSeparation.bml +20 -24
- package/blocks/org/blockml/bml/target/fatblock/documentation/NamespaceMergeRules.bml +15 -19
- package/blocks/org/blockml/bml/target/fatblock/documentation/OutputLayout.bml +15 -19
- package/blocks/org/blockml/bml/target/fatblock/documentation/PackageOwnership.bml +18 -22
- package/blocks/org/blockml/bml/target/fatblock/documentation/PublicApi.bml +15 -19
- package/blocks/org/blockml/bml/target/fatblock/documentation/ScopeExclusions.bml +14 -18
- package/blocks/org/blockml/bml/target/fatblock/documentation/V1Scope.bml +15 -19
- package/package.json +7 -7
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — ArchitectureOverview
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.ArchitectureOverview-->
|
|
3
|
+
<fbdocumentation:ArchitectureOverview xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,20 +17,22 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Module map and assemble pipeline
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
Entry: fbcap:Render (FatBlockTarget.render)
|
|
32
28
|
→ ResolveOptions
|
|
33
29
|
→ AssembleFatDocument (RootFqnsByFilePath, CollectCandidateFqns, FilterByIncludes,
|
|
34
30
|
CloneBlockDefinition, MergeNamespaceBindings)
|
|
35
31
|
→ SerializeFatDocument
|
|
36
32
|
→ FatOutputBasename
|
|
37
|
-
|
|
33
|
+
|
|
38
34
|
ValidateRequest runs before render when the host calls it; requires srcDir.
|
|
39
|
-
|
|
35
|
+
|
|
40
36
|
TypeScript module map:
|
|
41
37
|
• options.ts → ResolveOptions, FatBlockOptions
|
|
42
38
|
• collect-candidates.ts → RootFqnsByFilePath, CollectCandidateFqns
|
|
@@ -45,9 +41,9 @@
|
|
|
45
41
|
• merge-namespace-bindings.ts → MergeNamespaceBindings
|
|
46
42
|
• assemble-fat-document.ts → AssembleFatDocument, SerializeFatDocument
|
|
47
43
|
• fat-output-path.ts → FatOutputBasename
|
|
48
|
-
• fatblock-target.ts → Render, ValidateRequest
|
|
44
|
+
• fatblock-target.ts → Render, ValidateRequest
|
|
45
|
+
</documentation>
|
|
49
46
|
<references>
|
|
50
47
|
<see type="fbdocumentation:V1Scope" relation="ReadNext" />
|
|
51
48
|
</references>
|
|
52
|
-
|
|
53
|
-
</block>
|
|
49
|
+
</fbdocumentation:ArchitectureOverview>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — CandidateCollection
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.CandidateCollection-->
|
|
3
|
+
<fbdocumentation:CandidateCollection xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,23 +17,25 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Root FQN selection and include filters (FB5–FB7)
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
FB5 RootFqnsByFilePath: per source file, root FQN is one not prefixed by another FQN
|
|
32
28
|
from the same file — Sub-Block registry keys are not embed candidates.
|
|
33
|
-
|
|
29
|
+
|
|
34
30
|
FB6 CollectCandidateFqns: roots whose file path is under resolve(rootDir, srcDir);
|
|
35
31
|
exclude host FQN; sort ascending; apply include when non-empty.
|
|
36
|
-
|
|
32
|
+
|
|
37
33
|
FB7 Include: pattern ending * is prefix match; else exact FQN; OR across patterns;
|
|
38
34
|
empty/omitted patterns keep all candidates.
|
|
39
|
-
|
|
40
|
-
V1 semantics = folder pool, not dependency graph walk
|
|
35
|
+
|
|
36
|
+
V1 semantics = folder pool, not dependency graph walk.
|
|
37
|
+
</documentation>
|
|
41
38
|
<references>
|
|
42
39
|
<see type="fbdocumentation:EmbedAssemblyRules" relation="ReadNext" />
|
|
43
40
|
</references>
|
|
44
|
-
|
|
45
|
-
</block>
|
|
41
|
+
</fbdocumentation:CandidateCollection>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — DesignDecisions
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.DesignDecisions-->
|
|
3
|
+
<fbdocumentation:DesignDecisions xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,48 +17,48 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Normative FatBlock decisions FB1–FB20
|
|
25
|
+
</is>
|
|
31
26
|
<documentation>
|
|
32
27
|
# Normative FatBlock decisions FB1–FB20
|
|
33
|
-
|
|
28
|
+
|
|
34
29
|
FB1 ResolveOptions default embeddedBlocksStrategy=error.
|
|
35
|
-
|
|
30
|
+
|
|
36
31
|
FB2 accepts document only; registry name fatblock.
|
|
37
|
-
|
|
32
|
+
|
|
38
33
|
FB3 ValidateRequest requires srcDir.
|
|
39
|
-
|
|
34
|
+
|
|
40
35
|
FB4 render empty files on assemble/serialize errors; strip info diags.
|
|
41
|
-
|
|
36
|
+
|
|
42
37
|
FB5 RootFqnsByFilePath excludes Sub-Block FQNs.
|
|
43
|
-
|
|
38
|
+
|
|
44
39
|
FB6 CollectCandidateFqns path-under-src; exclude host; sort.
|
|
45
|
-
|
|
40
|
+
|
|
46
41
|
FB7 include exact or prefix*; OR; empty=all.
|
|
47
|
-
|
|
42
|
+
|
|
48
43
|
FB8 CloneBlockDefinition via structuredClone.
|
|
49
|
-
|
|
44
|
+
|
|
50
45
|
FB9 Merge host then embeds.
|
|
51
|
-
|
|
46
|
+
|
|
52
47
|
FB10 prefix collision diagnostic; no rewrite.
|
|
53
|
-
|
|
48
|
+
|
|
54
49
|
FB11 default empty-prefix xmlns.
|
|
55
|
-
|
|
50
|
+
|
|
56
51
|
FB12–FB16 assemble host/embed empty-embeds and not-found rules.
|
|
57
|
-
|
|
52
|
+
|
|
58
53
|
FB17 preserve subBlocks; clear nested embeds on clone; serialize indent 2.
|
|
59
|
-
|
|
54
|
+
|
|
60
55
|
FB18 {hostFqn}.fat.bml basename.
|
|
61
|
-
|
|
56
|
+
|
|
62
57
|
FB19 V1 = folder pool not transitive closure.
|
|
63
|
-
|
|
58
|
+
|
|
64
59
|
FB20 embeddedBlocksStrategy reserved; assemble hardcodes empty-embeds check.
|
|
65
60
|
</documentation>
|
|
66
61
|
<references>
|
|
67
62
|
<see type="fbdocumentation:PackageOwnership" relation="ReadNext" />
|
|
68
63
|
</references>
|
|
69
|
-
|
|
70
|
-
</block>
|
|
64
|
+
</fbdocumentation:DesignDecisions>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — Diagnostics
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.Diagnostics-->
|
|
3
|
+
<fbdocumentation:Diagnostics xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,12 +17,14 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
FatBlock-owned and shared diagnostic codes
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
Owned / emitted by this package:
|
|
32
28
|
• BML_FATBLOCK_SRC_REQUIRED — missing srcDir
|
|
33
29
|
• BML_FATBLOCK_HOST_NOT_FOUND — host file not a registry root
|
|
34
30
|
• BML_FATBLOCK_HOST_HAS_EMBEDDED_BLOCKS — host already has embeds
|
|
@@ -36,13 +32,13 @@
|
|
|
36
32
|
• BML_FATBLOCK_EMBED_HAS_EMBEDDED_BLOCKS — candidate already has embeds
|
|
37
33
|
• BML_DUPLICATE_EMBEDDED_BLOCK — same FQN twice in candidates
|
|
38
34
|
• BML_NAMESPACE_PREFIX_COLLISION — conflicting prefix to URI
|
|
39
|
-
|
|
35
|
+
|
|
40
36
|
Shared upstream (not reimplemented here): BML_EMBEDDED_BLOCKS_ON_SUBBLOCK,
|
|
41
37
|
BML_NESTED_EMBEDDED_BLOCKS (validator); BML_NAMESPACE_UNBOUND (serializer).
|
|
42
|
-
|
|
43
|
-
Severity: all FatBlock codes are error. CLI exit: config → 2; assemble → 1
|
|
38
|
+
|
|
39
|
+
Severity: all FatBlock codes are error. CLI exit: config → 2; assemble → 1.
|
|
40
|
+
</documentation>
|
|
44
41
|
<references>
|
|
45
42
|
<see type="fbdocumentation:DesignDecisions" relation="ReadNext" />
|
|
46
43
|
</references>
|
|
47
|
-
|
|
48
|
-
</block>
|
|
44
|
+
</fbdocumentation:Diagnostics>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — EmbedAssemblyRules
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.EmbedAssemblyRules-->
|
|
3
|
+
<fbdocumentation:EmbedAssemblyRules xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,12 +17,14 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Host and embed assembly invariants (FB12–FB17)
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
FB12 srcDir required or BML_FATBLOCK_SRC_REQUIRED.
|
|
32
28
|
FB13 host missing from registry → BML_FATBLOCK_HOST_NOT_FOUND.
|
|
33
29
|
FB14 host.embeddedBlocks.length greater than 0 → BML_FATBLOCK_HOST_HAS_EMBEDDED_BLOCKS.
|
|
34
30
|
FB15 duplicate candidate FQN → BML_DUPLICATE_EMBEDDED_BLOCK.
|
|
@@ -36,11 +32,11 @@
|
|
|
36
32
|
embed with non-empty embeddedBlocks → BML_FATBLOCK_EMBED_HAS_EMBEDDED_BLOCKS.
|
|
37
33
|
FB17 clone each embed; force cloned.embeddedBlocks empty; preserve subBlocks[];
|
|
38
34
|
attach to host clone in sorted FQN order; merge namespaces; any error aborts document null.
|
|
39
|
-
|
|
35
|
+
|
|
40
36
|
Meta-model (BOM): embeds are flat under root; Sub-Blocks forbid embeds — validator owns
|
|
41
|
-
BML_EMBEDDED_BLOCKS_ON_SUBBLOCK / BML_NESTED_EMBEDDED_BLOCKS
|
|
37
|
+
BML_EMBEDDED_BLOCKS_ON_SUBBLOCK / BML_NESTED_EMBEDDED_BLOCKS.
|
|
38
|
+
</documentation>
|
|
42
39
|
<references>
|
|
43
40
|
<see type="fbdocumentation:NamespaceMergeRules" relation="ReadNext" />
|
|
44
41
|
</references>
|
|
45
|
-
|
|
46
|
-
</block>
|
|
42
|
+
</fbdocumentation:EmbedAssemblyRules>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — Introduction
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.Introduction-->
|
|
3
|
+
<fbdocumentation:Introduction xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,28 +17,30 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Purpose and scope of the FatBlock render target
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
The @blockml/fatblock-target package implements RenderTarget registry name fatblock.
|
|
32
28
|
It emits one portable .bml file with peer root blocks inlined under the host root
|
|
33
29
|
embeddedBlocks aggregation (Inline Library model).
|
|
34
|
-
|
|
30
|
+
|
|
35
31
|
This library (org.blockml.bml.target.fatblock.*) is the SSOT. TypeScript in
|
|
36
32
|
packages/fatblock-target/src/ implements it. Tests in packages/fatblock-target/test/
|
|
37
33
|
encode behavioral contracts.
|
|
38
|
-
|
|
34
|
+
|
|
39
35
|
V1 is a folder-bundle target: document scope, srcDir (--src) peer pool
|
|
40
36
|
(CLI defaults host and srcDir from package.json blockml.library),
|
|
41
37
|
optional include FQN filters. Not transitive dependency closure (that is v2).
|
|
42
|
-
|
|
38
|
+
|
|
43
39
|
Pipeline: ResolveOptions → AssembleFatDocument → SerializeFatDocument → {hostFqn}.fat.bml.
|
|
44
|
-
Host CLI wiring (flags, exit codes) lives in org.blockml.bml.cli
|
|
40
|
+
Host CLI wiring (flags, exit codes) lives in org.blockml.bml.cli.*
|
|
41
|
+
</documentation>
|
|
45
42
|
<references>
|
|
46
43
|
<see type="fbdocumentation:LayerSeparation" relation="ReadNext" />
|
|
47
44
|
<see type="fbcap:Render" relation="SeeAlso" />
|
|
48
45
|
</references>
|
|
49
|
-
|
|
50
|
-
</block>
|
|
46
|
+
</fbdocumentation:Introduction>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — LayerSeparation
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.LayerSeparation-->
|
|
3
|
+
<fbdocumentation:LayerSeparation xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,29 +17,31 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
FatBlock vs BOM vs serializer vs CLI
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
Layers relevant to FatBlock:
|
|
28
|
+
|
|
33
29
|
org.blockml.bml.target.fatblock.* (this package) — candidate collection, include filter,
|
|
34
30
|
assemble/merge, FatBlockOptions, FatBlock diagnostics, output basename.
|
|
35
|
-
|
|
31
|
+
|
|
36
32
|
org.blockml.bml.bom.* — embeddedBlocks meta-model; root-only embeds; no nested embeds
|
|
37
33
|
on Sub-Blocks (validator). FatBlock consumes BomDocument / BlockDefinition.
|
|
38
|
-
|
|
34
|
+
|
|
39
35
|
org.blockml.bml.compiler.serializer.* — canonical XML emit of the assembled document.
|
|
40
|
-
|
|
36
|
+
|
|
41
37
|
@blockml/compiler — RenderTarget contract, compileToOutput, document scope.
|
|
42
|
-
|
|
38
|
+
|
|
43
39
|
org.blockml.bml.cli.* — --src / --include / --out / --per-package, default host
|
|
44
40
|
from package.json blockml.library, write {hostFqn}.fat.bml at the invocation directory.
|
|
45
|
-
|
|
46
|
-
Sibling targets (blockdoc, xsd) and domain SCAD are out of scope
|
|
41
|
+
|
|
42
|
+
Sibling targets (blockdoc, xsd) and domain SCAD are out of scope.
|
|
43
|
+
</documentation>
|
|
47
44
|
<references>
|
|
48
45
|
<see type="fbdocumentation:ArchitectureOverview" relation="ReadNext" />
|
|
49
46
|
</references>
|
|
50
|
-
|
|
51
|
-
</block>
|
|
47
|
+
</fbdocumentation:LayerSeparation>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — NamespaceMergeRules
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.NamespaceMergeRules-->
|
|
3
|
+
<fbdocumentation:NamespaceMergeRules xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,20 +17,22 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Stage-2 namespace merge before emit (FB9–FB11, D2)
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
FB9: merge host bindings first, then each embed source in candidate order.
|
|
32
28
|
FB11: missing bindings default empty prefix to http://blockml.org/bml.
|
|
33
29
|
FB10: same prefix, different URI → BML_NAMESPACE_PREFIX_COLLISION (no silent rewrite;
|
|
34
30
|
no inventing new prefixes). First writer wins for new prefixes.
|
|
35
|
-
|
|
31
|
+
|
|
36
32
|
Aligns with docs/19 Definition / bml:xml D2 consumer rules. Serializer may still emit
|
|
37
|
-
BML_NAMESPACE_UNBOUND if a QName lacks a binding after merge
|
|
33
|
+
BML_NAMESPACE_UNBOUND if a QName lacks a binding after merge.
|
|
34
|
+
</documentation>
|
|
38
35
|
<references>
|
|
39
36
|
<see type="fbdocumentation:OutputLayout" relation="ReadNext" />
|
|
40
37
|
</references>
|
|
41
|
-
|
|
42
|
-
</block>
|
|
38
|
+
</fbdocumentation:NamespaceMergeRules>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — OutputLayout
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.OutputLayout-->
|
|
3
|
+
<fbdocumentation:OutputLayout xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,18 +17,20 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Output file naming and host write path
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
FB18 FatOutputBasename: host FQN → {fqn}.fat.bml.
|
|
32
28
|
Target returns relative path only; CLI writes to the invocation directory or --out.
|
|
33
|
-
|
|
29
|
+
|
|
34
30
|
Single file per render. Content is canonical BML XML from SerializeFatDocument
|
|
35
|
-
(indent 2, no XML declaration by serializer defaults)
|
|
31
|
+
(indent 2, no XML declaration by serializer defaults).
|
|
32
|
+
</documentation>
|
|
36
33
|
<references>
|
|
37
34
|
<see type="fbdocumentation:Diagnostics" relation="ReadNext" />
|
|
38
35
|
</references>
|
|
39
|
-
|
|
40
|
-
</block>
|
|
36
|
+
</fbdocumentation:OutputLayout>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — PackageOwnership
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.PackageOwnership-->
|
|
3
|
+
<fbdocumentation:PackageOwnership xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,26 +17,28 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Who owns FatBlock vs CLI vs BOM
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
@blockml/fatblock-target owns: this BML library; TypeScript assemble/filter/merge/emit;
|
|
32
28
|
FatBlockOptions; BML_FATBLOCK_* diagnostics; output basename algorithm.
|
|
33
|
-
|
|
29
|
+
|
|
34
30
|
@blockml/cli owns: --src / --include / --out; default host from package.json
|
|
35
31
|
blockml.library; TypeRegistry from the package library graph plus core; writing
|
|
36
32
|
{hostFqn}.fat.bml at the invocation directory; exit codes.
|
|
37
33
|
See org.blockml.bml.cli.documentation.CompileCommand.
|
|
38
|
-
|
|
34
|
+
|
|
39
35
|
@blockml/bom owns: embeddedBlocks shape and language invariants.
|
|
40
|
-
|
|
36
|
+
|
|
41
37
|
@blockml/serializer owns: XML emit of the assembled BomDocument.
|
|
42
|
-
|
|
43
|
-
@blockml/compiler owns: RenderTarget contract and document compile scope
|
|
38
|
+
|
|
39
|
+
@blockml/compiler owns: RenderTarget contract and document compile scope.
|
|
40
|
+
</documentation>
|
|
44
41
|
<references>
|
|
45
42
|
<see type="fbdocumentation:ScopeExclusions" relation="ReadNext" />
|
|
46
43
|
</references>
|
|
47
|
-
|
|
48
|
-
</block>
|
|
44
|
+
</fbdocumentation:PackageOwnership>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
"
|
|
1
|
+
<!--FatBlock Documentation — PublicApi
|
|
2
|
+
FQN: org.blockml.bml.target.fatblock.documentation.PublicApi-->
|
|
3
|
+
<fbdocumentation:PublicApi xmlns="http://blockml.org/bml"
|
|
10
4
|
xmlns:blockml="org.blockml.bml"
|
|
11
5
|
xmlns:bom="org.blockml.bml.bom"
|
|
12
6
|
xmlns:bomblock="org.blockml.bml.bom.block"
|
|
@@ -23,12 +17,14 @@
|
|
|
23
17
|
xmlns:type="org.blockml.bml.type"
|
|
24
18
|
xmlns:doc="org.blockml.bml.documentation">
|
|
25
19
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<is>
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
<baseType>
|
|
21
|
+
core:Documentation
|
|
22
|
+
</baseType>
|
|
23
|
+
<is>
|
|
24
|
+
Public TypeScript and capability surface
|
|
25
|
+
</is>
|
|
26
|
+
<documentation>
|
|
27
|
+
Package @blockml/fatblock-target exports:
|
|
32
28
|
• FatBlockTarget — RenderTarget; name fatblock; accepts document;
|
|
33
29
|
validateRequest; render → FatBlockRenderOutput
|
|
34
30
|
• FatBlockOptions / DEFAULT_FATBLOCK_OPTIONS / resolveFatBlockOptions
|
|
@@ -36,13 +32,13 @@
|
|
|
36
32
|
• collectCandidateFqns / rootFqnsByFilePath
|
|
37
33
|
• filterByIncludes / matchesIncludePattern
|
|
38
34
|
• mergeNamespaceBindings / cloneBlockDefinition / fatOutputBasename
|
|
39
|
-
|
|
40
|
-
BML: fbcap:Render, ValidateRequest, AssembleFatDocument, api/FatBlockOptions
|
|
35
|
+
|
|
36
|
+
BML: fbcap:Render, ValidateRequest, AssembleFatDocument, api/FatBlockOptions.
|
|
37
|
+
</documentation>
|
|
41
38
|
<references>
|
|
42
39
|
<see type="fbdocumentation:CandidateCollection" relation="ReadNext" />
|
|
43
40
|
<see type="fbcap:Render" relation="Defines" />
|
|
44
41
|
<see type="fbapi:FatBlockOptions" relation="Defines" />
|
|
45
42
|
<see type="fbcap:AssembleFatDocument" relation="Defines" />
|
|
46
43
|
</references>
|
|
47
|
-
|
|
48
|
-
</block>
|
|
44
|
+
</fbdocumentation:PublicApi>
|