@fdm-monster/server 2.0.9 → 2.0.10
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 +10 -0
- package/dist/container.tokens.js +0 -1
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/file-storage.controller.js +38 -56
- package/dist/controllers/file-storage.controller.js.map +1 -1
- package/dist/controllers/slicer-compat.controller.js +3 -10
- package/dist/controllers/slicer-compat.controller.js.map +1 -1
- package/dist/exceptions/runtime.exceptions.js +11 -0
- package/dist/exceptions/runtime.exceptions.js.map +1 -1
- package/dist/middleware/exception.filter.js +7 -0
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/services/file-storage.service.js +29 -0
- package/dist/services/file-storage.service.js.map +1 -1
- package/dist/tasks.js +0 -1
- package/dist/tasks.js.map +1 -1
- package/package.json +4 -4
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/RELEASE_NOTES.MD
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Develop
|
|
2
2
|
|
|
3
|
+
# FDM Monster 2.0.10
|
|
4
|
+
|
|
5
|
+
## Fixes
|
|
6
|
+
|
|
7
|
+
- Reject duplicate filename uploads in central file storage (fixes #4972)
|
|
8
|
+
- Added ConflictException for 409 status code responses
|
|
9
|
+
- Refactored printer-files upload handler into focused helper methods
|
|
10
|
+
- Replaced manual error responses with proper exception classes throughout file upload endpoints
|
|
11
|
+
- The printer files load task was removed because it is no longer required
|
|
12
|
+
|
|
3
13
|
# FDM Monster 2.0.9
|
|
4
14
|
|
|
5
15
|
## Features
|
package/dist/container.tokens.js
CHANGED
|
@@ -83,7 +83,6 @@ const DITokens = {
|
|
|
83
83
|
socketIoTask: "socketIoTask",
|
|
84
84
|
printerWebsocketTask: "printerWebsocketTask",
|
|
85
85
|
printerWebsocketRestoreTask: "printerWebsocketRestoreTask",
|
|
86
|
-
printerFilesLoadTask: "printerFilesLoadTask",
|
|
87
86
|
printJobAnalysisTask: "printJobAnalysisTask"
|
|
88
87
|
};
|
|
89
88
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/container.tokens.ts"],"names":["DITokens","cradleService","serverVersion","appDefaultRole","appDefaultRoleNoLogin","typeormService","serverHost","exceptionFilter","loggerFactory","httpClientFactory","socketIoGateway","multerService","configService","taskManagerService","toadScheduler","eventEmitter2","printerService","printerTagService","printerMaintenanceLogService","floorPositionService","printJobService","printQueueService","fileStorageService","fileAnalysisService","printFileDownloaderService","floorService","yamlService","settingsService","serverReleaseService","monsterPiService","githubService","octokitService","clientBundleService","logDumpService","userTokenService","authService","refreshTokenService","userService","userRoleService","permissionService","jwtService","roleService","prusaLinkApi","octoprintApi","octoprintClient","moonrakerApi","moonrakerClient","bambuApi","bambuClient","bambuFtpAdapter","bambuMqttAdapter","cameraStreamService","socketFactory","printerApiFactory","printerLogin","batchCallService","influxDbV2BaseService","systemInfoBundleService","floorStore","settingsStore","printerSocketStore","testPrinterSocketStore","prusaLinkPollingAdapter","octoPrintSockIoAdapter","moonrakerWebsocketAdapter","printerCache","printerEventsCache","printerThumbnailCache","fileUploadTrackerCache","bootTask","softwareUpdateTask","clientDistDownloadTask","socketIoTask","printerWebsocketTask","printerWebsocketRestoreTask","
|
|
1
|
+
{"version":3,"sources":["../src/container.tokens.ts"],"names":["DITokens","cradleService","serverVersion","appDefaultRole","appDefaultRoleNoLogin","typeormService","serverHost","exceptionFilter","loggerFactory","httpClientFactory","socketIoGateway","multerService","configService","taskManagerService","toadScheduler","eventEmitter2","printerService","printerTagService","printerMaintenanceLogService","floorPositionService","printJobService","printQueueService","fileStorageService","fileAnalysisService","printFileDownloaderService","floorService","yamlService","settingsService","serverReleaseService","monsterPiService","githubService","octokitService","clientBundleService","logDumpService","userTokenService","authService","refreshTokenService","userService","userRoleService","permissionService","jwtService","roleService","prusaLinkApi","octoprintApi","octoprintClient","moonrakerApi","moonrakerClient","bambuApi","bambuClient","bambuFtpAdapter","bambuMqttAdapter","cameraStreamService","socketFactory","printerApiFactory","printerLogin","batchCallService","influxDbV2BaseService","systemInfoBundleService","floorStore","settingsStore","printerSocketStore","testPrinterSocketStore","prusaLinkPollingAdapter","octoPrintSockIoAdapter","moonrakerWebsocketAdapter","printerCache","printerEventsCache","printerThumbnailCache","fileUploadTrackerCache","bootTask","softwareUpdateTask","clientDistDownloadTask","socketIoTask","printerWebsocketTask","printerWebsocketRestoreTask","printJobAnalysisTask"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,WAAW;IACtBC,eAAe;IAEfC,eAAe;IACfC,gBAAgB;IAChBC,uBAAuB;IACvBC,gBAAgB;IAEhBC,YAAY;IACZC,iBAAiB;IACjBC,eAAe;IACfC,mBAAmB;IACnBC,iBAAiB;IACjBC,eAAe;IACfC,eAAe;IACfC,oBAAoB;IACpBC,eAAe;IACfC,eAAe;IACfC,gBAAgB;IAChBC,mBAAmB;IACnBC,8BAA8B;IAC9BC,sBAAsB;IACtBC,iBAAiB;IACjBC,mBAAmB;IACnBC,oBAAoB;IACpBC,qBAAqB;IACrBC,4BAA4B;IAC5BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,sBAAsB;IACtBC,kBAAkB;IAClBC,eAAe;IACfC,gBAAgB;IAChBC,qBAAqB;IACrBC,gBAAgB;IAChBC,kBAAkB;IAClBC,aAAa;IACbC,qBAAqB;IACrBC,aAAa;IACbC,iBAAiB;IACjBC,mBAAmB;IACnBC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,cAAc;IACdC,iBAAiB;IACjBC,cAAc;IACdC,iBAAiB;IACjBC,UAAU;IACVC,aAAa;IACbC,iBAAiB;IACjBC,kBAAkB;IAClBC,qBAAqB;IACrBC,eAAe;IACfC,mBAAmB;IACnBC,cAAc;IACdC,kBAAkB;IAClBC,uBAAuB;IACvBC,yBAAyB;IAEzBC,YAAY;IACZC,eAAe;IACfC,oBAAoB;IACpBC,wBAAwB;IACxBC,yBAAyB;IACzBC,wBAAwB;IACxBC,2BAA2B;IAE3BC,cAAc;IACdC,oBAAoB;IACpBC,uBAAuB;IACvBC,wBAAwB;IAExBC,UAAU;IACVC,oBAAoB;IACpBC,wBAAwB;IACxBC,cAAc;IACdC,sBAAsB;IACtBC,6BAA6B;IAC7BC,sBAAsB;AACxB"}
|
|
@@ -17,6 +17,7 @@ const _filestorageservice = require("../services/file-storage.service");
|
|
|
17
17
|
const _multerservice = require("../services/core/multer.service");
|
|
18
18
|
const _loggerfactory = require("../handlers/logger-factory");
|
|
19
19
|
const _fileanalysisservice = require("../services/file-analysis.service");
|
|
20
|
+
const _runtimeexceptions = require("../exceptions/runtime.exceptions");
|
|
20
21
|
const _nodefs = require("node:fs");
|
|
21
22
|
const _nodepath = require("node:path");
|
|
22
23
|
function _ts_decorate(decorators, target, key, desc) {
|
|
@@ -198,64 +199,45 @@ class FileStorageController {
|
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
201
|
async uploadFile(req, res) {
|
|
202
|
+
const acceptedExtensions = [
|
|
203
|
+
'.gcode',
|
|
204
|
+
'.3mf',
|
|
205
|
+
'.bgcode'
|
|
206
|
+
];
|
|
207
|
+
const files = await this.multerService.multerLoadFileAsync(req, res, acceptedExtensions, true);
|
|
208
|
+
if (!files?.length) {
|
|
209
|
+
throw new _runtimeexceptions.BadRequestException("No file uploaded");
|
|
210
|
+
}
|
|
211
|
+
if (files.length > 1) {
|
|
212
|
+
throw new _runtimeexceptions.BadRequestException("Only 1 file can be uploaded at a time");
|
|
213
|
+
}
|
|
214
|
+
const file = files[0];
|
|
215
|
+
await this.fileStorageService.validateUniqueFilename(file.originalname);
|
|
216
|
+
const ext = (0, _nodepath.extname)(file.originalname);
|
|
217
|
+
const tempPathWithExt = file.path + ext;
|
|
201
218
|
try {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
const file = files[0];
|
|
221
|
-
const ext = (0, _nodepath.extname)(file.originalname);
|
|
222
|
-
const tempPathWithExt = file.path + ext;
|
|
223
|
-
try {
|
|
224
|
-
(0, _nodefs.copyFileSync)(file.path, tempPathWithExt);
|
|
225
|
-
const fileHash = await this.fileStorageService.calculateFileHash(tempPathWithExt);
|
|
226
|
-
this.logger.log(`Analyzing file: ${file.originalname} (ext: ${ext})`);
|
|
227
|
-
const analysisResult = await this.fileAnalysisService.analyzeFile(tempPathWithExt);
|
|
228
|
-
const metadata = analysisResult.metadata;
|
|
229
|
-
const thumbnails = analysisResult.thumbnails;
|
|
230
|
-
this.logger.log(`Analysis complete: format=${metadata.fileFormat}, layers=${metadata.totalLayers}, ` + `time=${metadata.gcodePrintTimeSeconds}s, filament=${metadata.filamentUsedGrams}g, ` + `thumbnails=${thumbnails.length}`);
|
|
231
|
-
const fileStorageId = await this.fileStorageService.saveFile(file, fileHash);
|
|
232
|
-
this.logger.log(`Uploaded file ${file.originalname} as ${fileStorageId}`);
|
|
233
|
-
let thumbnailMetadata = [];
|
|
234
|
-
if (thumbnails.length > 0) {
|
|
235
|
-
thumbnailMetadata = await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails);
|
|
236
|
-
this.logger.log(`Saved ${thumbnailMetadata.length} thumbnail(s) for ${fileStorageId}`);
|
|
237
|
-
}
|
|
238
|
-
await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, file.originalname, thumbnailMetadata);
|
|
239
|
-
this.logger.log(`Saved metadata JSON for ${fileStorageId}`);
|
|
240
|
-
res.send({
|
|
241
|
-
message: "File uploaded successfully",
|
|
242
|
-
fileStorageId,
|
|
243
|
-
fileName: file.originalname,
|
|
244
|
-
fileSize: file.size,
|
|
245
|
-
fileHash,
|
|
246
|
-
metadata,
|
|
247
|
-
thumbnailCount: thumbnails.length
|
|
248
|
-
});
|
|
249
|
-
} finally{
|
|
250
|
-
if ((0, _nodefs.existsSync)(tempPathWithExt)) {
|
|
251
|
-
(0, _nodefs.unlinkSync)(tempPathWithExt);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
} catch (error) {
|
|
255
|
-
this.logger.error(`Failed to upload file: ${error}`);
|
|
256
|
-
res.status(500).send({
|
|
257
|
-
error: "Failed to upload file"
|
|
219
|
+
(0, _nodefs.copyFileSync)(file.path, tempPathWithExt);
|
|
220
|
+
const fileHash = await this.fileStorageService.calculateFileHash(tempPathWithExt);
|
|
221
|
+
this.logger.log(`Analyzing ${file.originalname}`);
|
|
222
|
+
const analysisResult = await this.fileAnalysisService.analyzeFile(tempPathWithExt);
|
|
223
|
+
const { metadata, thumbnails } = analysisResult;
|
|
224
|
+
const fileStorageId = await this.fileStorageService.saveFile(file, fileHash);
|
|
225
|
+
this.logger.log(`Saved ${file.originalname} as ${fileStorageId}`);
|
|
226
|
+
const thumbnailMetadata = thumbnails.length > 0 ? await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails) : [];
|
|
227
|
+
await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, file.originalname, thumbnailMetadata);
|
|
228
|
+
res.send({
|
|
229
|
+
message: "File uploaded successfully",
|
|
230
|
+
fileStorageId,
|
|
231
|
+
fileName: file.originalname,
|
|
232
|
+
fileSize: file.size,
|
|
233
|
+
fileHash,
|
|
234
|
+
metadata,
|
|
235
|
+
thumbnailCount: thumbnails.length
|
|
258
236
|
});
|
|
237
|
+
} finally{
|
|
238
|
+
if ((0, _nodefs.existsSync)(tempPathWithExt)) {
|
|
239
|
+
(0, _nodefs.unlinkSync)(tempPathWithExt);
|
|
240
|
+
}
|
|
259
241
|
}
|
|
260
242
|
}
|
|
261
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controllers/file-storage.controller.ts"],"names":["FileStorageController","logger","loggerFactory","fileStorageService","multerService","fileAnalysisService","name","listFiles","req","res","files","listAllFiles","send","map","file","thumbnails","metadata","_thumbnails","thumb","index","width","height","format","size","fileStorageId","fileName","fileFormat","fileSize","fileHash","createdAt","totalCount","length","error","status","getFileMetadata","params","getFileInfo","deleteFile","log","message","analyzeFile","filePath","getFilePath","fileExists","existingMetadata","loadMetadata","analysisResult","totalLayers","gcodePrintTimeSeconds","calculateFileHash","originalFileName","_originalFileName","thumbnailMetadata","saveThumbnails","saveMetadata","thumbnailCount","getThumbnailByIndex","thumbnailIndex","Number","parseInt","isNaN","thumbnail","getThumbnail","isJPG","isQOI","mimeType","base64","toString","thumbnailBase64","uploadFile","acceptedExtensions","multerLoadFileAsync","
|
|
1
|
+
{"version":3,"sources":["../../src/controllers/file-storage.controller.ts"],"names":["FileStorageController","logger","loggerFactory","fileStorageService","multerService","fileAnalysisService","name","listFiles","req","res","files","listAllFiles","send","map","file","thumbnails","metadata","_thumbnails","thumb","index","width","height","format","size","fileStorageId","fileName","fileFormat","fileSize","fileHash","createdAt","totalCount","length","error","status","getFileMetadata","params","getFileInfo","deleteFile","log","message","analyzeFile","filePath","getFilePath","fileExists","existingMetadata","loadMetadata","analysisResult","totalLayers","gcodePrintTimeSeconds","calculateFileHash","originalFileName","_originalFileName","thumbnailMetadata","saveThumbnails","saveMetadata","thumbnailCount","getThumbnailByIndex","thumbnailIndex","Number","parseInt","isNaN","thumbnail","getThumbnail","isJPG","isQOI","mimeType","base64","toString","thumbnailBase64","uploadFile","acceptedExtensions","multerLoadFileAsync","BadRequestException","validateUniqueFilename","originalname","ext","extname","tempPathWithExt","path","copyFileSync","saveFile","existsSync","unlinkSync","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR"],"mappings":"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"}
|
|
@@ -58,9 +58,7 @@ class SlicerCompatController {
|
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
const file = files[0];
|
|
61
|
-
|
|
62
|
-
const select = req.body.select === "true" || req.body.select === true;
|
|
63
|
-
this.logger.log(`OctoPrint-compatible upload: ${file.originalname} (print=${print}, select=${select})`);
|
|
61
|
+
await this.fileStorageService.validateUniqueFilename(file.originalname);
|
|
64
62
|
const fileHash = await this.fileStorageService.calculateFileHash(file.path);
|
|
65
63
|
const fileStorageId = await this.fileStorageService.saveFile(file, fileHash);
|
|
66
64
|
const filePath = this.fileStorageService.getFilePath(fileStorageId);
|
|
@@ -70,13 +68,8 @@ class SlicerCompatController {
|
|
|
70
68
|
const analysisResult = await this.fileAnalysisService.analyzeFile(filePath);
|
|
71
69
|
metadata = analysisResult.metadata;
|
|
72
70
|
thumbnails = analysisResult.thumbnails || [];
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.logger.log(`Saved ${thumbnailMetadata.length} thumbnail(s) for ${fileStorageId}`);
|
|
76
|
-
await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, file.originalname, thumbnailMetadata);
|
|
77
|
-
} else {
|
|
78
|
-
await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, file.originalname);
|
|
79
|
-
}
|
|
71
|
+
const thumbnailMetadata = thumbnails.length > 0 ? await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails) : [];
|
|
72
|
+
await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, file.originalname, thumbnailMetadata);
|
|
80
73
|
} catch (analysisError) {
|
|
81
74
|
this.logger.error(`Failed to analyze uploaded file: ${analysisError}`);
|
|
82
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controllers/slicer-compat.controller.ts"],"names":["SlicerCompatController","logger","loggerFactory","fileStorageService","fileAnalysisService","multerService","name","getVersion","req","res","send","api","server","text","uploadFile","files","acceptedExtensions","AppConstants","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","multerLoadFileAsync","length","status","error","file","
|
|
1
|
+
{"version":3,"sources":["../../src/controllers/slicer-compat.controller.ts"],"names":["SlicerCompatController","logger","loggerFactory","fileStorageService","fileAnalysisService","multerService","name","getVersion","req","res","send","api","server","text","uploadFile","files","acceptedExtensions","AppConstants","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","multerLoadFileAsync","length","status","error","file","validateUniqueFilename","originalname","fileHash","calculateFileHash","path","fileStorageId","saveFile","filePath","getFilePath","metadata","thumbnails","analysisResult","analyzeFile","thumbnailMetadata","saveThumbnails","saveMetadata","analysisError","clearUploadedFile","e","local","origin","refs","resource","download","done","_fdmMonster","analyzed","Object","keys","thumbnailCount","printTime","gcodePrintTimeSeconds","filament","filamentUsedGrams","log","listFiles","listAllFiles","knownFiles","map","_originalFileName","fileName","type","typePath","fileFormat","gcodeAnalysis","estimatedPrintTime","tool0","filamentUsedMm","volume","filamentUsedCm3","undefined","date","Math","floor","createdAt","getTime","size","fileSize","free","total","getServer","version","safemode","slicerApiKeyAuth"],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ _export(exports, {
|
|
|
18
18
|
get BadRequestException () {
|
|
19
19
|
return BadRequestException;
|
|
20
20
|
},
|
|
21
|
+
get ConflictException () {
|
|
22
|
+
return ConflictException;
|
|
23
|
+
},
|
|
21
24
|
get ExternalServiceError () {
|
|
22
25
|
return ExternalServiceError;
|
|
23
26
|
},
|
|
@@ -75,6 +78,14 @@ class BadRequestException extends Error {
|
|
|
75
78
|
this.name = BadRequestException.name;
|
|
76
79
|
}
|
|
77
80
|
}
|
|
81
|
+
class ConflictException extends Error {
|
|
82
|
+
existingResourceId;
|
|
83
|
+
constructor(message, existingResourceId){
|
|
84
|
+
super(message);
|
|
85
|
+
this.name = ConflictException.name;
|
|
86
|
+
this.existingResourceId = existingResourceId;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
78
89
|
class NotFoundException extends Error {
|
|
79
90
|
path;
|
|
80
91
|
constructor(message, path){
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exceptions/runtime.exceptions.ts"],"names":["AuthenticationError","AuthorizationError","BadRequestException","ExternalServiceError","ForbiddenError","InternalServerException","NotFoundException","NotImplementedException","ValidationException","Error","message","name","reasonCode","error","permissions","roles","reason","path","errors","validationObject","JSON","stringify","serviceType","responseObject","stack"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QAiBAC;eAAAA;;QAcAC;eAAAA;;
|
|
1
|
+
{"version":3,"sources":["../../src/exceptions/runtime.exceptions.ts"],"names":["AuthenticationError","AuthorizationError","BadRequestException","ConflictException","ExternalServiceError","ForbiddenError","InternalServerException","NotFoundException","NotImplementedException","ValidationException","Error","message","name","reasonCode","error","permissions","roles","reason","existingResourceId","path","errors","validationObject","JSON","stringify","serviceType","responseObject","stack"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QAiBAC;eAAAA;;QAcAC;eAAAA;;QAOAC;eAAAA;;QA8BAC;eAAAA;;QA1DAC;eAAAA;;QAsEAC;eAAAA;;QAhCAC;eAAAA;;QAvDAC;eAAAA;;QAiEAC;eAAAA;;;AAjEN,MAAMD,gCAAgCE;IAC3C,YAAYC,OAAgB,CAAE;QAC5B,KAAK,CAACA;QACN,IAAI,CAACC,IAAI,GAAGJ,wBAAwBI,IAAI;IAC1C;AACF;AAEO,MAAMZ,4BAA4BU;IACvCG,WAAmB;IAEnB,YAAYC,KAAc,EAAED,aAAa,EAAE,CAAE;QAC3C,KAAK,CAACC;QACN,IAAI,CAACF,IAAI,GAAGZ,oBAAoBY,IAAI;QACpC,IAAI,CAACC,UAAU,GAAGA;IACpB;AACF;AAEO,MAAMR,uBAAuBK;IAClC,YAAYI,KAAc,CAAE;QAC1B,KAAK,CAACA;QACN,IAAI,CAACF,IAAI,GAAGP,eAAeO,IAAI;IACjC;AACF;AAEO,MAAMX,2BAA2BS;IACtCK,cAAyB,EAAE,CAAC;IAC5BC,QAAmB,EAAE,CAAC;IACtBC,OAAgB;IAEhB,YAAY,EAAEF,WAAW,EAAEC,KAAK,EAAEC,MAAM,EAAiE,CAAE;QACzG,KAAK,CAAC;QACN,IAAI,CAACL,IAAI,GAAGX,mBAAmBW,IAAI;QACnC,IAAI,CAACK,MAAM,GAAGA;QACd,IAAI,CAACF,WAAW,GAAGA;QACnB,IAAI,CAACC,KAAK,GAAGA;IACf;AACF;AAEO,MAAMd,4BAA4BQ;IACvC,YAAYC,OAAe,CAAE;QAC3B,KAAK,CAACA;QACN,IAAI,CAACC,IAAI,GAAGV,oBAAoBU,IAAI;IACtC;AACF;AAEO,MAAMT,0BAA0BO;IACrCQ,mBAA4B;IAE5B,YAAYP,OAAe,EAAEO,kBAA2B,CAAE;QACxD,KAAK,CAACP;QACN,IAAI,CAACC,IAAI,GAAGT,kBAAkBS,IAAI;QAClC,IAAI,CAACM,kBAAkB,GAAGA;IAC5B;AACF;AAEO,MAAMX,0BAA0BG;IACrCS,KAAc;IAEd,YAAYR,OAAe,EAAEQ,IAAa,CAAE;QAC1C,KAAK,CAACR;QACN,IAAI,CAACC,IAAI,GAAGL,kBAAkBK,IAAI;QAClC,IAAI,CAACO,IAAI,GAAGA;IACd;AACF;AAEO,MAAMV,4BAAqCC;IAChDU,OAAU;IAEV,YAAYC,gBAAmB,CAAE;QAC/B,KAAK,CAACC,KAAKC,SAAS,CAACF;QACrB,IAAI,CAACT,IAAI,GAAGH,oBAAoBG,IAAI;QACpC,IAAI,CAACQ,MAAM,GAAGC;IAChB;AACF;AAEO,MAAMjB,6BAA6BM;IACxCI,MAAW;IACXU,YAAqB;IAErB,YAAYC,cAAmB,EAAED,WAAoB,CAAE;QACrD,KAAK,CAACF,KAAKC,SAAS,CAACE;QACrB,IAAI,CAACb,IAAI,GAAGR,qBAAqBQ,IAAI;QACrC,IAAI,CAACE,KAAK,GAAGW;QACb,IAAI,CAACD,WAAW,GAAGA;IACrB;AACF;AAEO,MAAMlB,gCAAgCI;IAC3C,YAAYC,OAAe,EAAEe,KAAW,CAAE;QACxC,KAAK,CAACf;QACN,IAAI,CAACC,IAAI,GAAGN,wBAAwBM,IAAI;QACxC,IAAI,CAACc,KAAK,GAAGA;IACf;AACF"}
|
|
@@ -84,6 +84,13 @@ class ExceptionFilter {
|
|
|
84
84
|
});
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
+
if (err instanceof _runtimeexceptions.ConflictException) {
|
|
88
|
+
res.status(409).send({
|
|
89
|
+
error: err.message,
|
|
90
|
+
existingResourceId: err.existingResourceId
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
87
94
|
if (err instanceof _runtimeexceptions.ValidationException) {
|
|
88
95
|
res.status(400).send({
|
|
89
96
|
error: "API could not accept this input",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/exception.filter.ts"],"names":["ExceptionFilter","exceptionFilter","logger","loggerFactory","name","handle","err","_req","res","next","isTest","process","env","NODE_ENV","AppConstants","defaultTestEnv","error","message","stack","response","data","url","method","userAgent","headers","errorType","isAxiosError","code","status","send","type","_readableState","AuthenticationError","reasonCode","AuthorizationError","permissions","roles","reason","ForbiddenError","NotFoundException","EntityNotFoundError","BadRequestException","ValidationException","errors","FailedDependencyException","serviceCode","InternalServerException","ExternalServiceError","_err","_res","_next","Error"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/exception.filter.ts"],"names":["ExceptionFilter","exceptionFilter","logger","loggerFactory","name","handle","err","_req","res","next","isTest","process","env","NODE_ENV","AppConstants","defaultTestEnv","error","message","stack","response","data","url","method","userAgent","headers","errorType","isAxiosError","code","status","send","type","_readableState","AuthenticationError","reasonCode","AuthorizationError","permissions","roles","reason","ForbiddenError","NotFoundException","EntityNotFoundError","BadRequestException","ConflictException","existingResourceId","ValidationException","errors","FailedDependencyException","serviceCode","InternalServerException","ExternalServiceError","_err","_res","_next","Error"],"mappings":"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"}
|
|
@@ -97,6 +97,13 @@ class FileStorageService {
|
|
|
97
97
|
const stats = (0, _nodefs.statSync)(filePath);
|
|
98
98
|
return stats.size;
|
|
99
99
|
}
|
|
100
|
+
async validateUniqueFilename(fileName) {
|
|
101
|
+
const existing = await this.findDuplicateByOriginalFileName(fileName);
|
|
102
|
+
if (existing) {
|
|
103
|
+
const { ConflictException } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../exceptions/runtime.exceptions")));
|
|
104
|
+
throw new ConflictException(`A file named "${fileName}" already exists in storage. Please rename the file, delete the existing file (ID: ${existing.fileStorageId}), or choose a different name.`, existing.fileStorageId);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
100
107
|
async saveFile(file, fileHash) {
|
|
101
108
|
const fileExt = (0, _nodepath.extname)(file.originalname).toLowerCase();
|
|
102
109
|
let fileId;
|
|
@@ -206,6 +213,28 @@ class FileStorageService {
|
|
|
206
213
|
}
|
|
207
214
|
});
|
|
208
215
|
}
|
|
216
|
+
async findDuplicateByOriginalFileName(originalFileName) {
|
|
217
|
+
for (const subdir of this.STORAGE_SUBDIRS){
|
|
218
|
+
const dirPath = (0, _nodepath.join)(this.storageBasePath, subdir);
|
|
219
|
+
try {
|
|
220
|
+
const dirFiles = await (0, _promises.readdir)(dirPath);
|
|
221
|
+
for (const file of dirFiles){
|
|
222
|
+
if (file.endsWith('_thumbnails') || file.endsWith('.json')) continue;
|
|
223
|
+
const fileId = _nodepath.default.parse(file).name;
|
|
224
|
+
const metadata = await this.loadMetadata(fileId);
|
|
225
|
+
if (metadata?._originalFileName === originalFileName) {
|
|
226
|
+
return {
|
|
227
|
+
fileStorageId: fileId,
|
|
228
|
+
metadata
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
} catch (error) {
|
|
233
|
+
this.logger.error(`Error searching for duplicate in ${subdir}`, error);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
209
238
|
async saveMetadata(fileStorageId, metadata, fileHash, originalFileName, thumbnailMetadata) {
|
|
210
239
|
const filePath = await this.findFilePath(fileStorageId);
|
|
211
240
|
if (!filePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/file-storage.service.ts"],"names":["FileStorageService","printJobRepository","logger","storageBasePath","STORAGE_SUBDIRS","loggerFactory","typeormService","getDataSource","getRepository","PrintJob","name","join","getMediaPath","AppConstants","defaultPrintFilesStorage","ensureStorageDirectories","mkdir","recursive","subdir","error","readFileStream","fileStorageId","filePath","getFilePath","stream","createReadStream","on","err","message","getFileSize","stats","statSync","size","saveFile","file","fileHash","fileExt","extname","originalname","toLowerCase","fileId","nameHash","createHash","update","digest","substring","crypto","randomUUID","includes","targetDir","targetPath","path","rename","buffer","writeFile","Error","log","getFile","findFilePath","readFile","deleteFile","warn","unlink","metadataPath","debug","thumbnailDir","replace","rm","force","ext","fullPath","existsSync","calculateFileHash","fileBuffer","hashSum","getDeterministicId","fileName","dirPath","files","readdir","matchingFile","find","f","startsWith","fileExists","findDuplicateByHash","findOne","where","order","createdAt","saveMetadata","metadata","originalFileName","thumbnailMetadata","existingOriginalFileName","existingThumbnails","existingContent","existing","JSON","parse","_originalFileName","_thumbnails","metadataWithMeta","_fileHash","_analyzedAt","Date","toISOString","_fileStorageId","stringify","thumbnailMeta","length","loadMetadata","content","hasMetadata","access","saveThumbnails","thumbnails","savedThumbnails","i","thumb","data","format","filename","thumbPath","Buffer","from","relativePath","relative","push","index","width","height","getThumbnail","listThumbnails","filter","sort","a","b","localeCompare","listAllFiles","dirFiles","endsWith","stat","_fileName","fileFormat","fileSize","birthtime","thumbnailCount","getTime","getFileInfo","basename"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/services/file-storage.service.ts"],"names":["FileStorageService","printJobRepository","logger","storageBasePath","STORAGE_SUBDIRS","loggerFactory","typeormService","getDataSource","getRepository","PrintJob","name","join","getMediaPath","AppConstants","defaultPrintFilesStorage","ensureStorageDirectories","mkdir","recursive","subdir","error","readFileStream","fileStorageId","filePath","getFilePath","stream","createReadStream","on","err","message","getFileSize","stats","statSync","size","validateUniqueFilename","fileName","existing","findDuplicateByOriginalFileName","ConflictException","saveFile","file","fileHash","fileExt","extname","originalname","toLowerCase","fileId","nameHash","createHash","update","digest","substring","crypto","randomUUID","includes","targetDir","targetPath","path","rename","buffer","writeFile","Error","log","getFile","findFilePath","readFile","deleteFile","warn","unlink","metadataPath","debug","thumbnailDir","replace","rm","force","ext","fullPath","existsSync","calculateFileHash","fileBuffer","hashSum","getDeterministicId","dirPath","files","readdir","matchingFile","find","f","startsWith","fileExists","findDuplicateByHash","findOne","where","order","createdAt","originalFileName","dirFiles","endsWith","parse","metadata","loadMetadata","_originalFileName","saveMetadata","thumbnailMetadata","existingOriginalFileName","existingThumbnails","existingContent","JSON","_thumbnails","metadataWithMeta","_fileHash","_analyzedAt","Date","toISOString","_fileStorageId","stringify","thumbnailMeta","length","content","hasMetadata","access","saveThumbnails","thumbnails","savedThumbnails","i","thumb","data","format","filename","thumbPath","Buffer","from","relativePath","relative","push","index","width","height","getThumbnail","listThumbnails","filter","sort","a","b","localeCompare","listAllFiles","stat","_fileName","fileFormat","fileSize","birthtime","thumbnailCount","getTime","getFileInfo","basename"],"mappings":"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"}
|
package/dist/tasks.js
CHANGED
|
@@ -38,7 +38,6 @@ class ServerTasks {
|
|
|
38
38
|
registerTask(_containertokens.DITokens.socketIoTask, _taskpresets.TASK_PRESETS.PERIODIC, 500),
|
|
39
39
|
registerTask(_containertokens.DITokens.printerWebsocketTask, _taskpresets.TASK_PRESETS.PERIODIC, 2000, true),
|
|
40
40
|
registerTask(_containertokens.DITokens.printerWebsocketRestoreTask, _taskpresets.TASK_PRESETS.PERIODIC, 15 * 1000, false),
|
|
41
|
-
registerTask(_containertokens.DITokens.printerFilesLoadTask, _taskpresets.TASK_PRESETS.RUNDELAYED, 1000),
|
|
42
41
|
registerTask(_containertokens.DITokens.printJobAnalysisTask, _taskpresets.TASK_PRESETS.PERIODIC, 30 * 1000, false)
|
|
43
42
|
];
|
|
44
43
|
}
|
package/dist/tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tasks.ts"],"names":["ServerTasks","registerTask","task","preset","milliseconds","runImmediately","timingPreset","id","name","SERVER_BOOT_TASK","DITokens","bootTask","TaskPresets","PERIODIC_DISABLED","BOOT_TASKS","softwareUpdateTask","RUNDELAYED","clientDistDownloadTask","RUNONCE","socketIoTask","PERIODIC","printerWebsocketTask","printerWebsocketRestoreTask","
|
|
1
|
+
{"version":3,"sources":["../src/tasks.ts"],"names":["ServerTasks","registerTask","task","preset","milliseconds","runImmediately","timingPreset","id","name","SERVER_BOOT_TASK","DITokens","bootTask","TaskPresets","PERIODIC_DISABLED","BOOT_TASKS","softwareUpdateTask","RUNDELAYED","clientDistDownloadTask","RUNONCE","socketIoTask","PERIODIC","printerWebsocketTask","printerWebsocketRestoreTask","printJobAnalysisTask"],"mappings":";;;;;;;;;;;QAkBaA;eAAAA;;QAXGC;eAAAA;;;6BAP4B;iCACnB;AAMlB,SAASA,aAAaC,IAAS,EAAEC,MAAoB,EAAEC,eAAe,CAAC,EAAEC,iBAAiB,KAAK;IACpG,IAAIC,eAAe;QAAE,GAAGH,MAAM;IAAC;IAC/BG,aAAaF,YAAY,GAAGD,OAAOC,YAAY,IAAIA;IACnDE,aAAaD,cAAc,GAAGA,kBAAkB;IAChD,OAAO;QACLE,IAAIL,KAAKM,IAAI,IAAIN;QACjBA;QACAC,QAAQG;IACV;AACF;AAEO,MAAMN;IACX,OAAuBS,mBAAmBR,aAAaS,yBAAQ,CAACC,QAAQ,EAAEC,yBAAW,CAACC,iBAAiB,EAAE,MAAM,OAAO;IACtH,OAAuBC,aAAa;QAClCb,aAAaS,yBAAQ,CAACK,kBAAkB,EAAEH,yBAAW,CAACI,UAAU,EAAE;QAClEf,aAAaS,yBAAQ,CAACO,sBAAsB,EAAEL,yBAAW,CAACM,OAAO;QACjEjB,aAAaS,yBAAQ,CAACS,YAAY,EAAEP,yBAAW,CAACQ,QAAQ,EAAE;QAE1DnB,aAAaS,yBAAQ,CAACW,oBAAoB,EAAET,yBAAW,CAACQ,QAAQ,EAAE,MAAM;QAExEnB,aAAaS,yBAAQ,CAACY,2BAA2B,EAAEV,yBAAW,CAACQ,QAAQ,EAAE,KAAK,MAAM;QAEpFnB,aAAaS,yBAAQ,CAACa,oBAAoB,EAAEX,yBAAW,CAACQ,QAAQ,EAAE,KAAK,MAAM;KAC9E,CAAC;AACJ"}
|
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": "2.0.
|
|
9
|
+
"version": "2.0.10",
|
|
10
10
|
"bin": {
|
|
11
11
|
"fdm-monster-server": "dist/index.js",
|
|
12
12
|
"fdmm-server": "dist/index.js"
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"jsonwebtoken": "9.0.3",
|
|
87
87
|
"lodash": "4.17.23",
|
|
88
88
|
"luxon": "3.7.2",
|
|
89
|
-
"mqtt": "5.
|
|
89
|
+
"mqtt": "5.15.0",
|
|
90
90
|
"multer": "2.0.2",
|
|
91
91
|
"octokit": "3.2.2",
|
|
92
92
|
"passport": "0.7.0",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"zod": "3.25.76"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
|
-
"@biomejs/biome": "2.3.
|
|
108
|
+
"@biomejs/biome": "2.3.14",
|
|
109
109
|
"@lcov-viewer/cli": "1.3.0",
|
|
110
110
|
"@lcov-viewer/istanbul-report": "1.4.0",
|
|
111
111
|
"@swc/cli": "0.7.10",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
"@types/lodash": "4.17.23",
|
|
122
122
|
"@types/luxon": "3.7.1",
|
|
123
123
|
"@types/multer": "2.0.0",
|
|
124
|
-
"@types/node": "24.10.
|
|
124
|
+
"@types/node": "24.10.10",
|
|
125
125
|
"@types/passport-anonymous": "1.0.5",
|
|
126
126
|
"@types/passport-jwt": "4.0.1",
|
|
127
127
|
"@types/semver": "7.7.1",
|