@fdm-monster/server 2.0.6 → 2.0.8
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/.yarn/install-state.gz +0 -0
- package/RELEASE_NOTES.MD +31 -0
- package/dist/consoles/bambu-mqtt-diagnostic.console.js +565 -0
- package/dist/consoles/bambu-mqtt-diagnostic.console.js.map +1 -0
- package/dist/consoles/mock-bambu.server.js +114 -88
- package/dist/consoles/mock-bambu.server.js.map +1 -1
- package/dist/controllers/file-storage.controller.js +34 -14
- package/dist/controllers/file-storage.controller.js.map +1 -1
- package/dist/controllers/print-job.controller.js +33 -236
- package/dist/controllers/print-job.controller.js.map +1 -1
- package/dist/controllers/print-queue.controller.js +82 -17
- package/dist/controllers/print-queue.controller.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +8 -2
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +3 -3
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/entities/print-job.entity.js.map +1 -1
- package/dist/server.constants.js +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js +13 -21
- package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
- package/dist/services/bambu/bambu-mqtt.adapter.js +86 -32
- package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
- package/dist/services/bambu/bambu.client.js.map +1 -1
- package/dist/services/bambu.api.js +12 -24
- package/dist/services/bambu.api.js.map +1 -1
- package/dist/services/file-storage.service.js +11 -2
- package/dist/services/file-storage.service.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +5 -17
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +3 -2
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +5 -17
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint.api.js +3 -2
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/print-job.service.js +55 -47
- package/dist/services/orm/print-job.service.js.map +1 -1
- package/dist/services/print-queue.service.js +90 -30
- package/dist/services/print-queue.service.js.map +1 -1
- package/dist/services/printer-api.interface.js +13 -0
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/prusa-link.api.js +12 -22
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
- package/dist/tasks/print-job-analysis.task.js.map +1 -1
- package/dist/utils/bgcode/bgcode-thumbnail.parser.js +50 -0
- package/dist/utils/bgcode/bgcode-thumbnail.parser.js.map +1 -0
- package/dist/utils/bgcode/bgcode.constants.js +57 -0
- package/dist/utils/bgcode/bgcode.constants.js.map +1 -0
- package/dist/utils/bgcode/bgcode.types.js +132 -0
- package/dist/utils/bgcode/bgcode.types.js.map +1 -0
- package/dist/utils/bgcode/bgcode.utils.js +288 -0
- package/dist/utils/bgcode/bgcode.utils.js.map +1 -0
- package/dist/utils/bgcode/heatshrink-decoder.js +172 -0
- package/dist/utils/bgcode/heatshrink-decoder.js.map +1 -0
- package/dist/utils/bgcode/png-encoder.js +76 -0
- package/dist/utils/bgcode/png-encoder.js.map +1 -0
- package/dist/utils/bgcode/qoi-decoder.js +141 -0
- package/dist/utils/bgcode/qoi-decoder.js.map +1 -0
- package/dist/utils/image-dimensions.js +62 -0
- package/dist/utils/image-dimensions.js.map +1 -0
- package/dist/utils/job-stats.util.js +79 -0
- package/dist/utils/job-stats.util.js.map +1 -0
- package/dist/utils/parsers/3mf.parser.js +39 -9
- package/dist/utils/parsers/3mf.parser.js.map +1 -1
- package/dist/utils/parsers/bgcode.parser.js +125 -144
- package/dist/utils/parsers/bgcode.parser.js.map +1 -1
- package/dist/utils/parsers/gcode.parser.js +13 -2
- package/dist/utils/parsers/gcode.parser.js.map +1 -1
- package/dist/utils/parsers/parser.types.js +6 -0
- package/dist/utils/parsers/parser.types.js.map +1 -0
- package/dist/utils/thumbnail.util.js +24 -0
- package/dist/utils/thumbnail.util.js.map +1 -0
- package/package.json +13 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/parsers/3mf.parser.ts"],"names":["ThreeMFParser","parse","filePath","stats","fs","stat","fileName","path","basename","zip","AdmZip","zipEntries","getEntries","metadataJsonEntry","find","e","entryName","metadata","jsonContent","getData","toString","jsonData","JSON","normalizeJsonMetadata","modelEntry","extractMetadataFromXML","plates","extractPlates","isMultiPlate","length","thumbnails","extractThumbnails","topLevelPrintTime","parseTime","printTime","topLevelFilamentWeight","parseFloat","totalFilamentWeight","filamentWeight","topLevelLayers","parseInt","layerCount","topLevelFilamentUsedMm","filamentUsed","topLevelFilamentUsedCm3","filamentVolume","topLevelFilamentDensity","filamentDensity","topLevelMaxZ","maxZ","topLevelSlicerVersion","slicerVersion","generator","topLevelNozzleDiameter","nozzleDiameter","topLevelLayerHeight","layerHeight","layer_height","topLevelFirstLayerHeight","firstLayerHeight","first_layer_height","topLevelBedTemp","bedTemp","bed_temperature","topLevelNozzleTemp","nozzleTemp","nozzle_temperature","topLevelFillDensity","infillDensity","infill_density","fill_density","topLevelFilamentType","filamentType","filament_type","topLevelPrinterModel","printerModel","printer_model","topLevelFilamentDiameter","filamentDiameter","filament_diameter","plate","gcodePrintTimeSeconds","filamentUsedGrams","totalLayers","filamentUsedMm","filamentUsedCm3","filamentDensityGramsCm3","maxLayerZ","nozzleDiameterMm","bedTemperature","nozzleTemperature","fillDensity","filamentDiameterMm","reduce","sum","p","Math","max","map","firstPlate","normalized","fileFormat","fileSize","size","totalPlates","totalFilamentUsedGrams","undefined","raw","_thumbnails","String","estimatedPrintTimeSec","xml","patterns","pattern","match","key","source","generatorMatch","plateEntries","filter","endsWith","entry","plateMatch","plateNumber","Number","gcodeContent","min","parseGCodeHeader","plateThumbs","includes","model_printing_time","total_estimated_time","print_time","total_filament_weight_g","filament_weight","total_filament_weight","total_layer_number","layer_count","total_layers","plateMetadata","total_filament_length_mm","filament_length_mm","filament_used_mm","total_filament_volume_cm3","filament_volume_cm3","filament_density","max_z_height","max_layer_z","bambustudio","slicer_version","slicer","nozzle_diameter","initial_layer_height","initial_layer_print_height","bed_temperature_actual","bed_temp","bed_temperature_initial_layer","nozzle_temp","nozzle_temperature_initial_layer","sparse_infill_density","objects","t","type","push","sort","a","b","gcode","lines","split","slice","line","startsWith","bambuMatch","trim","toLowerCase","replace","value","_","unit","bedTempMatch","thumbEntries","sizeMatch","width","height","format","toUpperCase","imageData","base64Data","data","num","isNaN","hours","minutes","secs","seconds"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/parsers/3mf.parser.ts"],"names":["ThreeMFParser","parse","filePath","stats","fs","stat","fileName","path","basename","zip","AdmZip","zipEntries","getEntries","metadataJsonEntry","find","e","entryName","metadata","jsonContent","getData","toString","jsonData","JSON","normalizeJsonMetadata","modelEntry","extractMetadataFromXML","plates","extractPlates","isMultiPlate","length","thumbnails","extractThumbnails","topLevelPrintTime","parseTime","printTime","topLevelFilamentWeight","parseFloat","totalFilamentWeight","filamentWeight","topLevelLayers","parseInt","layerCount","topLevelFilamentUsedMm","filamentUsed","topLevelFilamentUsedCm3","filamentVolume","topLevelFilamentDensity","filamentDensity","topLevelMaxZ","maxZ","topLevelSlicerVersion","slicerVersion","generator","topLevelNozzleDiameter","nozzleDiameter","topLevelLayerHeight","layerHeight","layer_height","topLevelFirstLayerHeight","firstLayerHeight","first_layer_height","topLevelBedTemp","bedTemp","bed_temperature","topLevelNozzleTemp","nozzleTemp","nozzle_temperature","topLevelFillDensity","infillDensity","infill_density","fill_density","topLevelFilamentType","filamentType","filament_type","topLevelPrinterModel","printerModel","printer_model","topLevelFilamentDiameter","filamentDiameter","filament_diameter","plate","gcodePrintTimeSeconds","filamentUsedGrams","totalLayers","filamentUsedMm","filamentUsedCm3","filamentDensityGramsCm3","maxLayerZ","nozzleDiameterMm","bedTemperature","nozzleTemperature","fillDensity","filamentDiameterMm","reduce","sum","p","Math","max","map","firstPlate","normalized","fileFormat","fileSize","size","totalPlates","totalFilamentUsedGrams","t","width","height","format","dataLength","data","undefined","raw","_thumbnails","String","estimatedPrintTimeSec","xml","patterns","pattern","match","key","source","generatorMatch","plateEntries","filter","endsWith","entry","plateMatch","plateNumber","Number","gcodeContent","min","parseGCodeHeader","plateThumbs","includes","plateThumbnails","imageData","sizeMatch","dimensions","getImageDimensions","model_printing_time","total_estimated_time","print_time","total_filament_weight_g","filament_weight","total_filament_weight","total_layer_number","layer_count","total_layers","plateMetadata","total_filament_length_mm","filament_length_mm","filament_used_mm","total_filament_volume_cm3","filament_volume_cm3","filament_density","max_z_height","max_layer_z","bambustudio","slicer_version","slicer","nozzle_diameter","initial_layer_height","initial_layer_print_height","bed_temperature_actual","bed_temp","bed_temperature_initial_layer","nozzle_temp","nozzle_temperature_initial_layer","sparse_infill_density","objects","push","sort","a","b","gcode","lines","split","slice","line","startsWith","bambuMatch","trim","toLowerCase","replace","value","_","unit","bedTempMatch","thumbEntries","toUpperCase","base64Data","num","isNaN","hours","minutes","secs","seconds"],"mappings":"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"}
|
|
@@ -8,8 +8,16 @@ Object.defineProperty(exports, "BGCodeParser", {
|
|
|
8
8
|
return BGCodeParser;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
11
12
|
const _promises = /*#__PURE__*/ _interop_require_wildcard(require("node:fs/promises"));
|
|
12
|
-
const
|
|
13
|
+
const _bgcodeutils = require("../bgcode/bgcode.utils");
|
|
14
|
+
const _bgcodetypes = require("../bgcode/bgcode.types");
|
|
15
|
+
const _bgcodethumbnailparser = require("../bgcode/bgcode-thumbnail.parser");
|
|
16
|
+
function _interop_require_default(obj) {
|
|
17
|
+
return obj && obj.__esModule ? obj : {
|
|
18
|
+
default: obj
|
|
19
|
+
};
|
|
20
|
+
}
|
|
13
21
|
function _getRequireWildcardCache(nodeInterop) {
|
|
14
22
|
if (typeof WeakMap !== "function") return null;
|
|
15
23
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -53,170 +61,143 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
53
61
|
}
|
|
54
62
|
class BGCodeParser {
|
|
55
63
|
async parse(filePath) {
|
|
56
|
-
const stats = await _promises.stat(filePath);
|
|
57
|
-
const fileName =
|
|
58
|
-
const
|
|
59
|
-
const metadata = this.parseHeader(buffer);
|
|
60
|
-
const blocks = this.parseBlocks(buffer);
|
|
61
|
-
const thumbnails = this.extractThumbnails(buffer);
|
|
62
|
-
const normalized = {
|
|
63
|
-
fileName,
|
|
64
|
-
fileFormat: "bgcode",
|
|
65
|
-
fileSize: stats.size,
|
|
66
|
-
producer: metadata.producer,
|
|
67
|
-
producedOn: metadata.produced_on,
|
|
68
|
-
checksumType: metadata.checksum_type,
|
|
69
|
-
gcodePrintTimeSeconds: this.parseTime(metadata.estimated_printing_time_normal_mode || metadata.estimated_printing_time || metadata.print_time),
|
|
70
|
-
nozzleDiameterMm: this.parseFirstValue(metadata.nozzle_diameter),
|
|
71
|
-
filamentDiameterMm: this.parseFirstValue(metadata.filament_diameter) || 1.75,
|
|
72
|
-
filamentDensityGramsCm3: this.parseFirstValue(metadata.filament_density),
|
|
73
|
-
filamentUsedMm: this.parseFirstValue(metadata.filament_used_mm),
|
|
74
|
-
filamentUsedCm3: this.parseFirstValue(metadata.filament_used_cm3),
|
|
75
|
-
filamentUsedGrams: this.parseFirstValue(metadata.filament_used_g),
|
|
76
|
-
totalFilamentUsedGrams: this.parseFirstValue(metadata.filament_used_g),
|
|
77
|
-
layerHeight: this.parseFloat(metadata.layer_height),
|
|
78
|
-
firstLayerHeight: this.parseFloat(metadata.first_layer_height || metadata.initial_layer_height),
|
|
79
|
-
bedTemperature: this.parseFirstValue(metadata.bed_temperature),
|
|
80
|
-
nozzleTemperature: this.parseFirstValue(metadata.temperature),
|
|
81
|
-
fillDensity: metadata.fill_density || null,
|
|
82
|
-
filamentType: this.parseFirstCsvValue(metadata.filament_type),
|
|
83
|
-
printerModel: metadata.printer_model || null,
|
|
84
|
-
slicerVersion: metadata.producer || null,
|
|
85
|
-
maxLayerZ: this.parseFloat(metadata.max_layer_z),
|
|
86
|
-
totalLayers: this.parseInt(metadata.total_layers || metadata.layer_count),
|
|
87
|
-
thumbnails: thumbnails.length > 0 ? thumbnails : undefined,
|
|
88
|
-
blocks: blocks.length > 0 ? blocks : undefined
|
|
89
|
-
};
|
|
90
|
-
return {
|
|
91
|
-
raw: {
|
|
92
|
-
_thumbnails: thumbnails,
|
|
93
|
-
blocks
|
|
94
|
-
},
|
|
95
|
-
normalized
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
async readFileHeader(filePath, bytes) {
|
|
99
|
-
const fileHandle = await _promises.open(filePath, "r");
|
|
64
|
+
const stats = await _promises.default.stat(filePath);
|
|
65
|
+
const fileName = _nodepath.default.basename(filePath);
|
|
66
|
+
const fileHandle = await (0, _promises.open)(filePath, "r");
|
|
100
67
|
try {
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
68
|
+
const { version, checksumType } = await (0, _bgcodeutils.parseFileHeader)(fileHandle);
|
|
69
|
+
if (version !== 1) {
|
|
70
|
+
throw new Error(`Unsupported BGCode version: ${version}`);
|
|
71
|
+
}
|
|
72
|
+
const blockHeaders = await (0, _bgcodeutils.parseBlockHeaders)(fileHandle, stats.size, checksumType, true);
|
|
73
|
+
const metadata = await (0, _bgcodeutils.extractMetadataFromBlocks)(fileHandle, blockHeaders);
|
|
74
|
+
const thumbnails = await this.extractThumbnailsFromBlocks(fileHandle, blockHeaders);
|
|
75
|
+
const isMmu = this.isMmuData(metadata.nozzle_diameter) || this.isMmuData(metadata.temperature) || this.isMmuData(metadata.filament_used_mm) || this.isMmuData(metadata.bed_temperature) || this.isMmuData(metadata.filament_type, ';');
|
|
76
|
+
const normalized = {
|
|
77
|
+
fileName,
|
|
78
|
+
fileFormat: "bgcode",
|
|
79
|
+
fileSize: stats.size,
|
|
80
|
+
producer: metadata.producer,
|
|
81
|
+
producedOn: metadata.produced_on,
|
|
82
|
+
checksumType: checksumType === 1 ? "CRC32" : "None",
|
|
83
|
+
isMmu: isMmu || undefined,
|
|
84
|
+
gcodePrintTimeSeconds: this.parseTime(metadata.estimated_printing_time_normal_mode || metadata.print_time),
|
|
85
|
+
gcodePrintTimeSecondsSilent: this.parseTime(metadata.estimated_printing_time_silent_mode),
|
|
86
|
+
nozzleDiameterMm: isMmu ? this.parseNumberArray(metadata.nozzle_diameter) : this.parseFirstValue(metadata.nozzle_diameter),
|
|
87
|
+
filamentDiameterMm: isMmu ? this.parseNumberArray(metadata.filament_diameter) : this.parseFirstValue(metadata.filament_diameter) || 1.75,
|
|
88
|
+
filamentDensityGramsCm3: isMmu ? this.parseNumberArray(metadata.filament_density) : this.parseFirstValue(metadata.filament_density),
|
|
89
|
+
filamentUsedMm: isMmu ? this.parseNumberArray(metadata.filament_used_mm) : this.parseFirstValue(metadata.filament_used_mm),
|
|
90
|
+
filamentUsedCm3: isMmu ? this.parseNumberArray(metadata.filament_used_cm3) : this.parseFirstValue(metadata.filament_used_cm3),
|
|
91
|
+
filamentUsedGrams: isMmu ? this.parseNumberArray(metadata.filament_used_g) : this.parseFirstValue(metadata.filament_used_g),
|
|
92
|
+
totalFilamentUsedGrams: isMmu ? this.sumNumberArray(this.parseNumberArray(metadata.filament_used_g)) : this.parseFirstValue(metadata.filament_used_g),
|
|
93
|
+
layerHeight: this.parseFloat(metadata.layer_height),
|
|
94
|
+
firstLayerHeight: this.parseFloat(metadata.first_layer_height || metadata.initial_layer_height),
|
|
95
|
+
bedTemperature: isMmu ? this.parseNumberArray(metadata.bed_temperature) : this.parseFirstValue(metadata.bed_temperature),
|
|
96
|
+
nozzleTemperature: isMmu ? this.parseNumberArray(metadata.temperature) : this.parseFirstValue(metadata.temperature),
|
|
97
|
+
fillDensity: metadata.fill_density || null,
|
|
98
|
+
filamentType: isMmu ? this.parseStringArray(metadata.filament_type, ';') : this.parseFirstCsvValue(metadata.filament_type),
|
|
99
|
+
printerModel: metadata.printer_model || null,
|
|
100
|
+
slicerVersion: metadata.producer || null,
|
|
101
|
+
maxLayerZ: this.parseFloat(metadata.max_layer_z),
|
|
102
|
+
totalLayers: this.parseInt(metadata.total_layers || metadata.layer_count),
|
|
103
|
+
thumbnails: thumbnails.length > 0 ? thumbnails.map((t)=>({
|
|
104
|
+
width: t.width,
|
|
105
|
+
height: t.height,
|
|
106
|
+
format: t.format,
|
|
107
|
+
dataLength: t.data?.length || 0
|
|
108
|
+
})) : undefined,
|
|
109
|
+
blocks: blockHeaders.map((b)=>({
|
|
110
|
+
type: _bgcodetypes.BgCodeBlockTypeName[b.type] || `Unknown(${b.type})`,
|
|
111
|
+
compressedSize: b.compressedSize,
|
|
112
|
+
uncompressedSize: b.uncompressedSize,
|
|
113
|
+
compression: _bgcodetypes.BgCodeCompressionName[b.compression] || `Unknown(${b.compression})`
|
|
114
|
+
}))
|
|
115
|
+
};
|
|
116
|
+
return {
|
|
117
|
+
raw: {
|
|
118
|
+
_thumbnails: thumbnails,
|
|
119
|
+
blocks: blockHeaders.map((b)=>({
|
|
120
|
+
type: _bgcodetypes.BgCodeBlockTypeName[b.type] || `Unknown(${b.type})`,
|
|
121
|
+
compressedSize: b.compressedSize,
|
|
122
|
+
uncompressedSize: b.uncompressedSize,
|
|
123
|
+
compression: _bgcodetypes.BgCodeCompressionName[b.compression] || `Unknown(${b.compression})`
|
|
124
|
+
}))
|
|
125
|
+
},
|
|
126
|
+
normalized
|
|
127
|
+
};
|
|
104
128
|
} finally{
|
|
105
129
|
await fileHandle.close();
|
|
106
130
|
}
|
|
107
131
|
}
|
|
108
|
-
|
|
109
|
-
const metadata = {};
|
|
110
|
-
const magic = buffer.toString("ascii", 0, 4);
|
|
111
|
-
if (magic !== "GCDE" && magic !== "BGCD") {
|
|
112
|
-
throw new Error(`Invalid BGCode file: magic number not found (got "${magic}", expected "GCDE" or "BGCD")`);
|
|
113
|
-
}
|
|
114
|
-
const version = buffer.readUInt32LE(4);
|
|
115
|
-
metadata.version = version.toString();
|
|
116
|
-
const headerText = buffer.toString("utf8", 0, Math.min(buffer.length, 2048));
|
|
117
|
-
this.extractMetadataFromText(headerText, metadata);
|
|
118
|
-
return metadata;
|
|
119
|
-
}
|
|
120
|
-
extractMetadataFromText(text, metadata) {
|
|
121
|
-
const lines = text.split('\n');
|
|
122
|
-
const producerMatch = text.match(/Producer=([^\n\r\0]+)/);
|
|
123
|
-
if (producerMatch) {
|
|
124
|
-
metadata.producer = producerMatch[1].trim();
|
|
125
|
-
}
|
|
126
|
-
for (const line of lines){
|
|
127
|
-
const match = line.match(/^([a-z_\s]+(?:\[[^\]]+\])?(?:\([^)]+\))?)\s*=\s*(.+)/i);
|
|
128
|
-
if (match) {
|
|
129
|
-
let key = match[1].trim().toLowerCase().replace(/\s+/g, '_');
|
|
130
|
-
let value = match[2].trim();
|
|
131
|
-
key = key.replace(/\(([^)]+)\)/g, (_, content)=>'_' + content.replace(/\s+/g, '_'));
|
|
132
|
-
key = key.replace(/\[([^\]]+)\]/g, (_, unit)=>'_' + unit.replace(/\^/g, ''));
|
|
133
|
-
key = key.replace(/_+/g, '_');
|
|
134
|
-
metadata[key] = value;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
const patterns = [
|
|
138
|
-
/producer[=:]\s*([^\n\r]+)/i,
|
|
139
|
-
/produced[\s_]on[=:]\s*([^\n\r]+)/i,
|
|
140
|
-
/print[\s_]time[=:]\s*([^\n\r]+)/i,
|
|
141
|
-
/layer[\s_]height[=:]\s*([^\n\r]+)/i,
|
|
142
|
-
/nozzle_diameter[=:]\s*([^\n\r]+)/i,
|
|
143
|
-
/bed_temperature[=:]\s*([^\n\r]+)/i,
|
|
144
|
-
/nozzle_temperature[=:]\s*([^\n\r]+)/i
|
|
145
|
-
];
|
|
146
|
-
for (const pattern of patterns){
|
|
147
|
-
const match = text.match(pattern);
|
|
148
|
-
if (match) {
|
|
149
|
-
const key = pattern.source.match(/^(\w+)/)?.[1] || "";
|
|
150
|
-
metadata[key] = match[1].trim();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
parseBlocks(buffer) {
|
|
155
|
-
const blocks = [];
|
|
156
|
-
try {
|
|
157
|
-
let offset = 8;
|
|
158
|
-
const blockCount = Math.min(buffer.readUInt16LE(offset), 10);
|
|
159
|
-
for(let i = 0; i < blockCount; i++){
|
|
160
|
-
blocks.push({
|
|
161
|
-
type: `Block${i}`,
|
|
162
|
-
compressedSize: 0,
|
|
163
|
-
uncompressedSize: 0,
|
|
164
|
-
compression: "unknown"
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
} catch (error) {}
|
|
168
|
-
return blocks;
|
|
169
|
-
}
|
|
170
|
-
extractThumbnails(buffer) {
|
|
132
|
+
async extractThumbnailsFromBlocks(fileHandle, blockHeaders) {
|
|
171
133
|
const thumbnails = [];
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
}
|
|
134
|
+
const thumbnailBlocks = blockHeaders.filter((b)=>b.type === _bgcodetypes.BgCodeBlockTypes.Thumbnail);
|
|
135
|
+
for (const header of thumbnailBlocks){
|
|
136
|
+
const parameters = header.parameters;
|
|
137
|
+
const blockData = await (0, _bgcodeutils.getBlockData)(fileHandle, header);
|
|
138
|
+
const imageData = (0, _bgcodeutils.decompressBlock)(header.compression, blockData);
|
|
139
|
+
const processed = (0, _bgcodethumbnailparser.processThumbnail)(imageData, parameters);
|
|
140
|
+
thumbnails.push({
|
|
141
|
+
width: parameters.width,
|
|
142
|
+
height: parameters.height,
|
|
143
|
+
format: processed.extension,
|
|
144
|
+
data: processed.data.toString('base64')
|
|
145
|
+
});
|
|
146
|
+
}
|
|
185
147
|
return thumbnails;
|
|
186
148
|
}
|
|
187
|
-
|
|
149
|
+
parseNumber(value, parser) {
|
|
188
150
|
if (!value) return null;
|
|
189
|
-
const num =
|
|
190
|
-
return isNaN(num) ? null : num;
|
|
151
|
+
const num = parser(value);
|
|
152
|
+
return Number.isNaN(num) ? null : num;
|
|
153
|
+
}
|
|
154
|
+
parseFloat(value) {
|
|
155
|
+
return this.parseNumber(value, Number.parseFloat);
|
|
191
156
|
}
|
|
192
157
|
parseInt(value) {
|
|
193
|
-
|
|
194
|
-
const num = parseInt(value, 10);
|
|
195
|
-
return isNaN(num) ? null : num;
|
|
158
|
+
return this.parseNumber(value, (val)=>Number.parseInt(val, 10));
|
|
196
159
|
}
|
|
197
160
|
parseTime(value) {
|
|
198
161
|
if (!value) return null;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return null;
|
|
162
|
+
let totalSeconds = 0;
|
|
163
|
+
const hours = new RegExp(/(\d+)h/).exec(value);
|
|
164
|
+
const minutes = new RegExp(/(\d+)m/).exec(value);
|
|
165
|
+
const seconds = new RegExp(/(\d+)s/).exec(value);
|
|
166
|
+
if (hours) totalSeconds += Number.parseInt(hours[1]) * 3600;
|
|
167
|
+
if (minutes) totalSeconds += Number.parseInt(minutes[1]) * 60;
|
|
168
|
+
if (seconds) totalSeconds += Number.parseInt(seconds[1]);
|
|
169
|
+
if (hours || minutes || seconds) return totalSeconds;
|
|
170
|
+
const num = Number.parseFloat(value);
|
|
171
|
+
return Number.isNaN(num) ? null : num;
|
|
209
172
|
}
|
|
210
173
|
parseFirstValue(value) {
|
|
211
174
|
if (!value) return null;
|
|
212
175
|
const firstValue = value.split(',')[0].trim();
|
|
213
|
-
const num = parseFloat(firstValue);
|
|
214
|
-
return isNaN(num) ? null : num;
|
|
176
|
+
const num = Number.parseFloat(firstValue);
|
|
177
|
+
return Number.isNaN(num) ? null : num;
|
|
215
178
|
}
|
|
216
179
|
parseFirstCsvValue(value) {
|
|
217
180
|
if (!value) return null;
|
|
218
|
-
|
|
219
|
-
|
|
181
|
+
return value.trim();
|
|
182
|
+
}
|
|
183
|
+
parseNumberArray(value) {
|
|
184
|
+
if (!value) return null;
|
|
185
|
+
const values = value.split(',').map((v)=>Number.parseFloat(v.trim())).filter((n)=>!Number.isNaN(n));
|
|
186
|
+
return values.length > 0 ? values : null;
|
|
187
|
+
}
|
|
188
|
+
parseStringArray(value, separator = ';') {
|
|
189
|
+
if (!value) return null;
|
|
190
|
+
const values = value.split(separator).map((v)=>v.trim()).filter((v)=>v.length > 0);
|
|
191
|
+
return values.length > 0 ? values : null;
|
|
192
|
+
}
|
|
193
|
+
isMmuData(value, separator = ',') {
|
|
194
|
+
if (!value) return false;
|
|
195
|
+
const parts = value.split(separator).map((v)=>v.trim()).filter((v)=>v.length > 0);
|
|
196
|
+
return parts.length > 1;
|
|
197
|
+
}
|
|
198
|
+
sumNumberArray(values) {
|
|
199
|
+
if (!values || values.length === 0) return null;
|
|
200
|
+
return values.reduce((sum, val)=>sum + val, 0);
|
|
220
201
|
}
|
|
221
202
|
}
|
|
222
203
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/parsers/bgcode.parser.ts"],"names":["BGCodeParser","parse","filePath","stats","fs","stat","fileName","path","basename","
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/parsers/bgcode.parser.ts"],"names":["BGCodeParser","parse","filePath","stats","fs","stat","fileName","path","basename","fileHandle","open","version","checksumType","parseFileHeader","Error","blockHeaders","parseBlockHeaders","size","metadata","extractMetadataFromBlocks","thumbnails","extractThumbnailsFromBlocks","isMmu","isMmuData","nozzle_diameter","temperature","filament_used_mm","bed_temperature","filament_type","normalized","fileFormat","fileSize","producer","producedOn","produced_on","undefined","gcodePrintTimeSeconds","parseTime","estimated_printing_time_normal_mode","print_time","gcodePrintTimeSecondsSilent","estimated_printing_time_silent_mode","nozzleDiameterMm","parseNumberArray","parseFirstValue","filamentDiameterMm","filament_diameter","filamentDensityGramsCm3","filament_density","filamentUsedMm","filamentUsedCm3","filament_used_cm3","filamentUsedGrams","filament_used_g","totalFilamentUsedGrams","sumNumberArray","layerHeight","parseFloat","layer_height","firstLayerHeight","first_layer_height","initial_layer_height","bedTemperature","nozzleTemperature","fillDensity","fill_density","filamentType","parseStringArray","parseFirstCsvValue","printerModel","printer_model","slicerVersion","maxLayerZ","max_layer_z","totalLayers","parseInt","total_layers","layer_count","length","map","t","width","height","format","dataLength","data","blocks","b","type","BgCodeBlockTypeName","compressedSize","uncompressedSize","compression","BgCodeCompressionName","raw","_thumbnails","close","thumbnailBlocks","filter","BgCodeBlockTypes","Thumbnail","header","parameters","blockData","getBlockData","imageData","decompressBlock","processed","processThumbnail","push","extension","toString","parseNumber","value","parser","num","Number","isNaN","val","totalSeconds","hours","RegExp","exec","minutes","seconds","firstValue","split","trim","values","v","n","separator","parts","reduce","sum"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "GCodeParser", {
|
|
|
11
11
|
const _promises = /*#__PURE__*/ _interop_require_wildcard(require("node:fs/promises"));
|
|
12
12
|
const _nodereadline = /*#__PURE__*/ _interop_require_wildcard(require("node:readline"));
|
|
13
13
|
const _nodefs = require("node:fs");
|
|
14
|
+
const _bgcodethumbnailparser = require("../bgcode/bgcode-thumbnail.parser");
|
|
14
15
|
function _getRequireWildcardCache(nodeInterop) {
|
|
15
16
|
if (typeof WeakMap !== "function") return null;
|
|
16
17
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -206,11 +207,21 @@ class GCodeParser {
|
|
|
206
207
|
}
|
|
207
208
|
if (inThumbnail) {
|
|
208
209
|
if (line.match(/;\s*thumbnail end/i)) {
|
|
210
|
+
let base64Data = thumbnailData.join("");
|
|
211
|
+
let format = currentFormat.toUpperCase();
|
|
212
|
+
if (format === "QOI") {
|
|
213
|
+
try {
|
|
214
|
+
const qoiBuffer = Buffer.from(base64Data, 'base64');
|
|
215
|
+
const pngBuffer = (0, _bgcodethumbnailparser.convertQoiToPng)(qoiBuffer);
|
|
216
|
+
base64Data = pngBuffer.toString('base64');
|
|
217
|
+
format = "PNG";
|
|
218
|
+
} catch {}
|
|
219
|
+
}
|
|
209
220
|
thumbnails.push({
|
|
210
221
|
width: currentWidth,
|
|
211
222
|
height: currentHeight,
|
|
212
|
-
format
|
|
213
|
-
data:
|
|
223
|
+
format,
|
|
224
|
+
data: base64Data
|
|
214
225
|
});
|
|
215
226
|
inThumbnail = false;
|
|
216
227
|
thumbnailData = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/parsers/gcode.parser.ts"],"names":["GCodeParser","maxHeaderLinesToRead","maxFooterLinesToRead","parse","filePath","stats","fs","stat","fileName","split","pop","metadata","extractMetadata","thumbnails","extractThumbnails","normalized","fileFormat","fileSize","size","gcodePrintTimeSeconds","parseTime","estimated_printing_time_normal_mode","estimated_printing_time","print_time","nozzleDiameterMm","parseFloat","nozzle_diameter","filamentDiameterMm","filament_diameter","filamentDensityGramsCm3","filament_density","filamentUsedMm","filament_used_mm","filamentUsedCm3","filament_used_cm3","filamentUsedGrams","filament_used_g","totalFilamentUsedGrams","total_filament_used_g","layerHeight","layer_height","firstLayerHeight","first_layer_height","initial_layer_height","bedTemperature","bed_temperature","first_layer_bed_temperature","nozzleTemperature","temperature","first_layer_temperature","fillDensity","fill_density","filamentType","filament_type","printerModel","printer_model","printer_name","slicerVersion","generated_by","slicer_version","maxLayerZ","max_layer_z","totalLayers","parseInt","total_layers","layer_count","generatedBy","length","map","t","width","height","format","dataLength","data","undefined","raw","_thumbnails","extractMetadataFromStart","extractMetadataFromEnd","linesRead","fileStream","createReadStream","rl","readline","createInterface","input","crlfDelay","Infinity","line","parseMetadataLine","close","estimatedBytes","startPosition","Math","max","fileHandle","open","buffer","Buffer","alloc","bytesRead","read","text","toString","lines","startsWith","generatedByMatch","match","prusaMatch","key","trim","toLowerCase","replace","value","_","unit","content","curaMatch","normalizedKey","s3dMatch","inThumbnail","thumbnailData","currentWidth","currentHeight","currentFormat","thumbnailStart","thirdParam","test","toUpperCase","
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/parsers/gcode.parser.ts"],"names":["GCodeParser","maxHeaderLinesToRead","maxFooterLinesToRead","parse","filePath","stats","fs","stat","fileName","split","pop","metadata","extractMetadata","thumbnails","extractThumbnails","normalized","fileFormat","fileSize","size","gcodePrintTimeSeconds","parseTime","estimated_printing_time_normal_mode","estimated_printing_time","print_time","nozzleDiameterMm","parseFloat","nozzle_diameter","filamentDiameterMm","filament_diameter","filamentDensityGramsCm3","filament_density","filamentUsedMm","filament_used_mm","filamentUsedCm3","filament_used_cm3","filamentUsedGrams","filament_used_g","totalFilamentUsedGrams","total_filament_used_g","layerHeight","layer_height","firstLayerHeight","first_layer_height","initial_layer_height","bedTemperature","bed_temperature","first_layer_bed_temperature","nozzleTemperature","temperature","first_layer_temperature","fillDensity","fill_density","filamentType","filament_type","printerModel","printer_model","printer_name","slicerVersion","generated_by","slicer_version","maxLayerZ","max_layer_z","totalLayers","parseInt","total_layers","layer_count","generatedBy","length","map","t","width","height","format","dataLength","data","undefined","raw","_thumbnails","extractMetadataFromStart","extractMetadataFromEnd","linesRead","fileStream","createReadStream","rl","readline","createInterface","input","crlfDelay","Infinity","line","parseMetadataLine","close","estimatedBytes","startPosition","Math","max","fileHandle","open","buffer","Buffer","alloc","bytesRead","read","text","toString","lines","startsWith","generatedByMatch","match","prusaMatch","key","trim","toLowerCase","replace","value","_","unit","content","curaMatch","normalizedKey","s3dMatch","inThumbnail","thumbnailData","currentWidth","currentHeight","currentFormat","thumbnailStart","thirdParam","test","toUpperCase","base64Data","join","qoiBuffer","from","pngBuffer","convertQoiToPng","push","substring","num","isNaN","hours","minutes","secs","seconds"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/parsers/parser.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "extractThumbnailsFromMetadata", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return extractThumbnailsFromMetadata;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function extractThumbnailsFromMetadata(metadata) {
|
|
12
|
+
if (!metadata?._thumbnails) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
return (metadata._thumbnails || []).map((thumb)=>({
|
|
16
|
+
index: thumb.index,
|
|
17
|
+
width: thumb.width,
|
|
18
|
+
height: thumb.height,
|
|
19
|
+
format: thumb.format,
|
|
20
|
+
size: thumb.size
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=thumbnail.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/thumbnail.util.ts"],"names":["extractThumbnailsFromMetadata","metadata","_thumbnails","map","thumb","index","width","height","format","size"],"mappings":";;;;+BAQgBA;;;eAAAA;;;AAAT,SAASA,8BAA8BC,QAAa;IACzD,IAAI,CAACA,UAAUC,aAAa;QAC1B,OAAO,EAAE;IACX;IAEA,OAAO,AAACD,CAAAA,SAASC,WAAW,IAAI,EAAE,AAAD,EAAGC,GAAG,CAAC,CAACC,QAAgB,CAAA;YACvDC,OAAOD,MAAMC,KAAK;YAClBC,OAAOF,MAAME,KAAK;YAClBC,QAAQH,MAAMG,MAAM;YACpBC,QAAQJ,MAAMI,MAAM;YACpBC,MAAML,MAAMK,IAAI;QAClB,CAAA;AACF"}
|