@blockml/fatblock-target 0.7.0 → 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.
@@ -29,19 +29,19 @@
29
29
 
30
30
  <documentation>
31
31
  Canonical FatBlock specification for BlockML — registry name fatblock, folder-pool
32
- candidates, embed assembly, namespace merge, Host.fat.bml (FB1–FB20). TypeScript in
32
+ candidates, embed assembly, namespace merge, {hostFqn}.fat.bml (FB1–FB20). TypeScript in
33
33
  packages/fatblock-target/src/ implements this library. Membership is defined
34
34
  exclusively by this blocks list.
35
35
  </documentation>
36
36
 
37
- <version>0.7.0</version>
37
+ <version>0.8.0</version>
38
38
 
39
39
  <language>
40
40
  <English />
41
41
  </language>
42
42
 
43
43
  <properties>
44
- <description>
44
+ <description override="true">
45
45
  <value>FatBlock render target library</value>
46
46
  </description>
47
47
  </properties>
@@ -36,7 +36,7 @@
36
36
  Start reading at org.blockml.bml.target.fatblock.documentation.Introduction (ReadNext chain).
37
37
 
38
38
  V1: folder-bundle document target — host .bml plus peer roots under --src into one
39
- Host.fat.bml with flat embeddedBlocks. Transitive closure is planned for v2.
39
+ {hostFqn}.fat.bml with flat embeddedBlocks. Transitive closure is planned for v2.
40
40
 
41
41
  Layer separation:
42
42
  • org.blockml.bml.bom.* — embeddedBlocks meta-model
@@ -27,7 +27,7 @@
27
27
  <baseType>fatblock:FatblockType</baseType>
28
28
  <is>Single-file fat .bml RenderOutput with diagnostics</is>
29
29
 
30
- <documentation>files[] typically one Host.fat.bml entry. diagnostics optional; info severity stripped on success path.</documentation>
30
+ <documentation>files[] typically one {hostFqn}.fat.bml entry. diagnostics optional; info severity stripped on success path.</documentation>
31
31
  <properties>
32
32
  <files type="type:Text"><documentation>Array of { path, content }. (required)</documentation></files>
33
33
  <diagnostics type="type:Text"><documentation>Diagnostic list from assemble and serialize. (optional)</documentation></diagnostics>
@@ -25,18 +25,18 @@
25
25
  <name>FatOutputBasename</name>
26
26
  <type>fbcap:FatOutputBasename</type>
27
27
  <baseType>core:Capability</baseType>
28
- <is>Derive output filename from host path</is>
28
+ <is>Derive output filename from host FQN</is>
29
29
 
30
- <documentation>FB18: if basename ends with .bml, replace with .fat.bml; else append .fat.bml. Example Host.bml to Host.fat.bml.</documentation>
30
+ <documentation>FB18: output basename is host FQN plus .fat.bml. Example org.blockml.bml.workspace.Library to org.blockml.bml.workspace.Library.fat.bml. Empty FQN yields unnamed.fat.bml.</documentation>
31
31
 
32
32
  <references>
33
33
  <see type="fbdocumentation:OutputLayout" relation="SeeAlso" />
34
34
  </references>
35
35
 
36
36
  <properties>
37
- <hostFilePath type="type:Text">
38
- <documentation>Host file path. (required)</documentation>
39
- </hostFilePath>
37
+ <hostFqn type="type:Text">
38
+ <documentation>Host block type FQN. (required)</documentation>
39
+ </hostFqn>
40
40
  <result type="type:Text">
41
41
  <documentation>Output basename. (required)</documentation>
42
42
  </result>
@@ -25,7 +25,7 @@
25
25
  <name>Render</name>
26
26
  <type>fbcap:Render</type>
27
27
  <baseType>core:Capability</baseType>
28
- <is>Public RenderTarget entry: host document to Host.fat.bml</is>
28
+ <is>Public RenderTarget entry: host document to {hostFqn}.fat.bml</is>
29
29
 
30
30
  <documentation>FB2: name fatblock; accepts document only. FB4: assemble errors or serialize errors yield empty files. Strip info diagnostics from returned list. Orchestrates ResolveOptions, AssembleFatDocument, SerializeFatDocument, FatOutputBasename.</documentation>
31
31
 
@@ -41,7 +41,7 @@
41
41
  FB11 default empty-prefix xmlns.
42
42
  FB12–FB16 assemble host/embed empty-embeds and not-found rules.
