@fdm-monster/server 1.9.2 → 1.9.4
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 +20 -0
- package/dist/consoles/mock-bambu.server.js +8 -40
- package/dist/consoles/mock-bambu.server.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +11 -4
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/server.constants.js +5 -8
- package/dist/server.constants.js.map +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js +44 -2
- package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
- package/dist/services/bambu/bambu-mqtt.adapter.js +34 -21
- package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
- package/dist/services/bambu.api.js +21 -3
- package/dist/services/bambu.api.js.map +1 -1
- package/dist/services/core/multer.service.js +37 -71
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +28 -6
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +13 -1
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/package.json +6 -7
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/RELEASE_NOTES.MD
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
# Develop
|
|
2
2
|
|
|
3
|
+
# FDM Monster 1.9.4
|
|
4
|
+
|
|
5
|
+
## Fixes
|
|
6
|
+
|
|
7
|
+
- Bambu mqtt adapter should connect using mqtts
|
|
8
|
+
- Bambu FTP works with .3mf (as well as gcode), FDM Monster now supports 3mf upload for bambu printer types
|
|
9
|
+
- Bambu: implemented socket state emitting for test functionality
|
|
10
|
+
- PrusaLink: implemented socket state emitting for test functionality
|
|
11
|
+
- Bambu: download file implemented via FTP
|
|
12
|
+
- FDM-Monster API: file upload now checks file extension after upload (not during upload)
|
|
13
|
+
|
|
14
|
+
# FDM Monster 1.9.3
|
|
15
|
+
|
|
16
|
+
## Fixes
|
|
17
|
+
|
|
18
|
+
- Bambu port was 1883 in code instead of 8883
|
|
19
|
+
- Removed confusing app constants wrongly suggesting mqtt configuration is an option
|
|
20
|
+
|
|
3
21
|
# FDM Monster 1.9.2
|
|
4
22
|
|
|
23
|
+
## Features
|
|
24
|
+
|
|
5
25
|
- Full yaml export with users, roles, settings
|
|
6
26
|
- Full yaml import (especially when getting started)
|
|
7
27
|
- Experimental bambu lab support (tested with mock bambu server)
|
|
@@ -8,18 +8,17 @@ const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
|
8
8
|
const _nodefs = /*#__PURE__*/ _interop_require_default(require("node:fs"));
|
|
9
9
|
const _nodeos = /*#__PURE__*/ _interop_require_default(require("node:os"));
|
|
10
10
|
const _selfsigned = /*#__PURE__*/ _interop_require_default(require("selfsigned"));
|
|
11
|
-
const _aedes = /*#__PURE__*/ _interop_require_default(require("aedes"));
|
|
12
|
-
const _nodenet = require("node:net");
|
|
13
11
|
function _interop_require_default(obj) {
|
|
14
12
|
return obj && obj.__esModule ? obj : {
|
|
15
13
|
default: obj
|
|
16
14
|
};
|
|
17
15
|
}
|
|
18
16
|
const DEFAULT_PORT = 990;
|
|
19
|
-
const DEFAULT_MQTT_PORT =
|
|
17
|
+
const DEFAULT_MQTT_PORT = 8883;
|
|
20
18
|
const DEFAULT_SERIAL = "01P00A000000001";
|
|
21
19
|
const DEFAULT_ACCESS_CODE = "12345678";
|
|
22
20
|
const MESSAGE_INTERVAL = 1000;
|
|
21
|
+
const DEFAULT_USERNAME = 'bblp';
|
|
23
22
|
const port = process.argv[2] ? Number.parseInt(process.argv[2]) : DEFAULT_PORT;
|
|
24
23
|
const mqttPort = process.argv[3] ? Number.parseInt(process.argv[3]) : DEFAULT_MQTT_PORT;
|
|
25
24
|
const serial = process.argv[4] || DEFAULT_SERIAL;
|
|
@@ -27,28 +26,10 @@ const accessCode = process.argv[5] || DEFAULT_ACCESS_CODE;
|
|
|
27
26
|
console.log(`[BAMBU MOCK] Starting Bambu Lab mock server`);
|
|
28
27
|
console.log(`[BAMBU MOCK] Configuration:`);
|
|
29
28
|
console.log(`[BAMBU MOCK] FTP Port: ${port}`);
|
|
30
|
-
console.log(`[BAMBU MOCK]
|
|
29
|
+
console.log(`[BAMBU MOCK] MQTT Broker expected at: mqtts://localhost:${mqttPort}`);
|
|
31
30
|
console.log(`[BAMBU MOCK] Serial: ${serial}`);
|
|
32
31
|
console.log(`[BAMBU MOCK] Access Code: ${accessCode}`);
|
|
33
32
|
console.log(`[BAMBU MOCK] Username: bblp`);
|
|
34
|
-
const aedes = new _aedes.default();
|
|
35
|
-
const mqttServer = (0, _nodenet.createServer)(aedes.handle);
|
|
36
|
-
mqttServer.listen(mqttPort, ()=>{
|
|
37
|
-
console.log(`[BAMBU MOCK MQTT] Embedded MQTT broker started on port ${mqttPort}`);
|
|
38
|
-
});
|
|
39
|
-
aedes.on('client', (client)=>{
|
|
40
|
-
console.log(`[BAMBU MOCK MQTT] Client connected: ${client.id}`);
|
|
41
|
-
});
|
|
42
|
-
aedes.on('clientDisconnect', (client)=>{
|
|
43
|
-
console.log(`[BAMBU MOCK MQTT] Client disconnected: ${client.id}`);
|
|
44
|
-
});
|
|
45
|
-
aedes.on('publish', (packet, client)=>{
|
|
46
|
-
if (client) {
|
|
47
|
-
if (!packet.topic.startsWith('$SYS')) {
|
|
48
|
-
console.log(`[BAMBU MOCK MQTT] Message published to ${packet.topic} by ${client.id}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
33
|
const ftpDir = _nodepath.default.join(_nodeos.default.tmpdir(), "bambu-mock-ftp", serial);
|
|
53
34
|
const sdcardDir = _nodepath.default.join(ftpDir, "sdcard");
|
|
54
35
|
if (!_nodefs.default.existsSync(ftpDir)) {
|
|
@@ -133,8 +114,11 @@ const PRINT_DURATION = 20;
|
|
|
133
114
|
console.log(`[BAMBU MOCK FTP] FTP server is running on port ${port}`);
|
|
134
115
|
console.log(`[BAMBU MOCK FTP] FTP directory: ${ftpDir}`);
|
|
135
116
|
});
|
|
136
|
-
const mqttClient = _mqtt.default.connect(`
|
|
137
|
-
clientId: `bambu_mock_${serial}_${Date.now()}
|
|
117
|
+
const mqttClient = _mqtt.default.connect(`mqtts://localhost:${mqttPort}`, {
|
|
118
|
+
clientId: `bambu_mock_${serial}_${Date.now()}`,
|
|
119
|
+
username: DEFAULT_USERNAME,
|
|
120
|
+
password: accessCode,
|
|
121
|
+
rejectUnauthorized: false
|
|
138
122
|
});
|
|
139
123
|
mqttClient.on("connect", ()=>{
|
|
140
124
|
console.log(`[BAMBU MOCK MQTT] Connected to MQTT broker at localhost:${mqttPort}`);
|
|
@@ -267,15 +251,6 @@ const PRINT_DURATION = 20;
|
|
|
267
251
|
console.log("[BAMBU MOCK MQTT] Disconnecting MQTT client...");
|
|
268
252
|
await mqttClient.endAsync();
|
|
269
253
|
}
|
|
270
|
-
console.log("[BAMBU MOCK MQTT] Closing embedded MQTT broker...");
|
|
271
|
-
await new Promise((resolve)=>{
|
|
272
|
-
mqttServer.close(()=>{
|
|
273
|
-
aedes.close(()=>{
|
|
274
|
-
console.log("[BAMBU MOCK MQTT] Embedded MQTT broker closed");
|
|
275
|
-
resolve();
|
|
276
|
-
});
|
|
277
|
-
});
|
|
278
|
-
});
|
|
279
254
|
console.log("[BAMBU MOCK FTP] Closing FTP server...");
|
|
280
255
|
await ftpServer.close();
|
|
281
256
|
console.log("[BAMBU MOCK] Cleanup complete. Exiting.");
|
|
@@ -286,13 +261,6 @@ const PRINT_DURATION = 20;
|
|
|
286
261
|
if (mqttClient.connected) {
|
|
287
262
|
await mqttClient.endAsync();
|
|
288
263
|
}
|
|
289
|
-
await new Promise((resolve)=>{
|
|
290
|
-
mqttServer.close(()=>{
|
|
291
|
-
aedes.close(()=>{
|
|
292
|
-
resolve();
|
|
293
|
-
});
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
264
|
await ftpServer.close();
|
|
297
265
|
process.exit(0);
|
|
298
266
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/consoles/mock-bambu.server.ts"],"names":["DEFAULT_PORT","DEFAULT_MQTT_PORT","DEFAULT_SERIAL","DEFAULT_ACCESS_CODE","MESSAGE_INTERVAL","port","process","argv","Number","parseInt","mqttPort","serial","accessCode","console","log","
|
|
1
|
+
{"version":3,"sources":["../../src/consoles/mock-bambu.server.ts"],"names":["DEFAULT_PORT","DEFAULT_MQTT_PORT","DEFAULT_SERIAL","DEFAULT_ACCESS_CODE","MESSAGE_INTERVAL","DEFAULT_USERNAME","port","process","argv","Number","parseInt","mqttPort","serial","accessCode","console","log","ftpDir","path","join","os","tmpdir","sdcardDir","fs","existsSync","mkdirSync","recursive","generateSelfSignedCert","attrs","name","value","options","days","algorithm","keySize","pems","selfsigned","generate","key","private","cert","minVersion","ciphers","isPrinting","currentPrintFile","printProgress","isPaused","nozzleTemp","bedTemp","printStartTime","PRINT_DURATION","tlsCerts","ftpServer","FtpSrv","url","pasv_url","pasv_min","pasv_max","tls","anonymous","greeting","on","connection","username","password","resolve","reject","root","Error","context","error","listen","then","mqttClient","mqtt","connect","clientId","Date","now","rejectUnauthorized","reportTopic","requestTopic","subscribe","err","publishState","elapsedSeconds","Math","min","max","state","print","nozzle_temper","round","nozzle_target_temper","bed_temper","bed_target_temper","chamber_temper","mc_percent","mc_remaining_time","mc_print_stage","gcode_state","gcode_file","wifi_signal","layer_num","floor","total_layer_num","subtask_name","heatbreak_fan_speed","cooling_fan_speed","big_fan1_speed","big_fan2_speed","spd_lvl","spd_mag","print_error","lifecycle","command","msg","sequence_id","String","publish","JSON","stringify","qos","setInterval","topic","message","payload","parse","toString","filename","param","endsWith","pausedProgress","connected","endAsync","close","exit","catch"],"mappings":"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"}
|
|
@@ -147,18 +147,19 @@ class PrinterFilesController {
|
|
|
147
147
|
res.send(printerThumbnail);
|
|
148
148
|
}
|
|
149
149
|
async uploadPrinterFile(req, res) {
|
|
150
|
-
const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
|
|
151
|
-
const
|
|
150
|
+
const { currentPrinterId, currentPrinter } = (0, _printerresolver.getScopedPrinter)(req);
|
|
151
|
+
const acceptedExtensions = this.getAcceptedFileExtensions(currentPrinter.printerType);
|
|
152
|
+
const files = await this.multerService.multerLoadFileAsync(req, res, acceptedExtensions, true);
|
|
152
153
|
const { startPrint: startPrintString } = await (0, _validators.validateInput)(req.body, _printerfilescontrollervalidation.uploadFileSchema);
|
|
153
154
|
const startPrint = startPrintString === "true";
|
|
154
155
|
if (!files?.length) {
|
|
155
156
|
throw new _runtimeexceptions.ValidationException({
|
|
156
|
-
error: `No file was available for upload. Did you upload files with one of these extensions: ${
|
|
157
|
+
error: `No file was available for upload. Did you upload files with one of these extensions: ${acceptedExtensions.join(", ")}?`
|
|
157
158
|
});
|
|
158
159
|
}
|
|
159
160
|
if (files.length > 1) {
|
|
160
161
|
throw new _runtimeexceptions.ValidationException({
|
|
161
|
-
error: "Only 1
|
|
162
|
+
error: "Only 1 file can be uploaded at a time"
|
|
162
163
|
});
|
|
163
164
|
}
|
|
164
165
|
const fileCleanEnabled = this.settingsStore.isPreUploadFileCleanEnabled();
|
|
@@ -191,6 +192,12 @@ class PrinterFilesController {
|
|
|
191
192
|
}
|
|
192
193
|
res.send();
|
|
193
194
|
}
|
|
195
|
+
getAcceptedFileExtensions(printerType) {
|
|
196
|
+
if (printerType === _printerapiinterface.BambuType) {
|
|
197
|
+
return _serverconstants.AppConstants.defaultAcceptedBambuExtensions;
|
|
198
|
+
}
|
|
199
|
+
return _serverconstants.AppConstants.defaultAcceptedGcodeExtensions;
|
|
200
|
+
}
|
|
194
201
|
}
|
|
195
202
|
_ts_decorate([
|
|
196
203
|
(0, _awilixexpress.POST)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controllers/printer-files.controller.ts"],"names":["PrinterFilesController","logger","loggerFactory","printerApi","printerLogin","printerFilesStore","printerFileCleanTask","settingsStore","multerService","printerThumbnailCache","name","purgeIndexedFiles","req","res","purgeFiles","send","getThumbnails","thumbnails","getAllValues","getFiles","currentPrinterId","getScopedPrinter","log","files","loadFiles","reloadThumbnail","filePath","validateInput","body","startPrintFileSchema","isThumbnailSupportEnabled","loadPrinterThumbnailRemote","params","id","e","error","errorSummary","captureException","startPrintFile","encodedFilePath","encodeURIComponent","startPrint","getFilesCache","currentPrinter","downloadFile","path","downloadFileSchema","response","setHeader","headers","length","data","pipe","deleteFileOrFolder","query","getFileSchema","result","deleteFile","clearPrinterFiles","failedFiles","succeededFiles","nonRecursiveFiles","file","push","purgePrinterFiles","getPrinterThumbnail","printerThumbnail","getValue","toString","uploadPrinterFile","
|
|
1
|
+
{"version":3,"sources":["../../src/controllers/printer-files.controller.ts"],"names":["PrinterFilesController","logger","loggerFactory","printerApi","printerLogin","printerFilesStore","printerFileCleanTask","settingsStore","multerService","printerThumbnailCache","name","purgeIndexedFiles","req","res","purgeFiles","send","getThumbnails","thumbnails","getAllValues","getFiles","currentPrinterId","getScopedPrinter","log","files","loadFiles","reloadThumbnail","filePath","validateInput","body","startPrintFileSchema","isThumbnailSupportEnabled","loadPrinterThumbnailRemote","params","id","e","error","errorSummary","captureException","startPrintFile","encodedFilePath","encodeURIComponent","startPrint","getFilesCache","currentPrinter","downloadFile","path","downloadFileSchema","response","setHeader","headers","length","data","pipe","deleteFileOrFolder","query","getFileSchema","result","deleteFile","clearPrinterFiles","failedFiles","succeededFiles","nonRecursiveFiles","file","push","purgePrinterFiles","getPrinterThumbnail","printerThumbnail","getValue","toString","uploadPrinterFile","acceptedExtensions","getAcceptedFileExtensions","printerType","multerLoadFileAsync","startPrintString","uploadFileSchema","ValidationException","join","fileCleanEnabled","isPreUploadFileCleanEnabled","cleanPrinterFiles","uploadedFile","token","startTrackingSession","uploadFile","catch","clearUploadedFile","loadPrinterThumbnailLocal","BambuType","AppConstants","defaultAcceptedBambuExtensions","defaultAcceptedGcodeExtensions","PrinterFiles","Clear","Get","Actions","Delete","Upload","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","printerResolveMiddleware"],"mappings":";;;;+BA6BaA;;;eAAAA;;;+BA7BoC;8BACQ;4BAC3B;iCACD;kDAMtB;mCAC6B;yBACK;wCACZ;mCACK;+BACJ;+BACA;sCACO;+BAEN;yBACG;qCACI;uCACA;sBACL;4BACJ;0BACJ;iCACQ;;;;;;;;;;AAI1B,MAAMA;;;;;;;;IACMC,OAAsB;IAEvC,YACEC,aAA6B,EAC7B,AAAiBC,UAAuB,EACxC,AAAiBC,YAAsB,EACvC,AAAiBC,iBAAoC,EACrD,AAAiBC,oBAA0C,EAC3D,AAAiBC,aAA4B,EAC7C,AAAiBC,aAA4B,EAC7C,AAAiBC,qBAA4C,CAC7D;aAPiBN,aAAAA;aACAC,eAAAA;aACAC,oBAAAA;aACAC,uBAAAA;aACAC,gBAAAA;aACAC,gBAAAA;aACAC,wBAAAA;QAEjB,IAAI,CAACR,MAAM,GAAGC,cAAcF,uBAAuBU,IAAI;IACzD;IAEA,MAGMC,kBAAkBC,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,IAAI,CAACR,iBAAiB,CAACS,UAAU;QACvCD,IAAIE,IAAI;IACV;IAEA,MAGMC,cAAcJ,GAAY,EAAEC,GAAa,EAAE;QAC/C,MAAMI,aAAa,MAAM,IAAI,CAACR,qBAAqB,CAACS,YAAY;QAChEL,IAAIE,IAAI,CAACE;IACX;IAEA,MAGME,SAASP,GAAY,EAAEC,GAAa,EAAE;QAC1C,MAAM,EAAEO,gBAAgB,EAAE,GAAGC,IAAAA,iCAAgB,EAACT;QAC9C,IAAI,CAACX,MAAM,CAACqB,GAAG,CAAC;QAChB,MAAMC,QAAQ,MAAM,IAAI,CAAClB,iBAAiB,CAACmB,SAAS,CAACJ;QACrDP,IAAIE,IAAI,CAACQ;IACX;IAEA,MAGME,gBAAgBb,GAAY,EAAEC,GAAa,EAAE;QACjD,MAAM,EAAEa,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACf,IAAIgB,IAAI,EAAEC,sDAAoB;QAEvE,IAAI;YACF,IAAI,IAAI,CAACtB,aAAa,CAACuB,yBAAyB,IAAI;gBAClD,MAAM,IAAI,CAACrB,qBAAqB,CAACsB,0BAA0B,CAAC,IAAI,CAAC3B,YAAY,EAAEQ,IAAIoB,MAAM,CAACC,EAAE,EAAEP;YAChG;QACF,EAAE,OAAOQ,GAAG;YACV,IAAI,CAACjC,MAAM,CAACkC,KAAK,CAAC,CAAC,sCAAsC,EAAEC,IAAAA,wBAAY,EAACF,IAAI;YAC5EG,IAAAA,sBAAgB,EAACH;QACnB;QAEArB,IAAIE,IAAI;IACV;IAEA,MAOMuB,eAAe1B,GAAY,EAAEC,GAAa,EAAE;QAChD,MAAM,EAAEa,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACf,IAAIgB,IAAI,EAAEC,sDAAoB;QACvE,MAAMU,kBAAkBC,mBAAmBd;QAC3C,MAAM,IAAI,CAACvB,UAAU,CAACsC,UAAU,CAACF;QAEjC,IAAI;YACF,IAAI,IAAI,CAAChC,aAAa,CAACuB,yBAAyB,IAAI;gBAClD,MAAM,IAAI,CAACrB,qBAAqB,CAACsB,0BAA0B,CAAC,IAAI,CAAC3B,YAAY,EAAEQ,IAAIoB,MAAM,CAACC,EAAE,EAAEM;YAChG;QACF,EAAE,OAAOL,GAAG;YACV,IAAI,CAACjC,MAAM,CAACkC,KAAK,CAAC,CAAC,sCAAsC,EAAEC,IAAAA,wBAAY,EAACF,IAAI;YAC5EG,IAAAA,sBAAgB,EAACH;QACnB;QAEArB,IAAIE,IAAI;IACV;IAEA,MAGM2B,cAAc9B,GAAY,EAAEC,GAAa,EAAE;QAC/C,MAAM,EAAE8B,cAAc,EAAE,GAAGtB,IAAAA,iCAAgB,EAACT;QAC5CC,IAAIE,IAAI,CAAC,IAAI,CAACV,iBAAiB,CAACc,QAAQ,CAACwB,eAAeV,EAAE;IAC5D;IAEA,MAGMW,aAAahC,GAAY,EAAEC,GAAa,EAAE;QAC9C,IAAI,CAACZ,MAAM,CAACqB,GAAG,CAAC,CAAC,iBAAiB,EAAEV,IAAIoB,MAAM,CAACa,IAAI,EAAE;QACrD,MAAM,EAAEA,IAAI,EAAE,GAAG,MAAMlB,IAAAA,yBAAa,EAACf,IAAIoB,MAAM,EAAEc,oDAAkB;QACnE,MAAMP,kBAAkBC,mBAAmBK;QAE3C,MAAME,WAAW,MAAM,IAAI,CAAC5C,UAAU,CAACyC,YAAY,CAACL;QACpD1B,IAAImC,SAAS,CAAC,gBAAgBD,SAASE,OAAO,CAAC,eAAe;QAC9DpC,IAAImC,SAAS,CAAC,kBAAkBD,SAASE,OAAO,CAAC,iBAAiB;QAClEpC,IAAImC,SAAS,CAAC,uBAAuBD,SAASE,OAAO,CAAC,sBAAsB;QAC5E,IAAIF,SAASE,OAAO,CAAC,OAAO,EAAEC,QAAQ;YACpCrC,IAAImC,SAAS,CAAC,QAAQD,SAASE,OAAO,CAAC,OAAO;QAChD;QACAF,SAASI,IAAI,CAACC,IAAI,CAACvC;IACrB;IAEA,MAGMwC,mBAAmBzC,GAAY,EAAEC,GAAa,EAAE;QACpD,MAAM,EAAEO,gBAAgB,EAAE,GAAGC,IAAAA,iCAAgB,EAACT;QAC9C,MAAM,EAAEiC,IAAI,EAAE,GAAG,MAAMlB,IAAAA,yBAAa,EAACf,IAAI0C,KAAK,EAAEC,+CAAa;QAC7D,MAAMhB,kBAAkBC,mBAAmBK;QAE3C,MAAMW,SAAS,MAAM,IAAI,CAACrD,UAAU,CAACsD,UAAU,CAAClB;QAChD,MAAM,IAAI,CAAClC,iBAAiB,CAACoD,UAAU,CAACrC,kBAAkByB;QAC1DhC,IAAIE,IAAI,CAACyC;IACX;IAEA,MAGME,kBAAkB9C,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,EAAEO,gBAAgB,EAAE,GAAGC,IAAAA,iCAAgB,EAACT;QAE9C,MAAM+C,cAAc,EAAE;QACtB,MAAMC,iBAAiB,EAAE;QAEzB,MAAMC,oBAAoB,MAAM,IAAI,CAAC1D,UAAU,CAACgB,QAAQ;QACxD,KAAK,IAAI2C,QAAQD,kBAAmB;YAClC,IAAI;gBACF,MAAMtB,kBAAkBC,mBAAmBsB,KAAKjB,IAAI;gBACpD,MAAM,IAAI,CAAC1C,UAAU,CAACsD,UAAU,CAAClB;gBACjCqB,eAAeG,IAAI,CAACD;YACtB,EAAE,OAAO5B,GAAG;gBACVyB,YAAYI,IAAI,CAACD;YACnB;QACF;QAEA,MAAM,IAAI,CAACzD,iBAAiB,CAAC2D,iBAAiB,CAAC5C;QAE/CP,IAAIE,IAAI,CAAC;YACP4C;YACAC;QACF;IACF;IAEA,MAGMK,oBAAoBrD,GAAY,EAAEC,GAAa,EAAE;QACrD,MAAM,EAAEO,gBAAgB,EAAE,GAAGC,IAAAA,iCAAgB,EAACT;QAC9C,MAAMsD,mBAAmB,MAAM,IAAI,CAACzD,qBAAqB,CAAC0D,QAAQ,CAAC/C,iBAAiBgD,QAAQ;QAC5FvD,IAAIE,IAAI,CAACmD;IACX;IAEA,MAGMG,kBAAkBzD,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,EAAEO,gBAAgB,EAAEuB,cAAc,EAAE,GAAGtB,IAAAA,iCAAgB,EAACT;QAG9D,MAAM0D,qBAAqB,IAAI,CAACC,yBAAyB,CAAC5B,eAAe6B,WAAW;QAEpF,MAAMjD,QAAQ,MAAM,IAAI,CAACf,aAAa,CAACiE,mBAAmB,CACxD7D,KACAC,KACAyD,oBACA;QAIF,MAAM,EAAE7B,YAAYiC,gBAAgB,EAAE,GAAG,MAAM/C,IAAAA,yBAAa,EAACf,IAAIgB,IAAI,EAAE+C,kDAAgB;QACvF,MAAMlC,aAAaiC,qBAAqB;QAExC,IAAI,CAACnD,OAAO2B,QAAQ;YAClB,MAAM,IAAI0B,sCAAmB,CAAC;gBAC5BzC,OAAO,CAAC,qFAAqF,EAAEmC,mBAAmBO,IAAI,CACpH,MACA,CAAC,CAAC;YACN;QACF;QACA,IAAItD,MAAM2B,MAAM,GAAG,GAAG;YACpB,MAAM,IAAI0B,sCAAmB,CAAC;gBAC5BzC,OAAO;YACT;QACF;QAGA,MAAM2C,mBAAmB,IAAI,CAACvE,aAAa,CAACwE,2BAA2B;QACvE,IAAID,kBAAkB;YACpB,MAAM,IAAI,CAACxE,oBAAoB,CAAC0E,iBAAiB,CAAC5D;QACpD;QAEA,MAAM6D,eAAe1D,KAAK,CAAC,EAAE;QAC7B,MAAM2D,QAAQ,IAAI,CAAC1E,aAAa,CAAC2E,oBAAoB,CAACF,cAAc7D;QAEpE,MAAM,IAAI,CAACjB,UAAU,CAACiF,UAAU,CAACH,cAAcxC,YAAYyC,OAAOG,KAAK,CAAC,CAACnD;YACvE,IAAI;gBACF,IAAI,CAAC1B,aAAa,CAAC8E,iBAAiB,CAACL;YACvC,EAAE,OAAO/C,GAAG;gBACV,IAAI,CAACjC,MAAM,CAACkC,KAAK,CAAC,CAAC,sDAAsD,EAAEC,IAAAA,wBAAY,EAACF,IAAI;YAC9F;YACA,MAAMA;QACR;QACA,MAAM,IAAI,CAAC7B,iBAAiB,CAACmB,SAAS,CAACJ;QAEvC,IAAI;YACF,IAAI,IAAI,CAACb,aAAa,CAACuB,yBAAyB,IAAI;gBAClD,MAAM,IAAI,CAACrB,qBAAqB,CAAC8E,yBAAyB,CAACnE,kBAAkBG,KAAK,CAAC,EAAE,CAACsB,IAAI;YAC5F;QACF,EAAE,OAAOX,GAAG;YACV,IAAI,CAACjC,MAAM,CAACkC,KAAK,CAAC,CAAC,sCAAsC,EAAEC,IAAAA,wBAAY,EAACF,IAAI;YAC5EG,IAAAA,sBAAgB,EAACH;QACnB;QAEA,IAAI;YACF,IAAI,CAAC1B,aAAa,CAAC8E,iBAAiB,CAACL;QACvC,EAAE,OAAO/C,GAAG;YACV,IAAI,CAACjC,MAAM,CAACkC,KAAK,CAAC,CAAC,sDAAsD,EAAEC,IAAAA,wBAAY,EAACF,IAAI;QAC9F;QAEArB,IAAIE,IAAI;IACV;IAEQwD,0BAA0BC,WAAmB,EAAY;QAC/D,IAAIA,gBAAgBgB,8BAAS,EAAE;YAC7B,OAAOC,6BAAY,CAACC,8BAA8B;QACpD;QACA,OAAOD,6BAAY,CAACE,8BAA8B;IACpD;AACF;;;;2FA1N2BC,aAAaC;;;;;;;;;;;2FAQbD,aAAaE;;;;;;;;;;;2FAQbF,aAAaE;;;;;;;;;;;2FAUbF,aAAaG;;;;;;;;;;;;2FAsBbH,aAAaG;;;;;;;;;;;2FAoBbH,aAAaE;;;;;;;;;;;2FAQbF,aAAaE;;;;;;;;;;;2FAkBbF,aAAaI;;;;;;;;;;;2FAabJ,aAAaC;;;;;;;;;;;2FA4BbD,aAAaE;;;;;;;;;;;2FASbF,aAAaK;;;;;;;;;8BApKjCR,6BAAY,CAACS,QAAQ,GAAG;;QACtBC,IAAAA,0BAAY;QAAIC,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;YAAED,6BAAK,CAACE,QAAQ;SAAC;QAAGC,IAAAA,iCAAwB"}
|
package/dist/server.constants.js
CHANGED
|
@@ -28,6 +28,10 @@ const AppConstants = {
|
|
|
28
28
|
".gcode",
|
|
29
29
|
".bgcode"
|
|
30
30
|
],
|
|
31
|
+
defaultAcceptedBambuExtensions: [
|
|
32
|
+
".gcode",
|
|
33
|
+
".3mf"
|
|
34
|
+
],
|
|
31
35
|
defaultServerPort: 4000,
|
|
32
36
|
defaultMongoStringUnauthenticated: "mongodb://127.0.0.1:27017/fdm-monster",
|
|
33
37
|
apiRoute: "/api",
|
|
@@ -71,7 +75,7 @@ const AppConstants = {
|
|
|
71
75
|
githubUrl: "https://github.com/fdm-monster/fdm-monster",
|
|
72
76
|
orgName: "fdm-monster",
|
|
73
77
|
currentWizardVersion: 1,
|
|
74
|
-
defaultClientMinimum: "1.12.
|
|
78
|
+
defaultClientMinimum: "1.12.3",
|
|
75
79
|
influxUrl: "INFLUX_URL",
|
|
76
80
|
influxToken: "INFLUX_TOKEN",
|
|
77
81
|
influxOrg: "INFLUX_ORG",
|
|
@@ -80,13 +84,6 @@ const AppConstants = {
|
|
|
80
84
|
defaultSocketThrottleRate: 1,
|
|
81
85
|
debugSocketStatesKey: "DEBUG_SOCKET_STATES",
|
|
82
86
|
defaultDebugSocketStates: "false",
|
|
83
|
-
enableMqttAutoDiscoveryToken: "ENABLE_MQTT_AUTODISCOVERY",
|
|
84
|
-
enableMqttAutoDiscoveryDefault: "false",
|
|
85
|
-
mqttUrlToken: "MQTT_HOST",
|
|
86
|
-
mqttPortToken: "MQTT_PORT",
|
|
87
|
-
mqttPortDefault: 1883,
|
|
88
|
-
mqttUsernameToken: "MQTT_USERNAME",
|
|
89
|
-
mqttPasswordToken: "MQTT_PASSWORD",
|
|
90
87
|
monsterPiFilePath: "/etc/monsterpi_version",
|
|
91
88
|
sentryCustomDsnToken: "SENTRY_CUSTOM_DSN",
|
|
92
89
|
sentryCustomDsnDefault: "https://164b8028a8a745bba3dbcab991b84ae7@o4503975545733120.ingest.sentry.io/4505101598261248",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","ENABLE_COLORED_LOGS_KEY","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","
|
|
1
|
+
{"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","ENABLE_COLORED_LOGS_KEY","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,gCAAgC;QAAC;QAAU;KAAO;IAClDC,mBAAmB;IACnBC,mCAAmC;IACnCC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,yBAAyB;IACzBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;IAClCC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
|
|
@@ -11,8 +11,9 @@ Object.defineProperty(exports, "BambuFtpAdapter", {
|
|
|
11
11
|
const _basicftp = require("basic-ftp");
|
|
12
12
|
const _eventconstants = require("../../constants/event.constants");
|
|
13
13
|
const _nodefs = require("node:fs");
|
|
14
|
-
const _nodeos = require("node:os");
|
|
15
14
|
const _nodepath = require("node:path");
|
|
15
|
+
const _serverconstants = require("../../server.constants");
|
|
16
|
+
const _fsutils = require("../../utils/fs.utils");
|
|
16
17
|
class BambuFtpAdapter {
|
|
17
18
|
settingsStore;
|
|
18
19
|
eventEmitter2;
|
|
@@ -91,10 +92,19 @@ class BambuFtpAdapter {
|
|
|
91
92
|
throw error;
|
|
92
93
|
}
|
|
93
94
|
}
|
|
95
|
+
getFileStoragePath(filename) {
|
|
96
|
+
const storagePath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder);
|
|
97
|
+
if (!(0, _nodefs.existsSync)(storagePath)) {
|
|
98
|
+
(0, _nodefs.mkdirSync)(storagePath, {
|
|
99
|
+
recursive: true
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return (0, _nodepath.join)(storagePath, filename);
|
|
103
|
+
}
|
|
94
104
|
async uploadFile(fileBuffer, filename, progressToken) {
|
|
95
105
|
this.ensureConnected();
|
|
96
106
|
const remotePath = `/sdcard/${filename}`;
|
|
97
|
-
const tempPath =
|
|
107
|
+
const tempPath = this.getFileStoragePath(`bambu-upload-${Date.now()}-${filename}`);
|
|
98
108
|
try {
|
|
99
109
|
(0, _nodefs.writeFileSync)(tempPath, fileBuffer);
|
|
100
110
|
this.logger.debug(`Wrote temp file: ${tempPath}`);
|
|
@@ -139,6 +149,38 @@ class BambuFtpAdapter {
|
|
|
139
149
|
throw error;
|
|
140
150
|
}
|
|
141
151
|
}
|
|
152
|
+
async downloadFileAsStream(remotePath) {
|
|
153
|
+
this.ensureConnected();
|
|
154
|
+
const filename = remotePath.split("/").pop() || "download";
|
|
155
|
+
const tempPath = this.getFileStoragePath(`bambu-download-${Date.now()}-${filename}`);
|
|
156
|
+
try {
|
|
157
|
+
this.logger.log(`Downloading ${remotePath} to temp file for streaming`);
|
|
158
|
+
await this.ftpClient.downloadTo(tempPath, remotePath);
|
|
159
|
+
this.logger.log(`File downloaded successfully: ${remotePath}`);
|
|
160
|
+
const stream = (0, _nodefs.createReadStream)(tempPath);
|
|
161
|
+
const cleanup = ()=>{
|
|
162
|
+
try {
|
|
163
|
+
(0, _nodefs.unlinkSync)(tempPath);
|
|
164
|
+
this.logger.debug(`Cleaned up temp file: ${tempPath}`);
|
|
165
|
+
} catch (cleanupError) {
|
|
166
|
+
this.logger.warn(`Failed to cleanup temp file ${tempPath}:`, cleanupError);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
stream.on("close", cleanup);
|
|
170
|
+
stream.on("error", cleanup);
|
|
171
|
+
return {
|
|
172
|
+
stream,
|
|
173
|
+
tempPath,
|
|
174
|
+
cleanup
|
|
175
|
+
};
|
|
176
|
+
} catch (error) {
|
|
177
|
+
try {
|
|
178
|
+
(0, _nodefs.unlinkSync)(tempPath);
|
|
179
|
+
} catch {}
|
|
180
|
+
this.logger.error(`Download failed for ${remotePath}:`, error);
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
142
184
|
async deleteFile(remotePath) {
|
|
143
185
|
this.ensureConnected();
|
|
144
186
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/bambu/bambu-ftp.adapter.ts"],"names":["BambuFtpAdapter","logger","ftpClient","host","accessCode","isConnecting","settingsStore","loggerFactory","eventEmitter2","name","connect","closed","debug","Error","sanitizedHost","sanitizeHost","sanitizedAccessCode","sanitizeAccessCode","timeout","getTimeoutSettings","apiTimeout","log","Client","ftp","verbose","access","port","user","password","secure","secureOptions","rejectUnauthorized","minVersion","maxVersion","error","cleanup","disconnect","close","listFiles","dirPath","ensureConnected","files","list","length","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/bambu/bambu-ftp.adapter.ts"],"names":["BambuFtpAdapter","logger","ftpClient","host","accessCode","isConnecting","settingsStore","loggerFactory","eventEmitter2","name","connect","closed","debug","Error","sanitizedHost","sanitizeHost","sanitizedAccessCode","sanitizeAccessCode","timeout","getTimeoutSettings","apiTimeout","log","Client","ftp","verbose","access","port","user","password","secure","secureOptions","rejectUnauthorized","minVersion","maxVersion","error","cleanup","disconnect","close","listFiles","dirPath","ensureConnected","files","list","length","getFileStoragePath","filename","storagePath","join","superRootPath","AppConstants","defaultFileStorageFolder","existsSync","mkdirSync","recursive","uploadFile","fileBuffer","progressToken","remotePath","tempPath","Date","now","writeFileSync","trackProgress","info","emit","uploadProgressEvent","loaded","bytes","total","bytesOverall","uploadFrom","uploadDoneEvent","uploadFailedEvent","message","unlinkSync","cleanupError","warn","downloadFile","localPath","downloadTo","downloadFileAsStream","split","pop","stream","createReadStream","on","deleteFile","remove","isConnected","trimmed","trim","ipv4Pattern","hostnamePattern","test","parts","map","Number","some","part","alphanumericPattern"],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ const _mqtt = /*#__PURE__*/ _interop_require_default(require("mqtt"));
|
|
|
20
20
|
const _socketstatetype = require("../../shared/dtos/socket-state.type");
|
|
21
21
|
const _apistatetype = require("../../shared/dtos/api-state.type");
|
|
22
22
|
const _printerapiinterface = require("../printer-api.interface");
|
|
23
|
+
const _octoprintwebsocketadapter = require("../octoprint/octoprint-websocket.adapter");
|
|
23
24
|
function _interop_require_default(obj) {
|
|
24
25
|
return obj && obj.__esModule ? obj : {
|
|
25
26
|
default: obj
|
|
@@ -78,7 +79,7 @@ class BambuMqttAdapter {
|
|
|
78
79
|
}
|
|
79
80
|
this.connect(this.host, this.accessCode, this.serial).catch((err)=>{
|
|
80
81
|
this.logger.error("Failed to open MQTT connection: " + err.toString());
|
|
81
|
-
this.
|
|
82
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.error);
|
|
82
83
|
});
|
|
83
84
|
}
|
|
84
85
|
close() {
|
|
@@ -88,12 +89,12 @@ class BambuMqttAdapter {
|
|
|
88
89
|
}
|
|
89
90
|
async setupSocketSession() {
|
|
90
91
|
if (!this.host || !this.accessCode || !this.serial) {
|
|
91
|
-
this.
|
|
92
|
-
this.
|
|
92
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.aborted);
|
|
93
|
+
this.updateApiState(_apistatetype.API_STATE.noResponse);
|
|
93
94
|
throw new Error("Credentials not properly registered");
|
|
94
95
|
}
|
|
95
|
-
this.
|
|
96
|
-
this.
|
|
96
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.opening);
|
|
97
|
+
this.updateApiState(_apistatetype.API_STATE.responding);
|
|
97
98
|
}
|
|
98
99
|
allowEmittingEvents() {
|
|
99
100
|
this.eventsAllowed = true;
|
|
@@ -104,7 +105,7 @@ class BambuMqttAdapter {
|
|
|
104
105
|
async connect(host, accessCode, serial) {
|
|
105
106
|
if (this.mqttClient?.connected) {
|
|
106
107
|
this.logger.debug("MQTT already connected");
|
|
107
|
-
this.
|
|
108
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.opened);
|
|
108
109
|
return;
|
|
109
110
|
}
|
|
110
111
|
if (this.isConnecting) {
|
|
@@ -114,14 +115,14 @@ class BambuMqttAdapter {
|
|
|
114
115
|
this.accessCode = accessCode;
|
|
115
116
|
this.serial = serial;
|
|
116
117
|
this.isConnecting = true;
|
|
117
|
-
this.
|
|
118
|
-
const mqttUrl = `
|
|
118
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.opening);
|
|
119
|
+
const mqttUrl = `mqtts://${host}:8883`;
|
|
119
120
|
const timeout = this.settingsStore.getTimeoutSettings().apiTimeout;
|
|
120
121
|
this.logger.log(`Connecting to Bambu MQTT at ${mqttUrl}`);
|
|
121
122
|
return new Promise((resolve, reject)=>{
|
|
122
123
|
const connectionTimeout = setTimeout(()=>{
|
|
123
124
|
this.isConnecting = false;
|
|
124
|
-
this.
|
|
125
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.error);
|
|
125
126
|
this.cleanup();
|
|
126
127
|
reject(new Error("MQTT connection timeout"));
|
|
127
128
|
}, timeout);
|
|
@@ -130,16 +131,17 @@ class BambuMqttAdapter {
|
|
|
130
131
|
username: "bblp",
|
|
131
132
|
password: accessCode,
|
|
132
133
|
clientId: `fdm_monster_${serial}_${Date.now()}`,
|
|
133
|
-
protocol: "
|
|
134
|
+
protocol: "mqtts",
|
|
134
135
|
connectTimeout: timeout,
|
|
135
136
|
reconnectPeriod: 5000,
|
|
136
|
-
keepalive: 60
|
|
137
|
+
keepalive: 60,
|
|
138
|
+
rejectUnauthorized: false
|
|
137
139
|
});
|
|
138
140
|
this.mqttClient.on("connect", ()=>{
|
|
139
141
|
clearTimeout(connectionTimeout);
|
|
140
142
|
this.isConnecting = false;
|
|
141
|
-
this.
|
|
142
|
-
this.
|
|
143
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.authenticated);
|
|
144
|
+
this.updateApiState(_apistatetype.API_STATE.responding);
|
|
143
145
|
this.logger.log("MQTT connected successfully");
|
|
144
146
|
const reportTopic = `device/${serial}/report`;
|
|
145
147
|
this.mqttClient.subscribe(reportTopic, {
|
|
@@ -147,7 +149,7 @@ class BambuMqttAdapter {
|
|
|
147
149
|
}, (err)=>{
|
|
148
150
|
if (err) {
|
|
149
151
|
this.logger.error(`Failed to subscribe to ${reportTopic}:`, err);
|
|
150
|
-
this.
|
|
152
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.error);
|
|
151
153
|
reject(new Error(`Subscribe failed: ${err.message}`));
|
|
152
154
|
} else {
|
|
153
155
|
this.logger.debug(`Subscribed to ${reportTopic}`);
|
|
@@ -158,7 +160,8 @@ class BambuMqttAdapter {
|
|
|
158
160
|
this.mqttClient.on("error", (error)=>{
|
|
159
161
|
clearTimeout(connectionTimeout);
|
|
160
162
|
this.isConnecting = false;
|
|
161
|
-
this.
|
|
163
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.error);
|
|
164
|
+
this.emitEvent(_octoprintwebsocketadapter.WsMessage.WS_ERROR, error.message).catch(()=>{});
|
|
162
165
|
this.logger.error("MQTT error:", error);
|
|
163
166
|
if (!this.mqttClient?.connected) {
|
|
164
167
|
reject(error);
|
|
@@ -169,21 +172,23 @@ class BambuMqttAdapter {
|
|
|
169
172
|
this.handleMessage(topic, message);
|
|
170
173
|
});
|
|
171
174
|
this.mqttClient.on("disconnect", ()=>{
|
|
172
|
-
this.
|
|
175
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.closed);
|
|
176
|
+
this.emitEvent(_octoprintwebsocketadapter.WsMessage.WS_CLOSED, "disconnected").catch(()=>{});
|
|
173
177
|
this.logger.warn("MQTT disconnected");
|
|
174
178
|
});
|
|
175
179
|
this.mqttClient.on("reconnect", ()=>{
|
|
176
|
-
this.
|
|
180
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.opening);
|
|
177
181
|
this.logger.debug("MQTT reconnecting...");
|
|
178
182
|
});
|
|
179
183
|
this.mqttClient.on("close", ()=>{
|
|
180
|
-
this.
|
|
184
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.closed);
|
|
185
|
+
this.emitEvent(_octoprintwebsocketadapter.WsMessage.WS_CLOSED, "connection closed").catch(()=>{});
|
|
181
186
|
this.logger.debug("MQTT connection closed");
|
|
182
187
|
});
|
|
183
188
|
} catch (error) {
|
|
184
189
|
clearTimeout(connectionTimeout);
|
|
185
190
|
this.isConnecting = false;
|
|
186
|
-
this.
|
|
191
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.error);
|
|
187
192
|
this.cleanup();
|
|
188
193
|
reject(error);
|
|
189
194
|
}
|
|
@@ -191,11 +196,11 @@ class BambuMqttAdapter {
|
|
|
191
196
|
}
|
|
192
197
|
async disconnect() {
|
|
193
198
|
if (!this.mqttClient) {
|
|
194
|
-
this.
|
|
199
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.closed);
|
|
195
200
|
return;
|
|
196
201
|
}
|
|
197
202
|
this.logger.log("Disconnecting MQTT");
|
|
198
|
-
this.
|
|
203
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.closed);
|
|
199
204
|
return new Promise((resolve)=>{
|
|
200
205
|
if (this.mqttClient?.connected) {
|
|
201
206
|
this.mqttClient.end(false, {}, ()=>{
|
|
@@ -281,6 +286,14 @@ class BambuMqttAdapter {
|
|
|
281
286
|
resetSocketState() {
|
|
282
287
|
this.lastState = null;
|
|
283
288
|
}
|
|
289
|
+
updateSocketState(state) {
|
|
290
|
+
this.socketState = state;
|
|
291
|
+
this.emitEventSync(_octoprintwebsocketadapter.WsMessage.WS_STATE_UPDATED, state);
|
|
292
|
+
}
|
|
293
|
+
updateApiState(state) {
|
|
294
|
+
this.apiState = state;
|
|
295
|
+
this.emitEventSync(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED, state);
|
|
296
|
+
}
|
|
284
297
|
async emitEvent(event, payload) {
|
|
285
298
|
if (!this.eventsAllowed) {
|
|
286
299
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/bambu/bambu-mqtt.adapter.ts"],"names":["BambuMqttAdapter","bambuEvent","event","logger","settingsStore","eventEmitter2","printerType","BambuType","printerId","socketState","SOCKET_STATE","unopened","apiState","API_STATE","unset","login","lastMessageReceivedTimestamp","mqttClient","host","accessCode","serial","lastState","isConnecting","eventsAllowed","loggerFactory","name","registerCredentials","socketLogin","loginDto","printerURL","replace","password","username","needsReopen","isApiOnline","responding","closed","error","needsSetup","needsReauth","isClosedOrAborted","aborted","reauthSession","debug","open","Error","connect","catch","err","toString","close","disconnect","setupSocketSession","noResponse","opening","allowEmittingEvents","disallowEmittingEvents","connected","opened","mqttUrl","timeout","getTimeoutSettings","apiTimeout","log","Promise","resolve","reject","connectionTimeout","setTimeout","cleanup","mqtt","clientId","Date","now","protocol","connectTimeout","reconnectPeriod","keepalive","on","clearTimeout","authenticated","reportTopic","subscribe","qos","message","topic","handleMessage","warn","end","getLastState","sendCommand","payload","requestTopic","JSON","stringify","publish","startPrint","filename","print","command","param","url","subtask_name","sequence_id","String","pausePrint","resumePrint","stopPrint","sendGcode","gcode","resetSocketState","emitEvent","emitAsync","emitEventSync","emit","transformStateToCurrentMessage","state","isPrinting","gcode_state","mc_print_stage","isPaused","isPausedText","text","flags","operational","printing","paused","ready","print_error","cancelling","pausing","sdReady","closedOrError","temps","time","tool0","actual","nozzle_temper","target","nozzle_target_temper","bed","bed_temper","bed_target_temper","chamber","chamber_temper","progress","completion","mc_percent","printTime","printTimeLeft","mc_remaining_time","job","file","gcode_file","currentZ","layer_num","offsets","resends","count","transmitted","ratio","logs","messages","parse","endsWith","currentMessage","removeAllListeners"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/services/bambu/bambu-mqtt.adapter.ts"],"names":["BambuMqttAdapter","bambuEvent","event","logger","settingsStore","eventEmitter2","printerType","BambuType","printerId","socketState","SOCKET_STATE","unopened","apiState","API_STATE","unset","login","lastMessageReceivedTimestamp","mqttClient","host","accessCode","serial","lastState","isConnecting","eventsAllowed","loggerFactory","name","registerCredentials","socketLogin","loginDto","printerURL","replace","password","username","needsReopen","isApiOnline","responding","closed","error","needsSetup","needsReauth","isClosedOrAborted","aborted","reauthSession","debug","open","Error","connect","catch","err","toString","updateSocketState","close","disconnect","setupSocketSession","updateApiState","noResponse","opening","allowEmittingEvents","disallowEmittingEvents","connected","opened","mqttUrl","timeout","getTimeoutSettings","apiTimeout","log","Promise","resolve","reject","connectionTimeout","setTimeout","cleanup","mqtt","clientId","Date","now","protocol","connectTimeout","reconnectPeriod","keepalive","rejectUnauthorized","on","clearTimeout","authenticated","reportTopic","subscribe","qos","message","emitEvent","WsMessage","WS_ERROR","topic","handleMessage","WS_CLOSED","warn","end","getLastState","sendCommand","payload","requestTopic","JSON","stringify","publish","startPrint","filename","print","command","param","url","subtask_name","sequence_id","String","pausePrint","resumePrint","stopPrint","sendGcode","gcode","resetSocketState","state","emitEventSync","WS_STATE_UPDATED","API_STATE_UPDATED","emitAsync","emit","transformStateToCurrentMessage","isPrinting","gcode_state","mc_print_stage","isPaused","isPausedText","text","flags","operational","printing","paused","ready","print_error","cancelling","pausing","sdReady","closedOrError","temps","time","tool0","actual","nozzle_temper","target","nozzle_target_temper","bed","bed_temper","bed_target_temper","chamber","chamber_temper","progress","completion","mc_percent","printTime","printTimeLeft","mc_remaining_time","job","file","gcode_file","currentZ","layer_num","offsets","resends","count","transmitted","ratio","logs","messages","parse","endsWith","currentMessage","removeAllListeners"],"mappings":"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"}
|
|
@@ -139,9 +139,27 @@ class BambuApi {
|
|
|
139
139
|
date: f.modifiedAt ? new Date(f.modifiedAt).getTime() : null
|
|
140
140
|
}));
|
|
141
141
|
}
|
|
142
|
-
downloadFile(path) {
|
|
143
|
-
this.logger.
|
|
144
|
-
|
|
142
|
+
async downloadFile(path) {
|
|
143
|
+
this.logger.log(`Downloading file via FTP: ${path}`, this.logMeta());
|
|
144
|
+
await this.ensureFtpConnected();
|
|
145
|
+
const remotePath = path.startsWith("/sdcard/") ? path : `/sdcard/${path}`;
|
|
146
|
+
const { stream, tempPath } = await this.client.ftp.downloadFileAsStream(remotePath);
|
|
147
|
+
const stats = (0, _nodefs.statSync)(tempPath);
|
|
148
|
+
const filename = remotePath.split("/").pop() || "download";
|
|
149
|
+
const response = {
|
|
150
|
+
data: stream,
|
|
151
|
+
status: 200,
|
|
152
|
+
statusText: "OK",
|
|
153
|
+
headers: {
|
|
154
|
+
"content-type": "application/octet-stream",
|
|
155
|
+
"content-length": String(stats.size),
|
|
156
|
+
"content-disposition": `attachment; filename="${filename}"`
|
|
157
|
+
},
|
|
158
|
+
config: {
|
|
159
|
+
headers: {}
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
return response;
|
|
145
163
|
}
|
|
146
164
|
getFileChunk(path, startBytes, endBytes) {
|
|
147
165
|
this.logger.warn("getFileChunk not implemented for Bambu Lab printers");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/bambu.api.ts"],"names":["BambuApi","defaultLog","adapter","logger","client","printerLogin","printerSocketStore","printerId","bambuClient","loggerFactory","name","debug","logMeta","setPrinterId","getMqttAdapter","Error","getPrinterSocket","BambuMqttAdapter","ensureFtpConnected","isConnected","connect","type","BambuType","login","getVersion","response","getApiVersion","version","disconnect","restartServer","warn","restartHost","restartPrinterFirmware","startPrint","path","log","mqttAdapter","pausePrint","resumePrint","cancelPrint","stopPrint","quickStop","sendGcode","script","movePrintHead","amounts","homeAxes","axes","getFile","files","ftp","listFiles","file","find","f","endsWith","size","date","modifiedAt","Date","getTime","getFiles","filter","isFile","map","downloadFile","getFileChunk","startBytes","endBytes","uploadFile","fileOrBuffer","uploadToken","fileBuffer","
|
|
1
|
+
{"version":3,"sources":["../../src/services/bambu.api.ts"],"names":["BambuApi","defaultLog","adapter","logger","client","printerLogin","printerSocketStore","printerId","bambuClient","loggerFactory","name","debug","logMeta","setPrinterId","getMqttAdapter","Error","getPrinterSocket","BambuMqttAdapter","ensureFtpConnected","isConnected","connect","type","BambuType","login","getVersion","response","getApiVersion","version","disconnect","restartServer","warn","restartHost","restartPrinterFirmware","startPrint","path","log","mqttAdapter","pausePrint","resumePrint","cancelPrint","stopPrint","quickStop","sendGcode","script","movePrintHead","amounts","homeAxes","axes","getFile","files","ftp","listFiles","file","find","f","endsWith","size","date","modifiedAt","Date","getTime","getFiles","filter","isFile","map","downloadFile","remotePath","startsWith","stream","tempPath","downloadFileAsStream","stats","statSync","filename","split","pop","data","status","statusText","headers","String","config","getFileChunk","startBytes","endBytes","uploadFile","fileOrBuffer","uploadToken","fileBuffer","Buffer","isBuffer","now","filePath","originalname","readFileSync","length","error","message","deleteFile","deleteFolder","getSettings","getReprintState","state","getLastState","reprintState","ReprintState","PrinterNotAvailable","connectionState","lastFile","gcode_file","NoLastPrint","LastPrintReady"],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ Object.defineProperty(exports, "MulterService", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _multer = /*#__PURE__*/ _interop_require_wildcard(require("multer"));
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const _nodepath = require("node:path");
|
|
13
|
+
const _nodefs = require("node:fs");
|
|
14
14
|
const _fsutils = require("../../utils/fs.utils");
|
|
15
15
|
const _serverconstants = require("../../server.constants");
|
|
16
|
-
const _nodefs = require("node:fs");
|
|
17
16
|
const _errorutils = require("../../utils/error.utils");
|
|
17
|
+
const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
18
18
|
function _getRequireWildcardCache(nodeInterop) {
|
|
19
19
|
if (typeof WeakMap !== "function") return null;
|
|
20
20
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -58,112 +58,78 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
58
58
|
}
|
|
59
59
|
class MulterService {
|
|
60
60
|
fileUploadTrackerCache;
|
|
61
|
-
httpClientFactory;
|
|
62
61
|
logger;
|
|
63
|
-
constructor(loggerFactory, fileUploadTrackerCache
|
|
62
|
+
constructor(loggerFactory, fileUploadTrackerCache){
|
|
64
63
|
this.fileUploadTrackerCache = fileUploadTrackerCache;
|
|
65
|
-
this.httpClientFactory = httpClientFactory;
|
|
66
64
|
this.logger = loggerFactory(MulterService.name);
|
|
67
65
|
}
|
|
68
66
|
startTrackingSession(multerFile, printerId) {
|
|
69
67
|
return this.fileUploadTrackerCache.addUploadTracker(multerFile, printerId);
|
|
70
68
|
}
|
|
71
69
|
clearUploadsFolder() {
|
|
72
|
-
const fileStoragePath = (0,
|
|
73
|
-
if (!(0,
|
|
74
|
-
const files = (0,
|
|
70
|
+
const fileStoragePath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder);
|
|
71
|
+
if (!(0, _nodefs.existsSync)(fileStoragePath)) return;
|
|
72
|
+
const files = (0, _nodefs.readdirSync)(fileStoragePath, {
|
|
75
73
|
withFileTypes: true
|
|
76
74
|
}).filter((item)=>!item.isDirectory()).map((item)=>item.name);
|
|
77
75
|
for (const file of files){
|
|
78
76
|
try {
|
|
79
|
-
(0, _nodefs.rmSync)((0,
|
|
77
|
+
(0, _nodefs.rmSync)((0, _nodepath.join)(fileStoragePath, file));
|
|
80
78
|
} catch (error) {
|
|
81
79
|
this.logger.error(`Could not clear upload file in temporary folder ${(0, _errorutils.errorSummary)(error)}`);
|
|
82
80
|
}
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
83
|
clearUploadedFile(multerFile) {
|
|
86
|
-
if ((0,
|
|
84
|
+
if ((0, _nodefs.existsSync)(multerFile.path)) {
|
|
87
85
|
(0, _nodefs.rmSync)(multerFile.path);
|
|
88
86
|
} else {
|
|
89
87
|
this.logger.warn("Cannot unlink temporarily uploaded file as it was not found");
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
|
-
getNewestFile(collection) {
|
|
93
|
-
const dirPath = this.collectionPath(collection);
|
|
94
|
-
const files = this.orderRecentFiles(dirPath);
|
|
95
|
-
const latestFile = files.length ? files[0] : undefined;
|
|
96
|
-
return latestFile ? (0, _path.join)(dirPath, latestFile.file) : undefined;
|
|
97
|
-
}
|
|
98
90
|
fileExists(downloadFilename, collection) {
|
|
99
|
-
const downloadPath = (0,
|
|
100
|
-
return (0,
|
|
101
|
-
}
|
|
102
|
-
async downloadFile(downloadUrl, downloadFilename, collection) {
|
|
103
|
-
const downloadFolder = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder, collection);
|
|
104
|
-
if (!(0, _fs.existsSync)(downloadFolder)) {
|
|
105
|
-
(0, _fs.mkdirSync)(downloadFolder, {
|
|
106
|
-
recursive: true
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
const downloadPath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder, collection, downloadFilename);
|
|
110
|
-
const fileStream = (0, _fs.createWriteStream)(downloadPath);
|
|
111
|
-
const defaultHttpClient = this.httpClientFactory.createDefaultClient();
|
|
112
|
-
const res = await defaultHttpClient.get(downloadUrl);
|
|
113
|
-
return await new Promise((resolve, reject)=>{
|
|
114
|
-
fileStream.write(res.data);
|
|
115
|
-
fileStream.on("error", (err)=>{
|
|
116
|
-
return reject(err);
|
|
117
|
-
});
|
|
118
|
-
fileStream.on("finish", async ()=>{
|
|
119
|
-
return resolve(null);
|
|
120
|
-
});
|
|
121
|
-
fileStream.on("close", async ()=>{
|
|
122
|
-
return resolve(null);
|
|
123
|
-
});
|
|
124
|
-
resolve(null);
|
|
125
|
-
});
|
|
91
|
+
const downloadPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder, collection, downloadFilename);
|
|
92
|
+
return (0, _nodefs.existsSync)(downloadPath);
|
|
126
93
|
}
|
|
127
94
|
getMulterGCodeFileFilter(storeAsFile = true) {
|
|
128
|
-
return this.getMulterFileFilter(
|
|
95
|
+
return this.getMulterFileFilter(storeAsFile);
|
|
129
96
|
}
|
|
130
97
|
async multerLoadFileAsync(req, res, fileExtensions, storeAsFile = true) {
|
|
131
|
-
|
|
132
|
-
if (err)
|
|
133
|
-
return reject(err);
|
|
134
|
-
}
|
|
98
|
+
const files = await new Promise((resolve, reject)=>this.getMulterFileFilter(storeAsFile)(req, res, (err)=>{
|
|
99
|
+
if (err) return reject(err);
|
|
135
100
|
resolve(req.files);
|
|
136
101
|
}));
|
|
102
|
+
this.validateUploadedFiles(files, fileExtensions, storeAsFile);
|
|
103
|
+
return files;
|
|
137
104
|
}
|
|
138
|
-
|
|
105
|
+
validateUploadedFiles(files, allowedExtensions, storeAsFile) {
|
|
106
|
+
if (!files?.length || !allowedExtensions?.length) return;
|
|
107
|
+
for (const file of files){
|
|
108
|
+
const ext = (0, _nodepath.extname)(file.originalname)?.toLowerCase();
|
|
109
|
+
if (!allowedExtensions.includes(ext)) {
|
|
110
|
+
if (storeAsFile && file.path && (0, _nodefs.existsSync)(file.path)) {
|
|
111
|
+
try {
|
|
112
|
+
(0, _nodefs.rmSync)(file.path);
|
|
113
|
+
} catch (e) {
|
|
114
|
+
this.logger.error(`Could not remove invalid file ${(0, _errorutils.errorSummary)(e)}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
throw new _runtimeexceptions.ValidationException({
|
|
118
|
+
error: `Only files with extensions ${allowedExtensions.join(", ")} are allowed`
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
getMulterFileFilter(storeAsFile = true) {
|
|
139
124
|
return (0, _multer.default)({
|
|
140
125
|
storage: storeAsFile ? (0, _multer.diskStorage)({
|
|
141
|
-
destination: (0,
|
|
142
|
-
}) : (0, _multer.memoryStorage)()
|
|
143
|
-
fileFilter: this.multerFileFilter(fileExtensions)
|
|
126
|
+
destination: (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder)
|
|
127
|
+
}) : (0, _multer.memoryStorage)()
|
|
144
128
|
}).any();
|
|
145
129
|
}
|
|
146
|
-
multerFileFilter(extensions) {
|
|
147
|
-
return (_, file, callback)=>{
|
|
148
|
-
const ext = (0, _path.extname)(file.originalname);
|
|
149
|
-
if (extensions?.length && !extensions.includes(ext?.toLowerCase())) {
|
|
150
|
-
return callback(new Error(`Only files with extensions ${extensions} are allowed`));
|
|
151
|
-
}
|
|
152
|
-
return callback(null, true);
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
130
|
getSessions() {
|
|
156
131
|
return this.fileUploadTrackerCache.getUploads();
|
|
157
132
|
}
|
|
158
|
-
orderRecentFiles = (dir)=>{
|
|
159
|
-
return (0, _fs.readdirSync)(dir).filter((file)=>(0, _fs.lstatSync)((0, _path.join)(dir, file)).isFile()).map((file)=>({
|
|
160
|
-
file,
|
|
161
|
-
mtime: (0, _fs.lstatSync)((0, _path.join)(dir, file)).mtime
|
|
162
|
-
})).sort((a, b)=>b.mtime.getTime() - a.mtime.getTime());
|
|
163
|
-
};
|
|
164
|
-
collectionPath(collection) {
|
|
165
|
-
return (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultFileStorageFolder, collection);
|
|
166
|
-
}
|
|
167
133
|
}
|
|
168
134
|
|
|
169
135
|
//# sourceMappingURL=multer.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/core/multer.service.ts"],"names":["MulterService","logger","loggerFactory","fileUploadTrackerCache","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/core/multer.service.ts"],"names":["MulterService","logger","loggerFactory","fileUploadTrackerCache","name","startTrackingSession","multerFile","printerId","addUploadTracker","clearUploadsFolder","fileStoragePath","join","superRootPath","AppConstants","defaultFileStorageFolder","existsSync","files","readdirSync","withFileTypes","filter","item","isDirectory","map","file","rmSync","error","errorSummary","clearUploadedFile","path","warn","fileExists","downloadFilename","collection","downloadPath","getMulterGCodeFileFilter","storeAsFile","getMulterFileFilter","multerLoadFileAsync","req","res","fileExtensions","Promise","resolve","reject","err","validateUploadedFiles","allowedExtensions","length","ext","extname","originalname","toLowerCase","includes","e","ValidationException","multer","storage","diskStorage","destination","memoryStorage","any","getSessions","getUploads"],"mappings":"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"}
|
|
@@ -9,8 +9,11 @@ Object.defineProperty(exports, "PrusaLinkHttpPollingAdapter", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _printerapiinterface = require("../printer-api.interface");
|
|
12
|
+
const _socketstatetype = require("../../shared/dtos/socket-state.type");
|
|
13
|
+
const _apistatetype = require("../../shared/dtos/api-state.type");
|
|
12
14
|
const _errorutils = require("../../utils/error.utils");
|
|
13
15
|
const _prusalinkconstants = require("./constants/prusalink.constants");
|
|
16
|
+
const _octoprintwebsocketadapter = require("../octoprint/octoprint-websocket.adapter");
|
|
14
17
|
const defaultLog = {
|
|
15
18
|
adapter: "prusa-link"
|
|
16
19
|
};
|
|
@@ -80,7 +83,7 @@ class PrusaLinkHttpPollingAdapter {
|
|
|
80
83
|
this.stopPolling();
|
|
81
84
|
return;
|
|
82
85
|
}
|
|
83
|
-
this.
|
|
86
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.opening);
|
|
84
87
|
try {
|
|
85
88
|
this.prusaLinkApi.login = {
|
|
86
89
|
printerURL: this.login.printerURL,
|
|
@@ -89,14 +92,14 @@ class PrusaLinkHttpPollingAdapter {
|
|
|
89
92
|
apiKey: "",
|
|
90
93
|
printerType: _printerapiinterface.PrusaLinkType
|
|
91
94
|
};
|
|
92
|
-
this.
|
|
95
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.authenticating);
|
|
93
96
|
const printerState = await this.prusaLinkApi.getPrinterState();
|
|
94
97
|
if (printerState.state.flags?.link_state && printerState.state.flags?.link_state !== "PRINTING") {
|
|
95
98
|
printerState.state.text = printerState.state.flags.link_state;
|
|
96
99
|
}
|
|
97
100
|
const jobState = await this.prusaLinkApi.getJobState();
|
|
98
|
-
this.
|
|
99
|
-
this.
|
|
101
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.authenticated);
|
|
102
|
+
this.updateApiState(_apistatetype.API_STATE.responding);
|
|
100
103
|
await this.emitEvent("current", {
|
|
101
104
|
...printerState,
|
|
102
105
|
job: jobState.job,
|
|
@@ -107,7 +110,7 @@ class PrusaLinkHttpPollingAdapter {
|
|
|
107
110
|
}
|
|
108
111
|
});
|
|
109
112
|
} catch (error) {
|
|
110
|
-
this.
|
|
113
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.error);
|
|
111
114
|
this.logger.error(`Failed to fetch PrusaLink status ${(0, _errorutils.errorSummary)(error)}`, this.logMeta());
|
|
112
115
|
}
|
|
113
116
|
}, 5000);
|
|
@@ -117,7 +120,7 @@ class PrusaLinkHttpPollingAdapter {
|
|
|
117
120
|
this.logger.debug("Polling adapter stopping, clearing interval.", this.logMeta());
|
|
118
121
|
clearInterval(this.refreshPrinterCurrentInterval);
|
|
119
122
|
this.refreshPrinterCurrentInterval = undefined;
|
|
120
|
-
this.
|
|
123
|
+
this.updateSocketState(_socketstatetype.SOCKET_STATE.closed);
|
|
121
124
|
}
|
|
122
125
|
}
|
|
123
126
|
async emitEvent(event, payload) {
|
|
@@ -132,6 +135,25 @@ class PrusaLinkHttpPollingAdapter {
|
|
|
132
135
|
printerType: _printerapiinterface.PrusaLinkType
|
|
133
136
|
});
|
|
134
137
|
}
|
|
138
|
+
emitEventSync(event, payload) {
|
|
139
|
+
if (!this.eventEmittingAllowed) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this.eventEmitter2.emit((0, _prusalinkconstants.prusaLinkEvent)(event), {
|
|
143
|
+
event,
|
|
144
|
+
payload,
|
|
145
|
+
printerId: this.printerId,
|
|
146
|
+
printerType: _printerapiinterface.PrusaLinkType
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
updateSocketState(state) {
|
|
150
|
+
this.socketState = state;
|
|
151
|
+
this.emitEventSync(_octoprintwebsocketadapter.WsMessage.WS_STATE_UPDATED, state);
|
|
152
|
+
}
|
|
153
|
+
updateApiState(state) {
|
|
154
|
+
this.apiState = state;
|
|
155
|
+
this.emitEventSync(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED, state);
|
|
156
|
+
}
|
|
135
157
|
logMeta() {
|
|
136
158
|
return defaultLog;
|
|
137
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/prusa-link/prusa-link-http-polling.adapter.ts"],"names":["PrusaLinkHttpPollingAdapter","defaultLog","adapter","printerType","PrusaLinkType","printerId","login","socketState","apiState","lastMessageReceivedTimestamp","refreshPrinterCurrentInterval","eventEmittingAllowed","loggerFactory","prusaLinkApi","eventEmitter2","configService","logger","name","allowEmittingEvents","disallowEmittingEvents","needsReopen","needsSetup","needsReauth","Error","isClosedOrAborted","reauthSession","registerCredentials","socketLogin","loginDto","open","startPolling","close","debug","logMeta","stopPolling","setupSocketSession","warn","Promise","resolve","resetSocketState","setInterval","printerURL","username","password","apiKey","printerState","getPrinterState","state","flags","link_state","text","jobState","getJobState","emitEvent","job","progress","printTime","printTimeLeft","completion","error","errorSummary","clearInterval","undefined","event","payload","prusaLinkEvent","emitAsync"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../../src/services/prusa-link/prusa-link-http-polling.adapter.ts"],"names":["PrusaLinkHttpPollingAdapter","defaultLog","adapter","printerType","PrusaLinkType","printerId","login","socketState","apiState","lastMessageReceivedTimestamp","refreshPrinterCurrentInterval","eventEmittingAllowed","loggerFactory","prusaLinkApi","eventEmitter2","configService","logger","name","allowEmittingEvents","disallowEmittingEvents","needsReopen","needsSetup","needsReauth","Error","isClosedOrAborted","reauthSession","registerCredentials","socketLogin","loginDto","open","startPolling","close","debug","logMeta","stopPolling","setupSocketSession","warn","Promise","resolve","resetSocketState","setInterval","updateSocketState","SOCKET_STATE","opening","printerURL","username","password","apiKey","authenticating","printerState","getPrinterState","state","flags","link_state","text","jobState","getJobState","authenticated","updateApiState","API_STATE","responding","emitEvent","job","progress","printTime","printTimeLeft","completion","error","errorSummary","clearInterval","undefined","closed","event","payload","prusaLinkEvent","emitAsync","emitEventSync","emit","WsMessage","WS_STATE_UPDATED","API_STATE_UPDATED"],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ const _errorutils = require("../utils/error.utils");
|
|
|
17
17
|
const _node = require("@sentry/node");
|
|
18
18
|
const _socketstatetype = require("../shared/dtos/socket-state.type");
|
|
19
19
|
const _moonrakerconstants = require("../services/moonraker/constants/moonraker.constants");
|
|
20
|
+
const _bambumqttadapter = require("../services/bambu/bambu-mqtt.adapter");
|
|
21
|
+
const _prusalinkconstants = require("../services/prusa-link/constants/prusalink.constants");
|
|
20
22
|
const _eventconstants = require("../constants/event.constants");
|
|
21
23
|
class TestPrinterSocketStore {
|
|
22
24
|
socketFactory;
|
|
@@ -58,7 +60,17 @@ class TestPrinterSocketStore {
|
|
|
58
60
|
(0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED),
|
|
59
61
|
(0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_CLOSED),
|
|
60
62
|
(0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_OPENED),
|
|
61
|
-
(0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR)
|
|
63
|
+
(0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR),
|
|
64
|
+
(0, _bambumqttadapter.bambuEvent)(_octoprintwebsocketadapter.WsMessage.WS_STATE_UPDATED),
|
|
65
|
+
(0, _bambumqttadapter.bambuEvent)(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED),
|
|
66
|
+
(0, _bambumqttadapter.bambuEvent)(_octoprintwebsocketadapter.WsMessage.WS_CLOSED),
|
|
67
|
+
(0, _bambumqttadapter.bambuEvent)(_octoprintwebsocketadapter.WsMessage.WS_OPENED),
|
|
68
|
+
(0, _bambumqttadapter.bambuEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR),
|
|
69
|
+
(0, _prusalinkconstants.prusaLinkEvent)(_octoprintwebsocketadapter.WsMessage.WS_STATE_UPDATED),
|
|
70
|
+
(0, _prusalinkconstants.prusaLinkEvent)(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED),
|
|
71
|
+
(0, _prusalinkconstants.prusaLinkEvent)(_octoprintwebsocketadapter.WsMessage.WS_CLOSED),
|
|
72
|
+
(0, _prusalinkconstants.prusaLinkEvent)(_octoprintwebsocketadapter.WsMessage.WS_OPENED),
|
|
73
|
+
(0, _prusalinkconstants.prusaLinkEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR)
|
|
62
74
|
];
|
|
63
75
|
const listener = ({ event, payload, printerId })=>{
|
|
64
76
|
if (printerId !== correlationToken) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/test-printer-socket.store.ts"],"names":["TestPrinterSocketStore","testSocket","logger","loggerFactory","socketFactory","socketIoGateway","eventEmitter2","name","setupTestPrinter","correlationToken","printer","close","validatedData","validateInput","createTestPrinterSchema","enabled","createInstance","printerType","registerCredentials","printerId","loginDto","apiKey","username","password","printerURL","testEvents","octoPrintEvent","WsMessage","WS_STATE_UPDATED","API_STATE_UPDATED","WS_CLOSED","WS_OPENED","WS_ERROR","moonrakerEvent","listener","event","payload","send","forEach","te","on","log","setupSocketSession","promise","Promise","resolve","reject","error","open","_startTime","setInterval","warn","Error","socketState","SOCKET_STATE","authenticated","race","setTimeout","AppConstants","defaultWebsocketHandshakeTimeout","e","errorSummary","captureException","disallowEmittingEvents","emit","printerEvents","printersDeleted","printerIds","off"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../src/state/test-printer-socket.store.ts"],"names":["TestPrinterSocketStore","testSocket","logger","loggerFactory","socketFactory","socketIoGateway","eventEmitter2","name","setupTestPrinter","correlationToken","printer","close","validatedData","validateInput","createTestPrinterSchema","enabled","createInstance","printerType","registerCredentials","printerId","loginDto","apiKey","username","password","printerURL","testEvents","octoPrintEvent","WsMessage","WS_STATE_UPDATED","API_STATE_UPDATED","WS_CLOSED","WS_OPENED","WS_ERROR","moonrakerEvent","bambuEvent","prusaLinkEvent","listener","event","payload","send","forEach","te","on","log","setupSocketSession","promise","Promise","resolve","reject","error","open","_startTime","setInterval","warn","Error","socketState","SOCKET_STATE","authenticated","race","setTimeout","AppConstants","defaultWebsocketHandshakeTimeout","e","errorSummary","captureException","disallowEmittingEvents","emit","printerEvents","printersDeleted","printerIds","off"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"author": "David Zwart",
|
|
8
8
|
"license": "AGPL-3.0-or-later",
|
|
9
|
-
"version": "1.9.
|
|
9
|
+
"version": "1.9.4",
|
|
10
10
|
"bin": {
|
|
11
11
|
"fdm-monster": "dist/index.js",
|
|
12
12
|
"fdmm": "dist/index.js"
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"tr46": "6.0.0"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@fdm-monster/client": "1.12.
|
|
67
|
-
"@fdm-monster/client-next": "0.0.
|
|
66
|
+
"@fdm-monster/client": "1.12.3",
|
|
67
|
+
"@fdm-monster/client-next": "0.0.26",
|
|
68
68
|
"@octokit/plugin-throttling": "8.2.0",
|
|
69
69
|
"@sentry/node": "10.32.1",
|
|
70
70
|
"adm-zip": "0.5.16",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"prom-client": "15.1.3",
|
|
100
100
|
"reflect-metadata": "0.2.2",
|
|
101
101
|
"semver": "7.7.3",
|
|
102
|
-
"socket.io": "4.8.
|
|
102
|
+
"socket.io": "4.8.3",
|
|
103
103
|
"toad-scheduler": "3.1.0",
|
|
104
104
|
"typeorm": "0.3.28",
|
|
105
105
|
"uuid": "11.1.0",
|
|
@@ -133,15 +133,14 @@
|
|
|
133
133
|
"@types/supertest": "6.0.3",
|
|
134
134
|
"@types/uuid": "10.0.0",
|
|
135
135
|
"@types/ws": "8.18.1",
|
|
136
|
-
"aedes": "0.51.3",
|
|
137
136
|
"chokidar": "5.0.0",
|
|
138
137
|
"express-list-routes": "1.3.2",
|
|
139
138
|
"ftp-srv": "4.6.3",
|
|
140
139
|
"jest": "29.7.0",
|
|
141
140
|
"jest-27-expect-message": "1.1.0",
|
|
142
|
-
"mongodb-memory-server": "11.0.
|
|
141
|
+
"mongodb-memory-server": "11.0.1",
|
|
143
142
|
"nock": "13.5.6",
|
|
144
|
-
"selfsigned": "5.
|
|
143
|
+
"selfsigned": "5.4.0",
|
|
145
144
|
"supertest": "7.1.4",
|
|
146
145
|
"ts-node": "10.9.2",
|
|
147
146
|
"typescript": "5.9.3"
|