@blockml/fatblock-target 0.1.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 (70) hide show
  1. package/blocks/org/blockml/bml/target/fatblock/FatblockType.bml +33 -0
  2. package/blocks/org/blockml/bml/target/fatblock/Library.bml +101 -0
  3. package/blocks/org/blockml/bml/target/fatblock/README.bml +57 -0
  4. package/blocks/org/blockml/bml/target/fatblock/api/AssembleFatDocumentResult.bml +35 -0
  5. package/blocks/org/blockml/bml/target/fatblock/api/FatBlockOptions.bml +42 -0
  6. package/blocks/org/blockml/bml/target/fatblock/api/FatBlockRenderOutput.bml +36 -0
  7. package/blocks/org/blockml/bml/target/fatblock/capability/AssembleFatDocument.bml +54 -0
  8. package/blocks/org/blockml/bml/target/fatblock/capability/CloneBlockDefinition.bml +41 -0
  9. package/blocks/org/blockml/bml/target/fatblock/capability/CollectCandidateFqns.bml +57 -0
  10. package/blocks/org/blockml/bml/target/fatblock/capability/FatOutputBasename.bml +45 -0
  11. package/blocks/org/blockml/bml/target/fatblock/capability/FilterByIncludes.bml +48 -0
  12. package/blocks/org/blockml/bml/target/fatblock/capability/MatchesIncludePattern.bml +44 -0
  13. package/blocks/org/blockml/bml/target/fatblock/capability/MergeNamespaceBindings.bml +48 -0
  14. package/blocks/org/blockml/bml/target/fatblock/capability/Render.bml +49 -0
  15. package/blocks/org/blockml/bml/target/fatblock/capability/ResolveOptions.bml +46 -0
  16. package/blocks/org/blockml/bml/target/fatblock/capability/RootFqnsByFilePath.bml +45 -0
  17. package/blocks/org/blockml/bml/target/fatblock/capability/SerializeFatDocument.bml +48 -0
  18. package/blocks/org/blockml/bml/target/fatblock/capability/ValidateRequest.bml +45 -0
  19. package/blocks/org/blockml/bml/target/fatblock/config/DefaultFatBlockOptions.bml +35 -0
  20. package/blocks/org/blockml/bml/target/fatblock/config/FatBlockConstants.bml +38 -0
  21. package/blocks/org/blockml/bml/target/fatblock/documentation/ArchitectureOverview.bml +53 -0
  22. package/blocks/org/blockml/bml/target/fatblock/documentation/CandidateCollection.bml +45 -0
  23. package/blocks/org/blockml/bml/target/fatblock/documentation/DesignDecisions.bml +51 -0
  24. package/blocks/org/blockml/bml/target/fatblock/documentation/Diagnostics.bml +48 -0
  25. package/blocks/org/blockml/bml/target/fatblock/documentation/EmbedAssemblyRules.bml +46 -0
  26. package/blocks/org/blockml/bml/target/fatblock/documentation/Introduction.bml +49 -0
  27. package/blocks/org/blockml/bml/target/fatblock/documentation/LayerSeparation.bml +50 -0
  28. package/blocks/org/blockml/bml/target/fatblock/documentation/NamespaceMergeRules.bml +42 -0
  29. package/blocks/org/blockml/bml/target/fatblock/documentation/OutputLayout.bml +40 -0
  30. package/blocks/org/blockml/bml/target/fatblock/documentation/PackageOwnership.bml +47 -0
  31. package/blocks/org/blockml/bml/target/fatblock/documentation/PublicApi.bml +48 -0
  32. package/blocks/org/blockml/bml/target/fatblock/documentation/ScopeExclusions.bml +40 -0
  33. package/blocks/org/blockml/bml/target/fatblock/documentation/V1Scope.bml +49 -0
  34. package/dist/assemble-fat-document.d.ts +13 -0
  35. package/dist/assemble-fat-document.d.ts.map +1 -0
  36. package/dist/assemble-fat-document.js +110 -0
  37. package/dist/assemble-fat-document.js.map +1 -0
  38. package/dist/clone-block.d.ts +3 -0
  39. package/dist/clone-block.d.ts.map +1 -0
  40. package/dist/clone-block.js +4 -0
  41. package/dist/clone-block.js.map +1 -0
  42. package/dist/collect-candidates.d.ts +8 -0
  43. package/dist/collect-candidates.d.ts.map +1 -0
  44. package/dist/collect-candidates.js +41 -0
  45. package/dist/collect-candidates.js.map +1 -0
  46. package/dist/fat-output-path.d.ts +2 -0
  47. package/dist/fat-output-path.d.ts.map +1 -0
  48. package/dist/fat-output-path.js +9 -0
  49. package/dist/fat-output-path.js.map +1 -0
  50. package/dist/fatblock-target.d.ts +16 -0
  51. package/dist/fatblock-target.d.ts.map +1 -0
  52. package/dist/fatblock-target.js +48 -0
  53. package/dist/fatblock-target.js.map +1 -0
  54. package/dist/filter-includes.d.ts +3 -0
  55. package/dist/filter-includes.d.ts.map +1 -0
  56. package/dist/filter-includes.js +14 -0
  57. package/dist/filter-includes.js.map +1 -0
  58. package/dist/index.d.ts +9 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +9 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/merge-namespace-bindings.d.ts +10 -0
  63. package/dist/merge-namespace-bindings.d.ts.map +1 -0
  64. package/dist/merge-namespace-bindings.js +23 -0
  65. package/dist/merge-namespace-bindings.js.map +1 -0
  66. package/dist/options.d.ts +13 -0
  67. package/dist/options.d.ts.map +1 -0
  68. package/dist/options.js +13 -0
  69. package/dist/options.js.map +1 -0
  70. package/package.json +44 -0
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export { FatBlockTarget } from "./fatblock-target.js";
2
+ export { resolveFatBlockOptions, DEFAULT_FATBLOCK_OPTIONS, } from "./options.js";
3
+ export { collectCandidateFqns, rootFqnsByFilePath } from "./collect-candidates.js";
4
+ export { filterByIncludes, matchesIncludePattern } from "./filter-includes.js";
5
+ export { mergeNamespaceBindings } from "./merge-namespace-bindings.js";
6
+ export { assembleFatDocument, serializeFatDocument, } from "./assemble-fat-document.js";
7
+ export { fatOutputBasename } from "./fat-output-path.js";
8
+ export { cloneBlockDefinition } from "./clone-block.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA6B,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAEL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Diagnostic } from "@blockml/bom";
2
+ export interface MergeNamespaceResult {
3
+ bindings: Record<string, string>;
4
+ diagnostics: Diagnostic[];
5
+ }
6
+ export declare function mergeNamespaceBindings(sources: Array<{
7
+ file: string;
8
+ bindings?: Record<string, string>;
9
+ }>): MergeNamespaceResult;
10
+ //# sourceMappingURL=merge-namespace-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-namespace-bindings.d.ts","sourceRoot":"","sources":["../src/merge-namespace-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,GAClE,oBAAoB,CAsBtB"}
@@ -0,0 +1,23 @@
1
+ export function mergeNamespaceBindings(sources) {
2
+ const merged = {};
3
+ const diagnostics = [];
4
+ for (const source of sources) {
5
+ const bindings = source.bindings ?? { "": "http://blockml.org/bml" };
6
+ for (const [prefix, uri] of Object.entries(bindings)) {
7
+ const existing = merged[prefix];
8
+ if (existing !== undefined && existing !== uri) {
9
+ diagnostics.push({
10
+ severity: "error",
11
+ code: "BML_NAMESPACE_PREFIX_COLLISION",
12
+ message: `Prefix "${prefix || "(default)"}" maps to both ${existing} and ${uri}`,
13
+ source: { file: source.file, line: 1, column: 1 },
14
+ });
15
+ }
16
+ else if (existing === undefined) {
17
+ merged[prefix] = uri;
18
+ }
19
+ }
20
+ }
21
+ return { bindings: merged, diagnostics };
22
+ }
23
+ //# sourceMappingURL=merge-namespace-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-namespace-bindings.js","sourceRoot":"","sources":["../src/merge-namespace-bindings.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,sBAAsB,CACpC,OAAmE;IAEnE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,wBAAwB,EAAE,CAAC;QACrE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC/C,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,WAAW,MAAM,IAAI,WAAW,kBAAkB,QAAQ,QAAQ,GAAG,EAAE;oBAChF,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;iBAClD,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface FatBlockOptions {
2
+ /** Corpus pool root — required for v1 collection */
3
+ srcDir?: string;
4
+ /** Project root for resolving srcDir paths */
5
+ rootDir?: string;
6
+ /** Optional FQN filters: exact FQN or glob (e.g. com.foo.*) */
7
+ include?: string[];
8
+ /** v1: only error supported */
9
+ embeddedBlocksStrategy?: "error";
10
+ }
11
+ export declare const DEFAULT_FATBLOCK_OPTIONS: Required<Pick<FatBlockOptions, "embeddedBlocksStrategy">>;
12
+ export declare function resolveFatBlockOptions(targetOptions?: unknown): Required<Pick<FatBlockOptions, "embeddedBlocksStrategy">> & FatBlockOptions;
13
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC7C,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAGhD,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,aAAa,CAAC,EAAE,OAAO,GACtB,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC,GAAG,eAAe,CAS7E"}
@@ -0,0 +1,13 @@
1
+ export const DEFAULT_FATBLOCK_OPTIONS = {
2
+ embeddedBlocksStrategy: "error",
3
+ };
4
+ export function resolveFatBlockOptions(targetOptions) {
5
+ const opts = (targetOptions ?? {});
6
+ return {
7
+ embeddedBlocksStrategy: opts.embeddedBlocksStrategy ?? DEFAULT_FATBLOCK_OPTIONS.embeddedBlocksStrategy,
8
+ ...(opts.srcDir !== undefined ? { srcDir: opts.srcDir } : {}),
9
+ ...(opts.rootDir !== undefined ? { rootDir: opts.rootDir } : {}),
10
+ ...(opts.include !== undefined ? { include: opts.include } : {}),
11
+ };
12
+ }
13
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,wBAAwB,GAEjC;IACF,sBAAsB,EAAE,OAAO;CAChC,CAAC;AAEF,MAAM,UAAU,sBAAsB,CACpC,aAAuB;IAEvB,MAAM,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,CAAoB,CAAC;IACtD,OAAO;QACL,sBAAsB,EACpB,IAAI,CAAC,sBAAsB,IAAI,wBAAwB,CAAC,sBAAsB;QAChF,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@blockml/fatblock-target",
3
+ "version": "0.1.0",
4
+ "description": "BlockML FatBlock render target — portable .bml folder bundles",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/pks5/blockml-toolchain.git",
9
+ "directory": "packages/fatblock-target"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "type": "module",
15
+ "sideEffects": false,
16
+ "blockml": {
17
+ "library": "./blocks/org/blockml/bml/target/fatblock/Library.bml"
18
+ },
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js"
23
+ }
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "blocks"
28
+ ],
29
+ "scripts": {
30
+ "build": "tsc --build",
31
+ "prepublishOnly": "npm run build",
32
+ "test": "vitest run packages/fatblock-target/test"
33
+ },
34
+ "dependencies": {
35
+ "@blockml/bom": "^0.1.0",
36
+ "@blockml/compiler": "^0.1.0",
37
+ "@blockml/framework": "^0.1.0",
38
+ "@blockml/parser": "^0.1.0",
39
+ "@blockml/serializer": "^0.1.0"
40
+ },
41
+ "engines": {
42
+ "node": ">=20"
43
+ }
44
+ }