43
43
  FB17 preserve subBlocks; clear nested embeds on clone; serialize indent 2.
44
- FB18 Host.fat.bml basename.
44
+ FB18 {hostFqn}.fat.bml basename.
45
45
  FB19 V1 = folder pool not transitive closure.
46
46
  FB20 embeddedBlocksStrategy reserved; assemble hardcodes empty-embeds check.</documentation>
47
47
  <references>
@@ -36,10 +36,11 @@
36
36
  packages/fatblock-target/src/ implements it. Tests in packages/fatblock-target/test/
37
37
  encode behavioral contracts.
38
38
 
39
- V1 is a folder-bundle target: document scope, required srcDir (--src) peer pool,
39
+ V1 is a folder-bundle target: document scope, srcDir (--src) peer pool
40
+ (CLI defaults host and srcDir from package.json blockml.library),
40
41
  optional include FQN filters. Not transitive dependency closure (that is v2).
41
42
 
42
- Pipeline: ResolveOptions → AssembleFatDocument → SerializeFatDocument → Host.fat.bml.
43
+ Pipeline: ResolveOptions → AssembleFatDocument → SerializeFatDocument → {hostFqn}.fat.bml.
43
44
  Host CLI wiring (flags, exit codes) lives in org.blockml.bml.cli.*</documentation>
44
45
  <references>
45
46
  <see type="fbdocumentation:LayerSeparation" relation="ReadNext"></see>
@@ -40,7 +40,8 @@
40
40
 
41
41
  @blockml/compiler — RenderTarget contract, compileToOutput, document scope.
42
42
 
43
- org.blockml.bml.cli.* — --src / --include / --out, host file required, write Host.fat.bml.
43
+ org.blockml.bml.cli.* — --src / --include / --out / --per-package, default host
44
+ from package.json blockml.library, write {hostFqn}.fat.bml at the invocation directory.
44
45
 
45
46
  Sibling targets (blockdoc, xsd) and domain SCAD are out of scope.</documentation>
46
47
  <references>
@@ -28,8 +28,8 @@
28
28
  <baseType>core:Documentation</baseType>
29
29
  <is>Output file naming and host write path</is>
30
30
 
31
- <documentation>FB18 FatOutputBasename: Host.bmlHost.fat.bml (strip .bml, append .fat.bml).
32
- Target returns relative path only; CLI writes beside host or under --out.
31
+ <documentation>FB18 FatOutputBasename: host FQN {fqn}.fat.bml.
32
+ Target returns relative path only; CLI writes to the invocation directory or --out.
33
33
 
34
34
  Single file per render. Content is canonical BML XML from SerializeFatDocument
35
35
  (indent 2, no XML declaration by serializer defaults).</documentation>
@@ -31,8 +31,9 @@
31
31
  <documentation>@blockml/fatblock-target owns: this BML library; TypeScript assemble/filter/merge/emit;
32
32
  FatBlockOptions; BML_FATBLOCK_* diagnostics; output basename algorithm.
33
33
 
34
- @blockml/cli owns: --src / --include / --out; host file required; separate registry
35
- bootstrap for fatblock; writing Host.fat.bml; exit codes.
34
+ @blockml/cli owns: --src / --include / --out; default host from package.json
35
+ blockml.library; TypeRegistry from the package library graph plus core; writing
36
+ {hostFqn}.fat.bml at the invocation directory; exit codes.
36
37
  See org.blockml.bml.cli.documentation.CompileCommand.
37
38
 
38
39
  @blockml/bom owns: embeddedBlocks shape and language invariants.
@@ -31,11 +31,12 @@
31
31
  <documentation>V1 implemented:
32
32
  • Registry name fatblock; accepts document only
33
33
  • Required srcDir peer pool of root blocks under that directory
34
+ (CLI may default host and srcDir from package.json blockml.library)
34
35
  • Optional include exact / prefix* filters
35
36
  • Reject host or embed that already declares embeddedBlocks
36
37
  • Flat root embeddedBlocks; preserve embed subBlocks[]
37
38
  • Namespace binding union with collision errors
38
- • Serialize via @blockml/serializer indent 2 → Host.fat.bml
39
+ • Serialize via @blockml/serializer indent 2 → {hostFqn}.fat.bml
39
40
 
40
41
  Not V1 (see ScopeExclusions):
41
42
  • Transitive registry-closure candidate set (v2)
