@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.
- package/blocks/org/blockml/bml/target/fatblock/FatblockType.bml +33 -0
- package/blocks/org/blockml/bml/target/fatblock/Library.bml +101 -0
- package/blocks/org/blockml/bml/target/fatblock/README.bml +57 -0
- package/blocks/org/blockml/bml/target/fatblock/api/AssembleFatDocumentResult.bml +35 -0
- package/blocks/org/blockml/bml/target/fatblock/api/FatBlockOptions.bml +42 -0
- package/blocks/org/blockml/bml/target/fatblock/api/FatBlockRenderOutput.bml +36 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/AssembleFatDocument.bml +54 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/CloneBlockDefinition.bml +41 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/CollectCandidateFqns.bml +57 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/FatOutputBasename.bml +45 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/FilterByIncludes.bml +48 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/MatchesIncludePattern.bml +44 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/MergeNamespaceBindings.bml +48 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/Render.bml +49 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/ResolveOptions.bml +46 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/RootFqnsByFilePath.bml +45 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/SerializeFatDocument.bml +48 -0
- package/blocks/org/blockml/bml/target/fatblock/capability/ValidateRequest.bml +45 -0
- package/blocks/org/blockml/bml/target/fatblock/config/DefaultFatBlockOptions.bml +35 -0
- package/blocks/org/blockml/bml/target/fatblock/config/FatBlockConstants.bml +38 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/ArchitectureOverview.bml +53 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/CandidateCollection.bml +45 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/DesignDecisions.bml +51 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/Diagnostics.bml +48 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/EmbedAssemblyRules.bml +46 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/Introduction.bml +49 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/LayerSeparation.bml +50 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/NamespaceMergeRules.bml +42 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/OutputLayout.bml +40 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/PackageOwnership.bml +47 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/PublicApi.bml +48 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/ScopeExclusions.bml +40 -0
- package/blocks/org/blockml/bml/target/fatblock/documentation/V1Scope.bml +49 -0
- package/dist/assemble-fat-document.d.ts +13 -0
- package/dist/assemble-fat-document.d.ts.map +1 -0
- package/dist/assemble-fat-document.js +110 -0
- package/dist/assemble-fat-document.js.map +1 -0
- package/dist/clone-block.d.ts +3 -0
- package/dist/clone-block.d.ts.map +1 -0
- package/dist/clone-block.js +4 -0
- package/dist/clone-block.js.map +1 -0
- package/dist/collect-candidates.d.ts +8 -0
- package/dist/collect-candidates.d.ts.map +1 -0
- package/dist/collect-candidates.js +41 -0
- package/dist/collect-candidates.js.map +1 -0
- package/dist/fat-output-path.d.ts +2 -0
- package/dist/fat-output-path.d.ts.map +1 -0
- package/dist/fat-output-path.js +9 -0
- package/dist/fat-output-path.js.map +1 -0
- package/dist/fatblock-target.d.ts +16 -0
- package/dist/fatblock-target.d.ts.map +1 -0
- package/dist/fatblock-target.js +48 -0
- package/dist/fatblock-target.js.map +1 -0
- package/dist/filter-includes.d.ts +3 -0
- package/dist/filter-includes.d.ts.map +1 -0
- package/dist/filter-includes.js +14 -0
- package/dist/filter-includes.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/merge-namespace-bindings.d.ts +10 -0
- package/dist/merge-namespace-bindings.d.ts.map +1 -0
- package/dist/merge-namespace-bindings.js +23 -0
- package/dist/merge-namespace-bindings.js.map +1 -0
- package/dist/options.d.ts +13 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +13 -0
- package/dist/options.js.map +1 -0
- 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"}
|
package/dist/options.js
ADDED
|
@@ -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
|
+
}
|