@chestnutlabs/gcode-parser 0.7.0 → 0.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"worker-core.d.ts","sourceRoot":"","sources":["../src/worker-core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA0D,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,KAAK,EAAE;QACf,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,GAAG,cAAc,GAAG,IAAI,CAAC;CAC3B;AAED,wGAAwG;AACxG,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,QAAQ,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,6BAA6B,EAAE,eAAe,CAAC;QAChE,SAAS,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,EAAE,CAAC;QACjE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC/C,CAAC;IACF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACrC;AA+CD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,oBAAyB,GACrC,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAyS9B"}
1
+ {"version":3,"file":"worker-core.d.ts","sourceRoot":"","sources":["../src/worker-core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA0D,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,KAAK,EAAE;QACf,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,GAAG,cAAc,GAAG,IAAI,CAAC;CAC3B;AAED,wGAAwG;AACxG,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,QAAQ,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,6BAA6B,EAAE,eAAe,CAAC;QAChE,SAAS,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,EAAE,CAAC;QACjE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC/C,CAAC;IACF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACrC;AA+CD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,oBAAyB,GACrC,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAwT9B"}
@@ -262,7 +262,20 @@ export function createWorkerHandler(post, handlerOpts = {}) {
262
262
  metadata.machine = cm;
263
263
  }
264
264
  if (opened.metadata.filaments !== undefined && opened.metadata.filaments.length > 0) {
265
- metadata.filaments = [...(metadata.filaments ?? []), ...opened.metadata.filaments];
265
+ // Both the dialect (gcode `; filament_*` comments) and the container config
266
+ // (project_settings.config) enumerate the same filament slots — merge by slot so each
267
+ // appears once (container config is authoritative per field) instead of concatenating
268
+ // into duplicates (`[0,0,1,1,…]`, which broke palette-by-tool indexing downstream).
269
+ const bySlot = new Map();
270
+ for (const f of metadata.filaments ?? [])
271
+ bySlot.set(f.slot, f);
272
+ for (const f of opened.metadata.filaments) {
273
+ const prev = bySlot.get(f.slot);
274
+ bySlot.set(f.slot, prev === undefined
275
+ ? f
276
+ : { slot: f.slot, type: f.type ?? prev.type, color: f.color ?? prev.color, name: f.name ?? prev.name });
277
+ }
278
+ metadata.filaments = [...bySlot.values()].sort((a, b) => a.slot - b.slot);
266
279
  }
267
280
  if (Object.keys(opened.metadata.raw).length > 0) {
268
281
  metadata.raw = { ...opened.metadata.raw, ...(metadata.raw ?? {}) };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chestnutlabs/gcode-parser",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Worker-safe G-code parse core producing ToolpathIR (DD-003).",
5
5
  "keywords": [
6
6
  "gcode",
@@ -49,9 +49,9 @@
49
49
  "test": "vitest run"
50
50
  },
51
51
  "dependencies": {
52
- "@chestnutlabs/toolpath-core": "0.7.0",
53
- "@chestnutlabs/gcode-dialects": "0.7.0",
54
- "@chestnutlabs/gcode-containers": "0.7.0",
55
- "@chestnutlabs/gcode-bgcode": "0.7.0"
52
+ "@chestnutlabs/toolpath-core": "0.9.0",
53
+ "@chestnutlabs/gcode-dialects": "0.9.0",
54
+ "@chestnutlabs/gcode-containers": "0.9.0",
55
+ "@chestnutlabs/gcode-bgcode": "0.9.0"
56
56
  }
57
57
  }