@machineblocks/render-target 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/target/render/Library.bml +55 -0
- package/blocks/com/machineblocks/bml/target/render/README.bml +37 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/AssemblyPatterns.bml +47 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/CompositeRendering.bml +60 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/Customizer.bml +62 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/DomainBoundary.bml +43 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/ExpressionRenderer.bml +58 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/FileStructure.bml +42 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/FqnNaming.bml +85 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/HelperFunctions.bml +57 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/Imports.bml +49 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/Introduction.bml +43 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/LeafOptimization.bml +44 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/NativeMappings.bml +58 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/Presets.bml +50 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/PropertyRenderer.bml +50 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/RendererPipeline.bml +51 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/SerializationRules.bml +84 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/SetRendering.bml +77 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/SettingsFormat.bml +80 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/SourceMaps.bml +33 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/TargetRegistration.bml +61 -0
- package/blocks/com/machineblocks/bml/target/render/documentation/V1Scope.bml +44 -0
- package/dist/composite.d.ts +8 -0
- package/dist/composite.d.ts.map +1 -0
- package/dist/composite.js +232 -0
- package/dist/composite.js.map +1 -0
- package/dist/composition.d.ts +6 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +40 -0
- package/dist/composition.js.map +1 -0
- package/dist/diagnostics.d.ts +22 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +29 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dispatch.d.ts +13 -0
- package/dist/dispatch.d.ts.map +1 -0
- package/dist/dispatch.js +46 -0
- package/dist/dispatch.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/leaf.d.ts +4 -0
- package/dist/leaf.d.ts.map +1 -0
- package/dist/leaf.js +92 -0
- package/dist/leaf.js.map +1 -0
- package/dist/machineblocks-render-target.d.ts +14 -0
- package/dist/machineblocks-render-target.d.ts.map +1 -0
- package/dist/machineblocks-render-target.js +63 -0
- package/dist/machineblocks-render-target.js.map +1 -0
- package/dist/naming.d.ts +29 -0
- package/dist/naming.d.ts.map +1 -0
- package/dist/naming.js +120 -0
- package/dist/naming.js.map +1 -0
- package/dist/options.d.ts +8 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +26 -0
- package/dist/options.js.map +1 -0
- package/dist/paths.d.ts +6 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +55 -0
- package/dist/paths.js.map +1 -0
- package/dist/presets.d.ts +6 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +105 -0
- package/dist/presets.js.map +1 -0
- package/dist/processors.d.ts +24 -0
- package/dist/processors.d.ts.map +1 -0
- package/dist/processors.js +72 -0
- package/dist/processors.js.map +1 -0
- package/dist/serialize.d.ts +7 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/serialize.js +42 -0
- package/dist/serialize.js.map +1 -0
- package/dist/set-file.d.ts +5 -0
- package/dist/set-file.d.ts.map +1 -0
- package/dist/set-file.js +199 -0
- package/dist/set-file.js.map +1 -0
- package/dist/source-map.d.ts +13 -0
- package/dist/source-map.d.ts.map +1 -0
- package/dist/source-map.js +41 -0
- package/dist/source-map.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/package.json +41 -4
- package/README.md +0 -3
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
2
|
+
export function isIdentifier(raw) {
|
|
3
|
+
return IDENTIFIER.test(raw.trim());
|
|
4
|
+
}
|
|
5
|
+
export function scadString(value) {
|
|
6
|
+
return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
|
|
7
|
+
}
|
|
8
|
+
/** Customizer JSON stores every value as a string. Strings stay unquoted. */
|
|
9
|
+
export function presetParameterValue(value) {
|
|
10
|
+
const raw = value.value;
|
|
11
|
+
if (typeof raw === "string") {
|
|
12
|
+
return raw;
|
|
13
|
+
}
|
|
14
|
+
if (typeof raw === "boolean" || typeof raw === "number") {
|
|
15
|
+
return String(raw);
|
|
16
|
+
}
|
|
17
|
+
if (isSizeXYZ(raw)) {
|
|
18
|
+
return `[${raw.x}, ${raw.y}, ${raw.z}]`;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
export function serializeLiteral(value) {
|
|
23
|
+
const raw = value.value;
|
|
24
|
+
if (typeof raw === "boolean" || typeof raw === "number") {
|
|
25
|
+
return String(raw);
|
|
26
|
+
}
|
|
27
|
+
if (typeof raw === "string") {
|
|
28
|
+
return scadString(raw);
|
|
29
|
+
}
|
|
30
|
+
if (isSizeXYZ(raw)) {
|
|
31
|
+
return `[${raw.x}, ${raw.y}, ${raw.z}]`;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
function isSizeXYZ(value) {
|
|
36
|
+
if (value === null || typeof value !== "object") {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const record = value;
|
|
40
|
+
return typeof record.x === "number" && typeof record.y === "number" && typeof record.z === "number";
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAAC,KAAmB;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BlockDefinition } from "@blockml/bom";
|
|
2
|
+
import type { RenderOutput } from "@blockml/compiler";
|
|
3
|
+
import { type ManifestationMapping } from "./naming.js";
|
|
4
|
+
export declare function renderSetFile(block: BlockDefinition, outputRelativePath: string, outputBasePath: string, mbLibPath: string, mapping: ManifestationMapping): RenderOutput;
|
|
5
|
+
//# sourceMappingURL=set-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-file.d.ts","sourceRoot":"","sources":["../src/set-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,cAAc,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,OAAO,EAAsE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAa5H,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,YAAY,CA+Hd"}
|
package/dist/set-file.js
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { compositionChildren } from "./composition.js";
|
|
2
|
+
import { SET_PART_INCOMPLETE, errorOutput } from "./diagnostics.js";
|
|
3
|
+
import { dirnamePosix, joinPosix, relativePosix } from "./paths.js";
|
|
4
|
+
import { mapManifestation, moduleNameForManifestation, pathForManifestation } from "./naming.js";
|
|
5
|
+
import { serializeLiteral } from "./serialize.js";
|
|
6
|
+
import { withSourceMap } from "./source-map.js";
|
|
7
|
+
import { RENDER_TARGET_VERSION } from "./version.js";
|
|
8
|
+
export function renderSetFile(block, outputRelativePath, outputBasePath, mbLibPath, mapping) {
|
|
9
|
+
const source = block.source ?? { file: "", line: 1, column: 1 };
|
|
10
|
+
const placements = [];
|
|
11
|
+
for (const child of compositionChildren(block, "parts")) {
|
|
12
|
+
if (child.kind !== "blockInstance") {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const placement = placementOf(child.instance, source);
|
|
16
|
+
if ("files" in placement) {
|
|
17
|
+
return placement;
|
|
18
|
+
}
|
|
19
|
+
placements.push(placement);
|
|
20
|
+
}
|
|
21
|
+
const ordered = orderBySteps(block, placements);
|
|
22
|
+
const root = mapManifestation(block.type, mapping, "selected");
|
|
23
|
+
if (!root.ok) {
|
|
24
|
+
return errorOutput(root.code, root.message, source);
|
|
25
|
+
}
|
|
26
|
+
const moduleName = moduleNameForManifestation(root.fqn);
|
|
27
|
+
const filename = outputRelativePath.split("/").pop() ?? `${block.name}.scad`;
|
|
28
|
+
const outputDir = dirnamePosix(joinPosix(outputBasePath, outputRelativePath));
|
|
29
|
+
const typeManifestations = new Map();
|
|
30
|
+
for (const placement of ordered) {
|
|
31
|
+
if (typeManifestations.has(placement.typeFqn)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const manifested = mapManifestation(placement.typeFqn, mapping, "reference");
|
|
35
|
+
if (!manifested.ok) {
|
|
36
|
+
return errorOutput(manifested.code, manifested.message, source);
|
|
37
|
+
}
|
|
38
|
+
typeManifestations.set(placement.typeFqn, manifested.fqn);
|
|
39
|
+
}
|
|
40
|
+
const imports = [
|
|
41
|
+
`use <${relativePosix(outputDir, joinPosix(mbLibPath, "lib/block.scad"))}>;`,
|
|
42
|
+
`include <${relativePosix(outputDir, joinPosix(mbLibPath, "config/mb_config.scad"))}>;`,
|
|
43
|
+
...distinctTypeImports(ordered, outputDir, outputBasePath, typeManifestations),
|
|
44
|
+
];
|
|
45
|
+
const firstId = ordered[0]?.id ?? "00001";
|
|
46
|
+
const baseColor = block.members.find((member) => member.kind === "property" && member.name === "baseColor");
|
|
47
|
+
const baseColorValue = baseColor && baseColor.kind === "property" && baseColor.value?.kind === "literal" && typeof baseColor.value.value === "string"
|
|
48
|
+
? baseColor.value.value
|
|
49
|
+
: "#EAC645";
|
|
50
|
+
const steps = ordered
|
|
51
|
+
.map((placement) => ` ["${placement.id}", ${placement.size}, "${placement.direction}", ${placement.offset}]`)
|
|
52
|
+
.join(",\n");
|
|
53
|
+
const instanceCalls = ordered.map((placement) => ` ${moduleName}__Instance_${placement.id}();`).join("\n");
|
|
54
|
+
const stepCalls = ordered
|
|
55
|
+
.map((placement, index) => ` if (step >= ${index}) ${moduleName}__Instance_${placement.id}();`)
|
|
56
|
+
.join("\n");
|
|
57
|
+
const dispatch = ordered
|
|
58
|
+
.map((placement, index) => {
|
|
59
|
+
const keyword = index === 0 ? "if" : "else if";
|
|
60
|
+
return ` ${keyword} (instanceId == "${placement.id}") ${moduleName}__Instance_${placement.id}();`;
|
|
61
|
+
})
|
|
62
|
+
.join("\n");
|
|
63
|
+
const instanceModules = ordered
|
|
64
|
+
.map((placement) => `module ${moduleName}__Instance_${placement.id}() {
|
|
65
|
+
${moduleNameForManifestation(manifestedType(placement.typeFqn, typeManifestations))}();
|
|
66
|
+
}`)
|
|
67
|
+
.join("\n\n");
|
|
68
|
+
const content = `/**
|
|
69
|
+
* MachineBlocks.com Block File
|
|
70
|
+
*
|
|
71
|
+
* Name: ${block.name}
|
|
72
|
+
* Filename: ${filename}
|
|
73
|
+
* Package: ${block.type}
|
|
74
|
+
* Generated by: machineblocks-render-target (${RENDER_TARGET_VERSION})
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/* Imports */
|
|
78
|
+
${imports.join("\n")}
|
|
79
|
+
|
|
80
|
+
/* Customization */
|
|
81
|
+
mode = "total"; // [total:Total, print:3D Print, step:Step, instance:Instance]
|
|
82
|
+
step = 0; // [0:9]
|
|
83
|
+
instanceId = "${firstId}";
|
|
84
|
+
assembly = "merged"; // [unassembled:Unassembled, assembled:Assembled, merged:Merged]
|
|
85
|
+
baseColor = "${baseColorValue}";
|
|
86
|
+
|
|
87
|
+
/* Main Module Call */
|
|
88
|
+
${moduleName}(config = mb_config);
|
|
89
|
+
|
|
90
|
+
/* Main Module Definition */
|
|
91
|
+
module ${moduleName}(config = undef) {
|
|
92
|
+
STEPS = [
|
|
93
|
+
${steps}
|
|
94
|
+
];
|
|
95
|
+
mb_block(
|
|
96
|
+
config = config,
|
|
97
|
+
settings = [
|
|
98
|
+
["size", mb_set_bounding_box(STEPS)]
|
|
99
|
+
]
|
|
100
|
+
);
|
|
101
|
+
if (mode == "total") ${moduleName}__Total();
|
|
102
|
+
else if (mode == "print") ${moduleName}__Print();
|
|
103
|
+
else if (mode == "step") ${moduleName}__Step();
|
|
104
|
+
else if (mode == "instance") ${moduleName}__Instance();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Optional Sub Modules */
|
|
108
|
+
module ${moduleName}__Total() {
|
|
109
|
+
${instanceCalls}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
module ${moduleName}__Print() {
|
|
113
|
+
${instanceCalls}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
module ${moduleName}__Step() {
|
|
117
|
+
${stepCalls}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
module ${moduleName}__Instance() {
|
|
121
|
+
${dispatch}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
${instanceModules}
|
|
125
|
+
|
|
126
|
+
/* Optional Helper Modules */
|
|
127
|
+
/* Optional Global Functions */
|
|
128
|
+
`;
|
|
129
|
+
return { files: [withSourceMap(block, { path: outputRelativePath, content })] };
|
|
130
|
+
}
|
|
131
|
+
function placementOf(instance, source) {
|
|
132
|
+
const id = literalString(instance.id);
|
|
133
|
+
const sizeMember = instance.memberValues.size;
|
|
134
|
+
const size = sizeMember?.kind === "literal" ? serializeLiteral(sizeMember) : undefined;
|
|
135
|
+
if (!id || !size) {
|
|
136
|
+
return errorOutput(SET_PART_INCOMPLETE, "A placed part needs an id and a size.", instance.source ?? source);
|
|
137
|
+
}
|
|
138
|
+
const direction = literalString(instance.memberValues.direction) ?? "west";
|
|
139
|
+
const offsetMember = instance.memberValues.offset;
|
|
140
|
+
const offset = offsetMember?.kind === "literal" ? serializeLiteral(offsetMember) ?? "[0, 0, 0]" : "[0, 0, 0]";
|
|
141
|
+
return { id, typeFqn: instance.typeFqn, size, direction, offset };
|
|
142
|
+
}
|
|
143
|
+
function orderBySteps(block, placements) {
|
|
144
|
+
const steps = compositionChildren(block, "steps").flatMap((child) => {
|
|
145
|
+
if (child.kind !== "blockInstance") {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
const part = literalString(child.instance.memberValues.part) ?? literalString(child.instance.id);
|
|
149
|
+
return part ? [part] : [];
|
|
150
|
+
});
|
|
151
|
+
if (steps.length === 0) {
|
|
152
|
+
return [...placements];
|
|
153
|
+
}
|
|
154
|
+
const byId = new Map(placements.map((placement) => [placement.id, placement]));
|
|
155
|
+
const ordered = [];
|
|
156
|
+
for (const id of steps) {
|
|
157
|
+
const placement = byId.get(id);
|
|
158
|
+
if (placement) {
|
|
159
|
+
ordered.push(placement);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
for (const placement of placements) {
|
|
163
|
+
if (!ordered.includes(placement)) {
|
|
164
|
+
ordered.push(placement);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return ordered;
|
|
168
|
+
}
|
|
169
|
+
function manifestedType(typeFqn, typeManifestations) {
|
|
170
|
+
const manifestation = typeManifestations.get(typeFqn);
|
|
171
|
+
if (!manifestation) {
|
|
172
|
+
throw new Error(`Missing manifestation for ${typeFqn}`);
|
|
173
|
+
}
|
|
174
|
+
return manifestation;
|
|
175
|
+
}
|
|
176
|
+
function distinctTypeImports(placements, outputDir, outputBasePath, typeManifestations) {
|
|
177
|
+
const seen = new Set();
|
|
178
|
+
const lines = [];
|
|
179
|
+
for (const placement of placements) {
|
|
180
|
+
if (seen.has(placement.typeFqn)) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
seen.add(placement.typeFqn);
|
|
184
|
+
const manifestation = typeManifestations.get(placement.typeFqn);
|
|
185
|
+
if (!manifestation) {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
const target = joinPosix(outputBasePath, pathForManifestation(manifestation, "scad"));
|
|
189
|
+
lines.push(`use <${relativePosix(outputDir, target)}>;`);
|
|
190
|
+
}
|
|
191
|
+
return lines;
|
|
192
|
+
}
|
|
193
|
+
function literalString(value) {
|
|
194
|
+
if (!value || value.kind !== "literal" || typeof value.value !== "string") {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
return value.value;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=set-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-file.js","sourceRoot":"","sources":["../src/set-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BlockDefinition } from "@blockml/bom";
|
|
2
|
+
export declare function encodeVlq(value: number): string;
|
|
3
|
+
/** One mappings group per generated line, all pointing at the block definition. */
|
|
4
|
+
export declare function sourceMapFor(content: string, filename: string, block: BlockDefinition): string;
|
|
5
|
+
export declare function withSourceMap(block: BlockDefinition, file: {
|
|
6
|
+
path: string;
|
|
7
|
+
content: string;
|
|
8
|
+
}): {
|
|
9
|
+
path: string;
|
|
10
|
+
content: string;
|
|
11
|
+
sourceMap: string;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=source-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB/C;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAoB9F;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAGtD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const CHARSET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
2
|
+
export function encodeVlq(value) {
|
|
3
|
+
let vlq = value < 0 ? (-value << 1) + 1 : value << 1;
|
|
4
|
+
let encoded = "";
|
|
5
|
+
do {
|
|
6
|
+
let digit = vlq & 31;
|
|
7
|
+
vlq >>>= 5;
|
|
8
|
+
if (vlq > 0) {
|
|
9
|
+
digit |= 32;
|
|
10
|
+
}
|
|
11
|
+
const char = CHARSET[digit];
|
|
12
|
+
if (char === undefined) {
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
encoded += char;
|
|
16
|
+
} while (vlq > 0);
|
|
17
|
+
return encoded;
|
|
18
|
+
}
|
|
19
|
+
/** One mappings group per generated line, all pointing at the block definition. */
|
|
20
|
+
export function sourceMapFor(content, filename, block) {
|
|
21
|
+
const lines = content.endsWith("\n") ? content.slice(0, -1).split("\n") : content.split("\n");
|
|
22
|
+
const source = block.source;
|
|
23
|
+
const sourceFile = source?.file && source.file.length > 0 ? source.file : filename;
|
|
24
|
+
const line = Math.max((source?.line ?? 1) - 1, 0);
|
|
25
|
+
const column = Math.max((source?.column ?? 1) - 1, 0);
|
|
26
|
+
const first = `${encodeVlq(0)}${encodeVlq(0)}${encodeVlq(line)}${encodeVlq(column)}`;
|
|
27
|
+
const rest = `${encodeVlq(0)}${encodeVlq(0)}${encodeVlq(0)}${encodeVlq(0)}`;
|
|
28
|
+
const mappings = lines.map((_, index) => (index === 0 ? first : rest)).join(";");
|
|
29
|
+
return JSON.stringify({
|
|
30
|
+
version: 3,
|
|
31
|
+
file: filename,
|
|
32
|
+
sources: [sourceFile],
|
|
33
|
+
names: [],
|
|
34
|
+
mappings,
|
|
35
|
+
}, null, 2);
|
|
36
|
+
}
|
|
37
|
+
export function withSourceMap(block, file) {
|
|
38
|
+
const filename = file.path.split("/").pop() ?? file.path;
|
|
39
|
+
return { ...file, sourceMap: sourceMapFor(file.content, filename, block) };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=source-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Tracks packages/machineblocks-render-target/package.json. */
|
|
2
|
+
export declare const RENDER_TARGET_VERSION = "0.1.0";
|
|
3
|
+
export declare const TARGET_NAME = "machineblocks-v3-scad";
|
|
4
|
+
export declare const BLOCK_FQN = "com.machineblocks.bml.core.Block";
|
|
5
|
+
export declare const SET_FQN = "com.machineblocks.bml.core.Set";
|
|
6
|
+
export declare const NATIVE_BLOCK_FQN = "com.machineblocks.bml.core.NativeBlock";
|
|
7
|
+
export declare const SIZE_XYZ_FQN = "com.machineblocks.bml.type.SizeXYZ";
|
|
8
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,eAAO,MAAM,SAAS,qCAAqC,CAAC;AAC5D,eAAO,MAAM,OAAO,mCAAmC,CAAC;AACxD,eAAO,MAAM,gBAAgB,2CAA2C,CAAC;AACzE,eAAO,MAAM,YAAY,uCAAuC,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Tracks packages/machineblocks-render-target/package.json. */
|
|
2
|
+
export const RENDER_TARGET_VERSION = "0.1.0";
|
|
3
|
+
export const TARGET_NAME = "machineblocks-v3-scad";
|
|
4
|
+
export const BLOCK_FQN = "com.machineblocks.bml.core.Block";
|
|
5
|
+
export const SET_FQN = "com.machineblocks.bml.core.Set";
|
|
6
|
+
export const NATIVE_BLOCK_FQN = "com.machineblocks.bml.core.NativeBlock";
|
|
7
|
+
export const SIZE_XYZ_FQN = "com.machineblocks.bml.type.SizeXYZ";
|
|
8
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,kCAAkC,CAAC;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,gCAAgC,CAAC;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,oCAAoC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@machineblocks/render-target",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "MachineBlocks BlockML compiler target — render BML to MachineBlocks V3 OpenSCAD",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"sideEffects": false,
|
|
11
|
+
"blockml": {
|
|
12
|
+
"library": "./blocks/com/machineblocks/bml/target/render/Library.bml"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"blocks"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc --build",
|
|
26
|
+
"prepublishOnly": "npm run build",
|
|
27
|
+
"test": "vitest run --root ../.. packages/machineblocks-render-target/test"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@blockml/block-render-engine": "^0.1.1",
|
|
31
|
+
"@blockml/bom": "^0.9.14",
|
|
32
|
+
"@blockml/compiler": "^0.9.14",
|
|
33
|
+
"@blockml/core": "^1.4.5",
|
|
34
|
+
"@machineblocks/core": "^3.0.0-A4"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@blockml/framework": "^0.9.14",
|
|
38
|
+
"@blockml/parser": "^0.9.14"
|
|
39
|
+
},
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=20"
|
|
42
|
+
}
|
|
43
|
+
}
|
package/README.md
DELETED