@chestnutlabs/gcode-parser 0.16.0 → 0.17.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/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +9 -1
- package/package.json +5 -5
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.js
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* output; multi-byte comment bytes would skew offsets and are a documented
|
|
28
28
|
* limitation until the streaming decoder lands (phase 3).
|
|
29
29
|
*/
|
|
30
|
-
import { IR_SCHEMA_VERSION, MoveKind, buildSourceIndex, computeSegmentBounds } from '@chestnutlabs/toolpath-core';
|
|
30
|
+
import { IR_SCHEMA_VERSION, MoveKind, buildSourceIndex, classifyModelBounds, computeSegmentBounds, emptyBounds } from '@chestnutlabs/toolpath-core';
|
|
31
31
|
import { BudgetExceededError, SegmentWriter } from './growable.js';
|
|
32
32
|
export const DEFAULT_LIMITS = {
|
|
33
33
|
maxInputBytes: 512 * 1024 * 1024,
|
|
@@ -854,6 +854,7 @@ export function createEngine(input, opts) {
|
|
|
854
854
|
stats.segments = segments.count;
|
|
855
855
|
const origin = { x: ox, y: oy, z: oz };
|
|
856
856
|
const { bounds, boundsWithTravel, objectBounds } = computeSegmentBounds(segments, origin);
|
|
857
|
+
const { modelBounds, classification: nonModelClassification } = classifyModelBounds(segments, origin);
|
|
857
858
|
const sourceIndex = buildSourceIndex(segments.srcByte, segments.count);
|
|
858
859
|
// Layer table for the IR (absolute z; seg ranges accumulated above).
|
|
859
860
|
const irLayers = layersCleared || layers.length === 0
|
|
@@ -872,6 +873,10 @@ export function createEngine(input, opts) {
|
|
|
872
873
|
sourcePositions: 'known',
|
|
873
874
|
featureRoles: 'unavailable',
|
|
874
875
|
objects: 'unavailable',
|
|
876
|
+
// Non-model (model-bounds) classification (DD-026 D7). At parse time the object/feature channels
|
|
877
|
+
// are usually empty, so this is 'unavailable' until a dialect adapter annotates them and the
|
|
878
|
+
// runner refreshes it (gcode-dialects finalize). Honest either way — never a guess.
|
|
879
|
+
nonModelClassification,
|
|
875
880
|
retractions: retractionEvents.length > 0 ? 'known' : 'unavailable',
|
|
876
881
|
colorChanges: colorChangeEvents.length > 0 ? 'known' : 'unavailable',
|
|
877
882
|
// Annotation-derived move kinds (DD-016, #182). The parser never sets these — they come from a
|
|
@@ -945,6 +950,7 @@ export function createEngine(input, opts) {
|
|
|
945
950
|
bounds,
|
|
946
951
|
boundsWithTravel,
|
|
947
952
|
objectBounds,
|
|
953
|
+
modelBounds,
|
|
948
954
|
sourceIndex
|
|
949
955
|
};
|
|
950
956
|
if (stopReason !== undefined) {
|
|
@@ -999,6 +1005,7 @@ export function createEngine(input, opts) {
|
|
|
999
1005
|
sourcePositions: 'unavailable', // no per-slice source index is built
|
|
1000
1006
|
featureRoles: 'unavailable',
|
|
1001
1007
|
objects: 'unavailable',
|
|
1008
|
+
nonModelClassification: 'unavailable', // model classification resolves on the final IR (DD-026)
|
|
1002
1009
|
retractions: 'unavailable', // markers resolve on the final IR, not on preview slices
|
|
1003
1010
|
colorChanges: 'unavailable', // color-change boundaries resolve on the final IR
|
|
1004
1011
|
wipeMoves: 'unavailable', // annotation move kinds resolve on the final IR (DD-016)
|
|
@@ -1020,6 +1027,7 @@ export function createEngine(input, opts) {
|
|
|
1020
1027
|
bounds,
|
|
1021
1028
|
boundsWithTravel,
|
|
1022
1029
|
objectBounds,
|
|
1030
|
+
modelBounds: emptyBounds(),
|
|
1023
1031
|
sourceIndex: { byteOffsets: new Uint32Array(0), segmentIndices: new Uint32Array(0) }
|
|
1024
1032
|
};
|
|
1025
1033
|
return { slice, upTo: cut };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chestnutlabs/gcode-parser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.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.
|
|
53
|
-
"@chestnutlabs/gcode-dialects": "0.
|
|
54
|
-
"@chestnutlabs/gcode-containers": "0.
|
|
55
|
-
"@chestnutlabs/gcode-bgcode": "0.
|
|
52
|
+
"@chestnutlabs/toolpath-core": "0.17.0",
|
|
53
|
+
"@chestnutlabs/gcode-dialects": "0.17.0",
|
|
54
|
+
"@chestnutlabs/gcode-containers": "0.17.0",
|
|
55
|
+
"@chestnutlabs/gcode-bgcode": "0.17.0"
|
|
56
56
|
}
|
|
57
57
|
}
|