@machineblocks/cli 0.0.0-stage → 0.1.1
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/com/machineblocks/bml/cli/Library.bml +52 -0
- package/blocks/com/machineblocks/bml/cli/README.bml +31 -0
- package/blocks/com/machineblocks/bml/cli/documentation/Commands.bml +106 -0
- package/blocks/com/machineblocks/bml/cli/documentation/Configuration.bml +54 -0
- package/blocks/com/machineblocks/bml/cli/documentation/DualCliModel.bml +51 -0
- package/blocks/com/machineblocks/bml/cli/documentation/Installation.bml +52 -0
- package/blocks/com/machineblocks/bml/cli/documentation/Introduction.bml +39 -0
- package/blocks/com/machineblocks/bml/cli/documentation/Responsibilities.bml +50 -0
- package/blocks/com/machineblocks/bml/cli/documentation/TargetBootstrap.bml +45 -0
- package/dist/args.d.ts +28 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +139 -0
- package/dist/args.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +9 -0
- package/dist/cli.js.map +1 -0
- package/dist/compile-command.d.ts +7 -0
- package/dist/compile-command.d.ts.map +1 -0
- package/dist/compile-command.js +213 -0
- package/dist/compile-command.js.map +1 -0
- package/dist/execute.d.ts +4 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +22 -0
- package/dist/execute.js.map +1 -0
- package/dist/help.d.ts +4 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +39 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/init-command.d.ts +4 -0
- package/dist/init-command.d.ts.map +1 -0
- package/dist/init-command.js +121 -0
- package/dist/init-command.js.map +1 -0
- package/dist/output-gate.d.ts +11 -0
- package/dist/output-gate.d.ts.map +1 -0
- package/dist/output-gate.js +76 -0
- package/dist/output-gate.js.map +1 -0
- package/dist/validate-command.d.ts +4 -0
- package/dist/validate-command.d.ts.map +1 -0
- package/dist/validate-command.js +47 -0
- package/dist/validate-command.js.map +1 -0
- package/package.json +45 -4
- package/README.md +0 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { loadConfig } from "@blockml/cli";
|
|
4
|
+
import { compileBmlToBom, validateRegistryDocuments } from "@blockml/compiler";
|
|
5
|
+
import { bootstrapFullProjectRegistry, projectSourceRoots, registryFilesUnderRoots, rootFqnByFilePath, } from "@blockml/framework";
|
|
6
|
+
export function runValidate(args, rootDir) {
|
|
7
|
+
let config;
|
|
8
|
+
try {
|
|
9
|
+
config = loadConfig(rootDir);
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
return { code: 2, lines: [error instanceof Error ? error.message : String(error)] };
|
|
13
|
+
}
|
|
14
|
+
const srcDir = config.srcDir ?? "blocks";
|
|
15
|
+
const bootstrap = bootstrapFullProjectRegistry({
|
|
16
|
+
rootDir,
|
|
17
|
+
srcDir,
|
|
18
|
+
libraries: config.libraries ?? [],
|
|
19
|
+
});
|
|
20
|
+
if (args.file !== undefined) {
|
|
21
|
+
const filePath = resolve(rootDir, args.file);
|
|
22
|
+
if (!existsSync(filePath)) {
|
|
23
|
+
return { code: 2, lines: [`File not found: ${args.file}`] };
|
|
24
|
+
}
|
|
25
|
+
const parsed = compileBmlToBom({ source: readFileSync(filePath, "utf8"), filePath }, { typeRegistry: bootstrap.registry, rootDir });
|
|
26
|
+
return outcome([...bootstrap.diagnostics, ...parsed.diagnostics], 1);
|
|
27
|
+
}
|
|
28
|
+
const registryFiles = [...rootFqnByFilePath(bootstrap.registry).keys()];
|
|
29
|
+
const files = args.all
|
|
30
|
+
? registryFiles
|
|
31
|
+
: registryFilesUnderRoots(bootstrap.registry, projectSourceRoots(rootDir, srcDir));
|
|
32
|
+
const validated = validateRegistryDocuments(bootstrap.registry, files);
|
|
33
|
+
return outcome([...bootstrap.diagnostics, ...validated.diagnostics], validated.blocksTested);
|
|
34
|
+
}
|
|
35
|
+
function outcome(diagnostics, blocksTested) {
|
|
36
|
+
const failed = diagnostics.some((diagnostic) => diagnostic.severity === "error");
|
|
37
|
+
const lines = diagnostics.map((diagnostic) => {
|
|
38
|
+
const source = diagnostic.source;
|
|
39
|
+
const where = source?.file ? `${source.file}:${source.line}:${source.column} ` : "";
|
|
40
|
+
return `${where}${diagnostic.code}: ${diagnostic.message}`;
|
|
41
|
+
});
|
|
42
|
+
lines.push(failed
|
|
43
|
+
? `Validated ${blocksTested} block(s) with errors.`
|
|
44
|
+
: `Validated ${blocksTested} block(s).`);
|
|
45
|
+
return { code: failed ? 1 : 0, lines };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=validate-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../src/validate-command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@machineblocks/cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "MachineBlocks host CLI — simplified BlockML entry that renders BML to SCAD",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"bin": {
|
|
11
|
+
"machineblocks": "./dist/cli.js"
|
|
12
|
+
},
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"blockml": {
|
|
15
|
+
"library": "./blocks/com/machineblocks/bml/cli/Library.bml"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"blocks"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc --build",
|
|
29
|
+
"prepublishOnly": "npm run build",
|
|
30
|
+
"test": "vitest run --root ../.. packages/machineblocks-cli/test"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@blockml/block-render-engine": "^0.1.1",
|
|
34
|
+
"@blockml/builder": "^0.9.14",
|
|
35
|
+
"@blockml/cli": "^0.9.14",
|
|
36
|
+
"@blockml/compiler": "^0.9.14",
|
|
37
|
+
"@blockml/core": "^1.4.5",
|
|
38
|
+
"@blockml/framework": "^0.9.14",
|
|
39
|
+
"@blockml/parser": "^0.9.14",
|
|
40
|
+
"@blockml/serializer": "^0.9.14",
|
|
41
|
+
"@machineblocks/core": "^3.0.0-A4",
|
|
42
|
+
"@machineblocks/render-target": "^0.1.1"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=20"
|
|
46
|
+
}
|
|
47
|
+
}
|
package/README.md
DELETED