@@ -1,2 +1,3 @@
1
- export declare function fatOutputBasename(hostFilePath: string): string;
1
+ /** Output basename: host FQN + ".fat.bml". */
2
+ export declare function fatOutputBasename(hostFqn: string): string;
2
3
  //# sourceMappingURL=fat-output-path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fat-output-path.d.ts","sourceRoot":"","sources":["../src/fat-output-path.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM9D"}
1
+ {"version":3,"file":"fat-output-path.d.ts","sourceRoot":"","sources":["../src/fat-output-path.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMzD"}
@@ -1,9 +1,9 @@
1
- import { basename } from "node:path";
2
- export function fatOutputBasename(hostFilePath) {
3
- const base = basename(hostFilePath);
4
- if (base.endsWith(".bml")) {
5
- return `${base.slice(0, -4)}.fat.bml`;
1
+ /** Output basename: host FQN + ".fat.bml". */
2
+ export function fatOutputBasename(hostFqn) {
3
+ const fqn = hostFqn.trim();
4
+ if (!fqn) {
5
+ return "unnamed.fat.bml";
6
6
  }
7
- return `${base}.fat.bml`;
7
+ return `${fqn}.fat.bml`;
8
8
  }
9
9
  //# sourceMappingURL=fat-output-path.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fat-output-path.js","sourceRoot":"","sources":["../src/fat-output-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,IAAI,UAAU,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"fat-output-path.js","sourceRoot":"","sources":["../src/fat-output-path.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,GAAG,UAAU,CAAC;AAC1B,CAAC"}
@@ -37,7 +37,7 @@ export class FatBlockTarget {
37
37
  return {
38
38
  files: [
39
39
  {
40
- path: fatOutputBasename(hostFilePath),
40
+ path: fatOutputBasename(document.block.type),
41
41
  content: serialized.text,
42
42
  },
43
43
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"fatblock-target.js","sourceRoot":"","sources":["../src/fatblock-target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAOtD,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,UAAU,CAAC;IAClB,OAAO,GAAsB,CAAC,UAAU,CAAC,CAAC;IAEnD,eAAe,CAAC,OAAuB;QACrC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO;gBACL;oBACE,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,qDAAqD;oBAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;iBACjD;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,OAAuB,EAAE,GAAkB;QAChD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;QAEhD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,mBAAmB,CACnD,GAAG,CAAC,OAAO,CAAC,YAAY,EACxB,YAAY,EACZ,OAAO,EACP,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,IACE,CAAC,UAAU,CAAC,IAAI;YAChB,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAC1D,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC;aACzD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,iBAAiB,CAAC,YAAY,CAAC;oBACrC,OAAO,EAAE,UAAU,CAAC,IAAI;iBACzB;aACF;YACD,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAC7B;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"fatblock-target.js","sourceRoot":"","sources":["../src/fatblock-target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAOtD,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,UAAU,CAAC;IAClB,OAAO,GAAsB,CAAC,UAAU,CAAC,CAAC;IAEnD,eAAe,CAAC,OAAuB;QACrC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO;gBACL;oBACE,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,qDAAqD;oBAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;iBACjD;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,OAAuB,EAAE,GAAkB;QAChD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;QAEhD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,mBAAmB,CACnD,GAAG,CAAC,OAAO,CAAC,YAAY,EACxB,YAAY,EACZ,OAAO,EACP,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,IACE,CAAC,UAAU,CAAC,IAAI;YAChB,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAC1D,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC;aACzD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC5C,OAAO,EAAE,UAAU,CAAC,IAAI;iBACzB;aACF;YACD,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAC7B;SACF,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockml/fatblock-target",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "BlockML FatBlock render target — portable .bml folder bundles",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -32,12 +32,12 @@
32
32
  "test": "vitest run packages/fatblock-target/test"
33
33
  },
34
34
  "dependencies": {
35
- "@blockml/bom": "^0.7.0",
36
- "@blockml/compiler": "^0.7.0",
37
- "@blockml/core": "^1.0.5",
38
- "@blockml/framework": "^0.7.0",
39
- "@blockml/parser": "^0.7.0",
40
- "@blockml/serializer": "^0.7.0"
35
+ "@blockml/bom": "^0.8.0",
36
+ "@blockml/compiler": "^0.8.0",
37
+ "@blockml/core": "^1.0.6",
38
+ "@blockml/framework": "^0.8.0",
39
+ "@blockml/parser": "^0.8.0",
40
+ "@blockml/serializer": "^0.8.0"
41
41
  },
42
42
  "engines": {
43
43
  "node": ">=20"