@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.
Files changed (47) hide show
  1. package/blocks/com/machineblocks/bml/cli/Library.bml +52 -0
  2. package/blocks/com/machineblocks/bml/cli/README.bml +31 -0
  3. package/blocks/com/machineblocks/bml/cli/documentation/Commands.bml +106 -0
  4. package/blocks/com/machineblocks/bml/cli/documentation/Configuration.bml +54 -0
  5. package/blocks/com/machineblocks/bml/cli/documentation/DualCliModel.bml +51 -0
  6. package/blocks/com/machineblocks/bml/cli/documentation/Installation.bml +52 -0
  7. package/blocks/com/machineblocks/bml/cli/documentation/Introduction.bml +39 -0
  8. package/blocks/com/machineblocks/bml/cli/documentation/Responsibilities.bml +50 -0
  9. package/blocks/com/machineblocks/bml/cli/documentation/TargetBootstrap.bml +45 -0
  10. package/dist/args.d.ts +28 -0
  11. package/dist/args.d.ts.map +1 -0
  12. package/dist/args.js +139 -0
  13. package/dist/args.js.map +1 -0
  14. package/dist/cli.d.ts +3 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +9 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/compile-command.d.ts +7 -0
  19. package/dist/compile-command.d.ts.map +1 -0
  20. package/dist/compile-command.js +213 -0
  21. package/dist/compile-command.js.map +1 -0
  22. package/dist/execute.d.ts +4 -0
  23. package/dist/execute.d.ts.map +1 -0
  24. package/dist/execute.js +22 -0
  25. package/dist/execute.js.map +1 -0
  26. package/dist/help.d.ts +4 -0
  27. package/dist/help.d.ts.map +1 -0
  28. package/dist/help.js +39 -0
  29. package/dist/help.js.map +1 -0
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +2 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/init-command.d.ts +4 -0
  35. package/dist/init-command.d.ts.map +1 -0
  36. package/dist/init-command.js +121 -0
  37. package/dist/init-command.js.map +1 -0
  38. package/dist/output-gate.d.ts +11 -0
  39. package/dist/output-gate.d.ts.map +1 -0
  40. package/dist/output-gate.js +76 -0
  41. package/dist/output-gate.js.map +1 -0
  42. package/dist/validate-command.d.ts +4 -0
  43. package/dist/validate-command.d.ts.map +1 -0
  44. package/dist/validate-command.js +47 -0
  45. package/dist/validate-command.js.map +1 -0
  46. package/package.json +45 -4
  47. 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.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
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
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.