@fdm-monster/server 2.0.8 → 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.
Files changed (47) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/README.md +1 -1
  3. package/RELEASE_NOTES.MD +22 -0
  4. package/dist/container.js +0 -6
  5. package/dist/container.js.map +1 -1
  6. package/dist/container.tokens.js +0 -3
  7. package/dist/container.tokens.js.map +1 -1
  8. package/dist/controllers/file-storage.controller.js +38 -56
  9. package/dist/controllers/file-storage.controller.js.map +1 -1
  10. package/dist/controllers/printer-files.controller.js +8 -75
  11. package/dist/controllers/printer-files.controller.js.map +1 -1
  12. package/dist/controllers/slicer-compat.controller.js +3 -10
  13. package/dist/controllers/slicer-compat.controller.js.map +1 -1
  14. package/dist/controllers/validation/printer-files-controller.validation.js +7 -0
  15. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  16. package/dist/exceptions/runtime.exceptions.js +11 -0
  17. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  18. package/dist/middleware/exception.filter.js +7 -0
  19. package/dist/middleware/exception.filter.js.map +1 -1
  20. package/dist/server.constants.js +1 -2
  21. package/dist/server.constants.js.map +1 -1
  22. package/dist/services/bambu.api.js +24 -12
  23. package/dist/services/bambu.api.js.map +1 -1
  24. package/dist/services/file-storage.service.js +29 -0
  25. package/dist/services/file-storage.service.js.map +1 -1
  26. package/dist/services/moonraker.api.js +42 -9
  27. package/dist/services/moonraker.api.js.map +1 -1
  28. package/dist/services/octoprint/octoprint-api.routes.js +1 -1
  29. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  30. package/dist/services/octoprint/octoprint.client.js +30 -7
  31. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  32. package/dist/services/octoprint/utils/file.utils.js +42 -5
  33. package/dist/services/octoprint/utils/file.utils.js.map +1 -1
  34. package/dist/services/octoprint.api.js +12 -8
  35. package/dist/services/octoprint.api.js.map +1 -1
  36. package/dist/services/printer-api.interface.js.map +1 -1
  37. package/dist/services/prusa-link/prusa-link.api.js +21 -5
  38. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  39. package/dist/tasks.js +0 -1
  40. package/dist/tasks.js.map +1 -1
  41. package/package.json +6 -6
  42. package/dist/state/file.cache.js +0 -68
  43. package/dist/state/file.cache.js.map +0 -1
  44. package/dist/state/printer-files.store.js +0 -92
  45. package/dist/state/printer-files.store.js.map +0 -1
  46. package/dist/tasks/printer-files-load.task.js +0 -29
  47. package/dist/tasks/printer-files-load.task.js.map +0 -1
Binary file
package/README.md CHANGED
@@ -137,7 +137,7 @@ These are the people involved in the project. Find the meaning of the emoji keys
137
137
  <tr>
138
138
  <td align="center" valign="top" width="10%"><a href="https://github.com/Tbwan"><img src="https://avatars.githubusercontent.com/u/44231748?v=4?s=40" width="40px;" alt="Tbwan"/><br /><sub><b>Tbwan</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3ATbwan" title="Bug reports">🐛</a></td>
139
139
  <td align="center" valign="top" width="10%"><a href="https://github.com/nuvious"><img src="https://avatars.githubusercontent.com/u/5287736?v=4?s=40" width="40px;" alt="David Cheeseman"/><br /><sub><b>David Cheeseman</b></sub></a><br /><a href="#ideas-nuvious" title="Ideas, Planning, & Feedback">🤔</a> <a href="#platform-nuvious" title="Packaging/porting to new platform">📦</a> <a href="#infra-nuvious" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
140
- <td align="center" valign="top" width="10%"><a href="https://github.com/thatguy-jaysenodell"><img src="https://avatars.githubusercontent.com/u/118288184?v=4?s=40" width="40px;" alt="That Guy Jaysen"/><br /><sub><b>That Guy Jaysen</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Athatguy-jaysenodell" title="Bug reports">🐛</a></td>
140
+ <td align="center" valign="top" width="10%"><a href="https://github.com/thatguy-jaysenodell"><img src="https://avatars.githubusercontent.com/u/118288184?v=4?s=40" width="40px;" alt="That Guy Jaysen"/><br /><sub><b>That Guy Jaysen</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Athatguy-jaysenodell" title="Bug reports">🐛</a> <a href="#ideas-thatguy-jaysenodell" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/fdm-monster/fdm-monster/commits?author=thatguy-jaysenodell" title="Code">💻</a></td>
141
141
  <td align="center" valign="top" width="10%"><a href="http://design.zagethy.com"><img src="https://avatars.githubusercontent.com/u/6075740?v=4?s=40" width="40px;" alt="Zagethy"/><br /><sub><b>Zagethy</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3AZagethy" title="Bug reports">🐛</a></td>
142
142
  </tr>
143
143
  </tbody>
package/RELEASE_NOTES.MD CHANGED
@@ -1,5 +1,27 @@
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
+
13
+ # FDM Monster 2.0.9
14
+
15
+ ## Features
16
+
17
+ - Implemented directory navigation with optional recursive mode for printer file listings across all 4 implementations
18
+ - Added `dir` field to `FileDto` to distinguish files from directories (OctoPrint and Moonraker support recursive, PrusaLink and Bambu non-recursive only)
19
+
20
+ ## Refactor
21
+
22
+ - Updated `getFiles()` signature to support `recursive` and `startDir` parameters with non-recursive as default for performance
23
+ - Removed in-memory file cache system - files are now fetched fresh from printer APIs
24
+
3
25
  # FDM Monster 2.0.8
4
26
 
5
27
  ## Features
package/dist/container.js CHANGED
@@ -18,11 +18,9 @@ const _settingsstore = require("./state/settings.store");
18
18
  const _serverreleaseservice = require("./services/core/server-release.service");
19
19
  const _taskmanagerservice = require("./services/task-manager.service");
20
20
  const _githubservice = require("./services/core/github.service");
21
- const _filecache = require("./state/file.cache");
22
21
  const _printerwebsockettask = require("./tasks/printer-websocket.task");
23
22
  const _socketiotask = require("./tasks/socketio.task");
24
23
  const _socketfactory = require("./services/socket.factory");
25
- const _printerfilesstore = require("./state/printer-files.store");
26
24
  const _eventemitter = require("./handlers/event-emitter");
27
25
  const _serverconstants = require("./server.constants");
28
26
  const _softwareupdatetask = require("./tasks/software-update.task");
@@ -34,7 +32,6 @@ const _boottask = require("./tasks/boot.task");
34
32
  const _userservice = require("./services/orm/user.service");
35
33
  const _roleservice = require("./services/orm/role.service");
36
34
  const _permissionservice = require("./services/orm/permission.service");
37
- const _printerfilesloadtask = require("./tasks/printer-files-load.task");
38
35
  const _authorizationconstants = require("./constants/authorization.constants");
39
36
  const _printerwebsocketrestoretask = require("./tasks/printer-websocket-restore.task");
40
37
  const _configservice = require("./services/core/config.service");
@@ -164,9 +161,7 @@ function configureContainer() {
164
161
  [di.batchCallService]: (0, _awilix.asClass)(_batchcallservice.BatchCallService).singleton(),
165
162
  [di.floorStore]: (0, _awilix.asClass)(_floorstore.FloorStore).singleton(),
166
163
  [di.printerThumbnailCache]: (0, _awilix.asClass)(_printerthumbnailcache.PrinterThumbnailCache).singleton(),
167
- [di.fileCache]: (0, _awilix.asClass)(_filecache.FileCache).singleton(),
168
164
  [di.fileUploadTrackerCache]: (0, _awilix.asClass)(_fileuploadtrackercache.FileUploadTrackerCache).singleton(),
169
- [di.printerFilesStore]: (0, _awilix.asClass)(_printerfilesstore.PrinterFilesStore).singleton(),
170
165
  [di.printerCache]: (0, _awilix.asClass)(_printercache.PrinterCache).singleton(),
171
166
  [di.printerEventsCache]: (0, _awilix.asClass)(_printereventscache.PrinterEventsCache).singleton(),
172
167
  [di.printerSocketStore]: (0, _awilix.asClass)(_printersocketstore.PrinterSocketStore).singleton(),
@@ -182,7 +177,6 @@ function configureContainer() {
182
177
  [di.clientDistDownloadTask]: (0, _awilix.asClass)(_clientbundletask.ClientDistDownloadTask).singleton(),
183
178
  [di.printerWebsocketTask]: (0, _awilix.asClass)(_printerwebsockettask.PrinterWebsocketTask).singleton(),
184
179
  [di.printerWebsocketRestoreTask]: (0, _awilix.asClass)(_printerwebsocketrestoretask.PrinterWebsocketRestoreTask).singleton(),
185
- [di.printerFilesLoadTask]: (0, _awilix.asClass)(_printerfilesloadtask.PrinterFilesLoadTask).singleton(),
186
180
  [di.printJobAnalysisTask]: (0, _awilix.asClass)(_printjobanalysistask.PrintJobAnalysisTask).singleton()
187
181
  });
188
182
  return container;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/container.ts"],"names":["configureContainer","container","createContainer","injectionMode","InjectionMode","CLASSIC","di","DITokens","register","appDefaultRole","asValue","ROLES","GUEST","appDefaultRoleNoLogin","ADMIN","serverVersion","asFunction","process","env","AppConstants","VERSION_KEY","cradleService","asClass","CradleService","inject","socketFactory","SocketFactory","transient","typeormService","TypeormService","singleton","settingsService","SettingsService","floorService","FloorService","floorPositionService","FloorPositionService","cameraStreamService","CameraStreamService","printerService","PrinterService","printerMaintenanceLogService","PrinterMaintenanceLogService","printerTagService","PrinterTagService","refreshTokenService","RefreshTokenService","userService","UserService","userRoleService","UserRoleService","roleService","RoleService","permissionService","PermissionService","serverHost","ServerHost","exceptionFilter","ExceptionFilter","settingsStore","SettingsStore","configService","ConfigService","authService","AuthService","jwtService","JwtService","loggerFactory","LoggerFactory","taskManagerService","TaskManagerService","toadScheduler","ToadScheduler","eventEmitter2","configureEventEmitter","serverReleaseService","ServerReleaseService","monsterPiService","MonsterPiService","githubService","GithubService","octokitService","CustomOctoKit","Octokit","plugin","throttling","auth","get","GITHUB_PAT","throttle","onRateLimit","_retryAfter","options","_octokit","_retryCount","logger","warn","method","url","onSecondaryRateLimit","clientBundleService","ClientBundleService","logDumpService","LogDumpService","httpClientFactory","HttpClientFactory","socketIoGateway","SocketIoGateway","multerService","MulterService","yamlService","YamlService","printerLogin","printerApiFactory","PrinterApiFactory","prusaLinkApi","PrusaLinkApi","prusaLinkPollingAdapter","PrusaLinkHttpPollingAdapter","octoprintApi","OctoprintApi","octoprintClient","OctoprintClient","octoPrintSockIoAdapter","OctoprintWebsocketAdapter","moonrakerApi","MoonrakerApi","moonrakerClient","MoonrakerClient","moonrakerWebsocketAdapter","MoonrakerWebsocketAdapter","bambuApi","BambuApi","bambuClient","BambuClient","bambuFtpAdapter","BambuFtpAdapter","bambuMqttAdapter","BambuMqttAdapter","batchCallService","BatchCallService","floorStore","FloorStore","printerThumbnailCache","PrinterThumbnailCache","fileCache","FileCache","fileUploadTrackerCache","FileUploadTrackerCache","printerFilesStore","PrinterFilesStore","printerCache","PrinterCache","printerEventsCache","PrinterEventsCache","printerSocketStore","PrinterSocketStore","testPrinterSocketStore","TestPrinterSocketStore","printJobService","PrintJobService","printQueueService","PrintQueueService","fileStorageService","FileStorageService","fileAnalysisService","FileAnalysisService","printFileDownloaderService","PrintFileDownloaderService","bootTask","BootTask","softwareUpdateTask","SoftwareUpdateTask","socketIoTask","SocketIoTask","clientDistDownloadTask","ClientDistDownloadTask","printerWebsocketTask","PrinterWebsocketTask","printerWebsocketRestoreTask","PrinterWebsocketRestoreTask","printerFilesLoadTask","PrinterFilesLoadTask","printJobAnalysisTask","PrintJobAnalysisTask"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/container.ts"],"names":["configureContainer","container","createContainer","injectionMode","InjectionMode","CLASSIC","di","DITokens","register","appDefaultRole","asValue","ROLES","GUEST","appDefaultRoleNoLogin","ADMIN","serverVersion","asFunction","process","env","AppConstants","VERSION_KEY","cradleService","asClass","CradleService","inject","socketFactory","SocketFactory","transient","typeormService","TypeormService","singleton","settingsService","SettingsService","floorService","FloorService","floorPositionService","FloorPositionService","cameraStreamService","CameraStreamService","printerService","PrinterService","printerMaintenanceLogService","PrinterMaintenanceLogService","printerTagService","PrinterTagService","refreshTokenService","RefreshTokenService","userService","UserService","userRoleService","UserRoleService","roleService","RoleService","permissionService","PermissionService","serverHost","ServerHost","exceptionFilter","ExceptionFilter","settingsStore","SettingsStore","configService","ConfigService","authService","AuthService","jwtService","JwtService","loggerFactory","LoggerFactory","taskManagerService","TaskManagerService","toadScheduler","ToadScheduler","eventEmitter2","configureEventEmitter","serverReleaseService","ServerReleaseService","monsterPiService","MonsterPiService","githubService","GithubService","octokitService","CustomOctoKit","Octokit","plugin","throttling","auth","get","GITHUB_PAT","throttle","onRateLimit","_retryAfter","options","_octokit","_retryCount","logger","warn","method","url","onSecondaryRateLimit","clientBundleService","ClientBundleService","logDumpService","LogDumpService","httpClientFactory","HttpClientFactory","socketIoGateway","SocketIoGateway","multerService","MulterService","yamlService","YamlService","printerLogin","printerApiFactory","PrinterApiFactory","prusaLinkApi","PrusaLinkApi","prusaLinkPollingAdapter","PrusaLinkHttpPollingAdapter","octoprintApi","OctoprintApi","octoprintClient","OctoprintClient","octoPrintSockIoAdapter","OctoprintWebsocketAdapter","moonrakerApi","MoonrakerApi","moonrakerClient","MoonrakerClient","moonrakerWebsocketAdapter","MoonrakerWebsocketAdapter","bambuApi","BambuApi","bambuClient","BambuClient","bambuFtpAdapter","BambuFtpAdapter","bambuMqttAdapter","BambuMqttAdapter","batchCallService","BatchCallService","floorStore","FloorStore","printerThumbnailCache","PrinterThumbnailCache","fileUploadTrackerCache","FileUploadTrackerCache","printerCache","PrinterCache","printerEventsCache","PrinterEventsCache","printerSocketStore","PrinterSocketStore","testPrinterSocketStore","TestPrinterSocketStore","printJobService","PrintJobService","printQueueService","PrintQueueService","fileStorageService","FileStorageService","fileAnalysisService","FileAnalysisService","printFileDownloaderService","PrintFileDownloaderService","bootTask","BootTask","softwareUpdateTask","SoftwareUpdateTask","socketIoTask","SocketIoTask","clientDistDownloadTask","ClientDistDownloadTask","printerWebsocketTask","PrinterWebsocketTask","printerWebsocketRestoreTask","PrinterWebsocketRestoreTask","printJobAnalysisTask","PrintJobAnalysisTask"],"mappings":"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"}
@@ -70,14 +70,12 @@ const DITokens = {
70
70
  settingsStore: "settingsStore",
71
71
  printerSocketStore: "printerSocketStore",
72
72
  testPrinterSocketStore: "testPrinterSocketStore",
73
- printerFilesStore: "printerFilesStore",
74
73
  prusaLinkPollingAdapter: "prusaLinkPollingAdapter",
75
74
  octoPrintSockIoAdapter: "octoPrintSockIoAdapter",
76
75
  moonrakerWebsocketAdapter: "moonrakerWebsocketAdapter",
77
76
  printerCache: "printerCache",
78
77
  printerEventsCache: "printerEventsCache",
79
78
  printerThumbnailCache: "printerThumbnailCache",
80
- fileCache: "fileCache",
81
79
  fileUploadTrackerCache: "fileUploadTrackerCache",
82
80
  bootTask: "bootTask",
83
81
  softwareUpdateTask: "softwareUpdateTask",
@@ -85,7 +83,6 @@ const DITokens = {
85
83
  socketIoTask: "socketIoTask",
86
84
  printerWebsocketTask: "printerWebsocketTask",
87
85
  printerWebsocketRestoreTask: "printerWebsocketRestoreTask",
88
- printerFilesLoadTask: "printerFilesLoadTask",
89
86
  printJobAnalysisTask: "printJobAnalysisTask"
90
87
  };
91
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","printerFilesStore","prusaLinkPollingAdapter","octoPrintSockIoAdapter","moonrakerWebsocketAdapter","printerCache","printerEventsCache","printerThumbnailCache","fileCache","fileUploadTrackerCache","bootTask","softwareUpdateTask","clientDistDownloadTask","socketIoTask","printerWebsocketTask","printerWebsocketRestoreTask","printerFilesLoadTask","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,mBAAmB;IACnBC,yBAAyB;IACzBC,wBAAwB;IACxBC,2BAA2B;IAE3BC,cAAc;IACdC,oBAAoB;IACpBC,uBAAuB;IACvBC,WAAW;IACXC,wBAAwB;IAExBC,UAAU;IACVC,oBAAoB;IACpBC,wBAAwB;IACxBC,cAAc;IACdC,sBAAsB;IACtBC,6BAA6B;IAC7BC,sBAAsB;IACtBC,sBAAsB;AACxB"}
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
- 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
- res.status(400).send({
210
- error: "No file uploaded"
211
- });
212
- return;
213
- }
214
- if (files.length > 1) {
215
- res.status(400).send({
216
- error: "Only 1 file can be uploaded at a time"
217
- });
218
- return;
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","ext","extname","originalname","tempPathWithExt","path","copyFileSync","filamentUsedGrams","saveFile","existsSync","unlinkSync","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR"],"mappings":";;;;+BAeaA;;;eAAAA;;;+BAfoC;iCACpB;yBACK;8BACW;wCACvB;oCACa;+BACL;+BACC;qCAEK;wBACiB;0BAC7B;;;;;;;;;;AAIjB,MAAMA;;;;IACMC,OAAsB;IAEvC,YACEC,aAA6B,EAC7B,AAAiBC,kBAAsC,EACvD,AAAiBC,aAA4B,EAC7C,AAAiBC,mBAAwC,CACzD;aAHiBF,qBAAAA;aACAC,gBAAAA;aACAC,sBAAAA;QAEjB,IAAI,CAACJ,MAAM,GAAGC,cAAcF,sBAAsBM,IAAI;IACxD;IAEA,MACMC,UAAUC,GAAY,EAAEC,GAAa,EAAE;QAC3C,IAAI;YACF,MAAMC,QAAQ,MAAM,IAAI,CAACP,kBAAkB,CAACQ,YAAY;YAExDF,IAAIG,IAAI,CAAC;gBACPF,OAAOA,MAAMG,GAAG,CAACC,CAAAA;oBACf,MAAMC,aAAa,AAACD,CAAAA,KAAKE,QAAQ,EAAEC,eAAe,EAAE,AAAD,EAAGJ,GAAG,CAAC,CAACK,QAAgB,CAAA;4BACzEC,OAAOD,MAAMC,KAAK;4BAClBC,OAAOF,MAAME,KAAK;4BAClBC,QAAQH,MAAMG,MAAM;4BACpBC,QAAQJ,MAAMI,MAAM;4BACpBC,MAAML,MAAMK,IAAI;wBAClB,CAAA;oBACA,OAAO;wBACLC,eAAeV,KAAKU,aAAa;wBACjCC,UAAUX,KAAKW,QAAQ;wBACvBC,YAAYZ,KAAKY,UAAU;wBAC3BC,UAAUb,KAAKa,QAAQ;wBACvBC,UAAUd,KAAKc,QAAQ;wBACvBC,WAAWf,KAAKe,SAAS;wBACzBd;wBACAC,UAAUF,KAAKE,QAAQ;oBACzB;gBACF;gBACAc,YAAYpB,MAAMqB,MAAM;YAC1B;QACF,EAAE,OAAOC,OAAO;YACd,IAAI,CAAC/B,MAAM,CAAC+B,KAAK,CAAC,CAAC,sBAAsB,EAAEA,OAAO;YAClDvB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO;YAAuB;QACvD;IACF;IAMA,MAEME,gBAAgB1B,GAAY,EAAEC,GAAa,EAAE;QACjD,MAAM,EAAEe,aAAa,EAAE,GAAGhB,IAAI2B,MAAM;QAEpC,IAAI;YACF,MAAMrB,OAAO,MAAM,IAAI,CAACX,kBAAkB,CAACiC,WAAW,CAACZ;YAEvD,IAAI,CAACV,MAAM;gBACTL,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;oBAAEoB,OAAO;gBAAiB;gBAC/C;YACF;YAEA,MAAMjB,aAAa,AAACD,CAAAA,KAAKE,QAAQ,EAAEC,eAAe,EAAE,AAAD,EAAGJ,GAAG,CAAC,CAACK,QAAgB,CAAA;oBACzEC,OAAOD,MAAMC,KAAK;oBAClBC,OAAOF,MAAME,KAAK;oBAClBC,QAAQH,MAAMG,MAAM;oBACpBC,QAAQJ,MAAMI,MAAM;oBACpBC,MAAML,MAAMK,IAAI;gBAClB,CAAA;YAEAd,IAAIG,IAAI,CAAC;gBACPY,eAAeV,KAAKU,aAAa;gBACjCC,UAAUX,KAAKW,QAAQ;gBACvBC,YAAYZ,KAAKY,UAAU;gBAC3BC,UAAUb,KAAKa,QAAQ;gBACvBC,UAAUd,KAAKc,QAAQ;gBACvBC,WAAWf,KAAKe,SAAS;gBACzBd;gBACAC,UAAUF,KAAKE,QAAQ;YACzB;QACF,EAAE,OAAOgB,OAAO;YACd,IAAI,CAAC/B,MAAM,CAAC+B,KAAK,CAAC,CAAC,gCAAgC,EAAER,cAAc,EAAE,EAAEQ,OAAO;YAC9EvB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO;YAA8B;QAC9D;IACF;IAMA,MAEMK,WAAW7B,GAAY,EAAEC,GAAa,EAAE;QAC5C,MAAM,EAAEe,aAAa,EAAE,GAAGhB,IAAI2B,MAAM;QAEpC,IAAI;YACF,MAAM,IAAI,CAAChC,kBAAkB,CAACkC,UAAU,CAACb;YAEzC,IAAI,CAACvB,MAAM,CAACqC,GAAG,CAAC,CAAC,aAAa,EAAEd,eAAe;YAC/Cf,IAAIG,IAAI,CAAC;gBAAE2B,SAAS;gBAA6Bf;YAAc;QACjE,EAAE,OAAOQ,OAAO;YACd,IAAI,CAAC/B,MAAM,CAAC+B,KAAK,CAAC,CAAC,sBAAsB,EAAER,cAAc,EAAE,EAAEQ,OAAO;YACpEvB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO;YAAwB;QACxD;IACF;IAEA,MAEMQ,YAAYhC,GAAY,EAAEC,GAAa,EAAE;QAC7C,MAAM,EAAEe,aAAa,EAAE,GAAGhB,IAAI2B,MAAM;QAEpC,IAAI;YACF,MAAMM,WAAW,IAAI,CAACtC,kBAAkB,CAACuC,WAAW,CAAClB;YACrD,MAAMmB,aAAa,MAAM,IAAI,CAACxC,kBAAkB,CAACwC,UAAU,CAACnB;YAC5D,IAAI,CAACmB,YAAY;gBACflC,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;oBAAEoB,OAAO;gBAAiB;gBAC/C;YACF;YACA,IAAI,CAAC/B,MAAM,CAACqC,GAAG,CAAC,CAAC,gBAAgB,EAAEd,eAAe;YAGlD,MAAMoB,mBAAmB,MAAM,IAAI,CAACzC,kBAAkB,CAAC0C,YAAY,CAACrB;YAEpE,MAAMsB,iBAAiB,MAAM,IAAI,CAACzC,mBAAmB,CAACmC,WAAW,CAACC;YAClE,MAAMzB,WAAW8B,eAAe9B,QAAQ;YACxC,MAAMD,aAAa+B,eAAe/B,UAAU;YAE5C,IAAI,CAACd,MAAM,CAACqC,GAAG,CAAC,CAAC,sBAAsB,EAAEd,cAAc,SAAS,EAAER,SAASU,UAAU,CAAC,SAAS,EAAEV,SAAS+B,WAAW,CAAC,OAAO,EAAE/B,SAASgC,qBAAqB,CAAC,cAAc,EAAEjC,WAAWgB,MAAM,EAAE;YAEjM,MAAMH,WAAW,MAAM,IAAI,CAACzB,kBAAkB,CAAC8C,iBAAiB,CAACR;YACjE,MAAMS,mBAAmBN,kBAAkBO,qBAAqB3B;YAEhER,SAASS,QAAQ,GAAGyB;YAEpB,IAAIE,oBAA2B,EAAE;YACjC,IAAIrC,WAAWgB,MAAM,GAAG,GAAG;gBACzBqB,oBAAoB,MAAM,IAAI,CAACjD,kBAAkB,CAACkD,cAAc,CAAC7B,eAAeT;gBAChF,IAAI,CAACd,MAAM,CAACqC,GAAG,CAAC,CAAC,MAAM,EAAEc,kBAAkBrB,MAAM,CAAC,gBAAgB,EAAEP,eAAe;YACrF;YAEA,MAAM,IAAI,CAACrB,kBAAkB,CAACmD,YAAY,CAAC9B,eAAeR,UAAUY,UAAUsB,kBAAkBE;YAEhG3C,IAAIG,IAAI,CAAC;gBACP2B,SAAS;gBACTf;gBACAR;gBACAuC,gBAAgBxC,WAAWgB,MAAM;YACnC;QACF,EAAE,OAAOC,OAAO;YACd,IAAI,CAAC/B,MAAM,CAAC+B,KAAK,CAAC,CAAC,uBAAuB,EAAER,cAAc,EAAE,EAAEQ,OAAO;YACrEvB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO,CAAC,wBAAwB,EAAEA,OAAO;YAAC;QACnE;IACF;IAEA,MAEMwB,oBAAoBhD,GAAY,EAAEC,GAAa,EAAE;QACrD,MAAM,EAAEe,aAAa,EAAEL,KAAK,EAAE,GAAGX,IAAI2B,MAAM;QAC3C,MAAMsB,iBAAiBC,OAAOC,QAAQ,CAACxC;QAEvC,IAAIuC,OAAOE,KAAK,CAACH,iBAAiB;YAChChD,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO;YAA0B;YACxD;QACF;QAEA,IAAI;YACF,MAAM6B,YAAY,MAAM,IAAI,CAAC1D,kBAAkB,CAAC2D,YAAY,CAACtC,eAAeiC;YAE5E,IAAI,CAACI,WAAW;gBACdpD,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;oBAAEoB,OAAO;gBAAsB;gBACpD;YACF;YAGA,MAAM+B,QAAQF,SAAS,CAAC,EAAE,KAAK,QAAQA,SAAS,CAAC,EAAE,KAAK;YACxD,MAAMG,QAAQH,SAAS,CAAC,EAAE,KAAK,QAAQA,SAAS,CAAC,EAAE,KAAK,QAAQA,SAAS,CAAC,EAAE,KAAK,QAAQA,SAAS,CAAC,EAAE,KAAK;YAG1G,IAAIG,OAAO;gBACTvD,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;oBAAEoB,OAAO;gBAAuC;gBACrE;YACF;YAEA,MAAMiC,WAAWF,QAAQ,eAAe;YACxC,MAAMG,SAASL,UAAUM,QAAQ,CAAC;YAClC1D,IAAIG,IAAI,CAAC;gBACPwD,iBAAiB,CAAC,KAAK,EAAEH,SAAS,QAAQ,EAAEC,QAAQ;YACtD;QACF,EAAE,OAAOlC,OAAO;YACd,IAAI,CAAC/B,MAAM,CAAC+B,KAAK,CAAC,CAAC,wBAAwB,EAAEyB,eAAe,KAAK,EAAEjC,cAAc,EAAE,EAAEQ,OAAO;YAC5FvB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO;YAA0B;QAC1D;IACF;IAMA,MAEMqC,WAAW7D,GAAY,EAAEC,GAAa,EAAE;QAC5C,IAAI;YAEF,MAAM6D,qBAAqB;gBAAC;gBAAU;gBAAQ;aAAU;YACxD,MAAM5D,QAAQ,MAAM,IAAI,CAACN,aAAa,CAACmE,mBAAmB,CAAC/D,KAAKC,KAAK6D,oBAAoB;YAEzF,IAAI,CAAC5D,OAAOqB,QAAQ;gBAClBtB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;oBAAEoB,OAAO;gBAAmB;gBACjD;YACF;YAEA,IAAItB,MAAMqB,MAAM,GAAG,GAAG;gBACpBtB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;oBAAEoB,OAAO;gBAAwC;gBACtE;YACF;YAEA,MAAMlB,OAAOJ,KAAK,CAAC,EAAE;YAGrB,MAAM8D,MAAMC,IAAAA,iBAAO,EAAC3D,KAAK4D,YAAY;YACrC,MAAMC,kBAAkB7D,KAAK8D,IAAI,GAAGJ;YAEpC,IAAI;gBAEFK,IAAAA,oBAAY,EAAC/D,KAAK8D,IAAI,EAAED;gBAGxB,MAAM/C,WAAW,MAAM,IAAI,CAACzB,kBAAkB,CAAC8C,iBAAiB,CAAC0B;gBAGjE,IAAI,CAAC1E,MAAM,CAACqC,GAAG,CAAC,CAAC,gBAAgB,EAAExB,KAAK4D,YAAY,CAAC,OAAO,EAAEF,IAAI,CAAC,CAAC;gBACpE,MAAM1B,iBAAiB,MAAM,IAAI,CAACzC,mBAAmB,CAACmC,WAAW,CAACmC;gBAClE,MAAM3D,WAAW8B,eAAe9B,QAAQ;gBACxC,MAAMD,aAAa+B,eAAe/B,UAAU;gBAE5C,IAAI,CAACd,MAAM,CAACqC,GAAG,CACb,CAAC,0BAA0B,EAAEtB,SAASU,UAAU,CAAC,SAAS,EAAEV,SAAS+B,WAAW,CAAC,EAAE,CAAC,GACpF,CAAC,KAAK,EAAE/B,SAASgC,qBAAqB,CAAC,YAAY,EAAEhC,SAAS8D,iBAAiB,CAAC,GAAG,CAAC,GACpF,CAAC,WAAW,EAAE/D,WAAWgB,MAAM,EAAE;gBAInC,MAAMP,gBAAgB,MAAM,IAAI,CAACrB,kBAAkB,CAAC4E,QAAQ,CAACjE,MAAMc;gBACnE,IAAI,CAAC3B,MAAM,CAACqC,GAAG,CAAC,CAAC,cAAc,EAAExB,KAAK4D,YAAY,CAAC,IAAI,EAAElD,eAAe;gBAGxE,IAAI4B,oBAA2B,EAAE;gBACjC,IAAIrC,WAAWgB,MAAM,GAAG,GAAG;oBACzBqB,oBAAoB,MAAM,IAAI,CAACjD,kBAAkB,CAACkD,cAAc,CAAC7B,eAAeT;oBAChF,IAAI,CAACd,MAAM,CAACqC,GAAG,CAAC,CAAC,MAAM,EAAEc,kBAAkBrB,MAAM,CAAC,kBAAkB,EAAEP,eAAe;gBACvF;gBAGA,MAAM,IAAI,CAACrB,kBAAkB,CAACmD,YAAY,CAAC9B,eAAeR,UAAUY,UAAUd,KAAK4D,YAAY,EAAEtB;gBACjG,IAAI,CAACnD,MAAM,CAACqC,GAAG,CAAC,CAAC,wBAAwB,EAAEd,eAAe;gBAE1Df,IAAIG,IAAI,CAAC;oBACP2B,SAAS;oBACTf;oBACAC,UAAUX,KAAK4D,YAAY;oBAC3B/C,UAAUb,KAAKS,IAAI;oBACnBK;oBACAZ;oBACAuC,gBAAgBxC,WAAWgB,MAAM;gBACnC;YACF,SAAU;gBAER,IAAIiD,IAAAA,kBAAU,EAACL,kBAAkB;oBAC/BM,IAAAA,kBAAU,EAACN;gBACb;YACF;QACF,EAAE,OAAO3C,OAAO;YACd,IAAI,CAAC/B,MAAM,CAAC+B,KAAK,CAAC,CAAC,uBAAuB,EAAEA,OAAO;YACnDvB,IAAIwB,MAAM,CAAC,KAAKrB,IAAI,CAAC;gBAAEoB,OAAO;YAAwB;QACxD;IACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAtROkD,6BAAY,CAACC,QAAQ,GAAG;;QACtBC,IAAAA,0BAAY;QAAIC,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;YAAED,6BAAK,CAACE,QAAQ;SAAC"}
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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"}
@@ -16,7 +16,6 @@ const _printerfilescontrollervalidation = require("./validation/printer-files-co
16
16
  const _runtimeexceptions = require("../exceptions/runtime.exceptions");
17
17
  const _printer = require("../middleware/printer");
18
18
  const _authorizationconstants = require("../constants/authorization.constants");
19
- const _printerfilesstore = require("../state/printer-files.store");
20
19
  const _multerservice = require("../services/core/multer.service");
21
20
  const _loggerfactory = require("../handlers/logger-factory");
22
21
  const _express = require("express");
@@ -41,16 +40,14 @@ function _ts_metadata(k, v) {
41
40
  }
42
41
  class PrinterFilesController {
43
42
  printerApi;
44
- printerFilesStore;
45
43
  printJobService;
46
44
  fileAnalysisService;
47
45
  fileStorageService;
48
46
  multerService;
49
47
  printerThumbnailCache;
50
48
  logger;
51
- constructor(loggerFactory, printerApi, printerFilesStore, printJobService, fileAnalysisService, fileStorageService, multerService, printerThumbnailCache){
49
+ constructor(loggerFactory, printerApi, printJobService, fileAnalysisService, fileStorageService, multerService, printerThumbnailCache){
52
50
  this.printerApi = printerApi;
53
- this.printerFilesStore = printerFilesStore;
54
51
  this.printJobService = printJobService;
55
52
  this.fileAnalysisService = fileAnalysisService;
56
53
  this.fileStorageService = fileStorageService;
@@ -58,36 +55,29 @@ class PrinterFilesController {
58
55
  this.printerThumbnailCache = printerThumbnailCache;
59
56
  this.logger = loggerFactory(PrinterFilesController.name);
60
57
  }
61
- async purgeIndexedFiles(req, res) {
62
- await this.printerFilesStore.purgeFiles();
63
- res.send();
64
- }
65
58
  async getThumbnails(req, res) {
66
59
  const thumbnails = await this.printerThumbnailCache.getAllValues();
67
60
  res.send(thumbnails);
68
61
  }
69
62
  async getFiles(req, res) {
70
- const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
71
- this.logger.log("Refreshing file storage (eager load)");
72
- const files = await this.printerFilesStore.loadFiles(currentPrinterId);
63
+ const { printerApi } = (0, _printerresolver.getScopedPrinter)(req);
64
+ const { recursive: recursiveStr, startDir } = await (0, _validators.validateInput)(req.query, _printerfilescontrollervalidation.getFilesSchema);
65
+ const recursive = recursiveStr === "true";
66
+ const files = await printerApi.getFiles(recursive, startDir);
73
67
  res.send(files);
74
68
  }
75
69
  async startPrintFile(req, res) {
76
70
  const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
77
71
  const { filePath } = await (0, _validators.validateInput)(req.body, _printerfilescontrollervalidation.startPrintFileSchema);
78
- const encodedFilePath = encodeURIComponent(filePath);
72
+ const encodedFilePath = filePath.split('/').map(encodeURIComponent).join('/');
79
73
  await this.printerApi.startPrint(encodedFilePath);
80
74
  this.logger.log(`Started print for printer ${currentPrinterId}`);
81
75
  res.send();
82
76
  }
83
- async getFilesCache(req, res) {
84
- const { currentPrinter } = (0, _printerresolver.getScopedPrinter)(req);
85
- res.send(this.printerFilesStore.getFiles(currentPrinter.id));
86
- }
87
77
  async downloadFile(req, res) {
88
78
  this.logger.log(`Downloading file ${req.params.path}`);
89
79
  const { path } = await (0, _validators.validateInput)(req.params, _printerfilescontrollervalidation.downloadFileSchema);
90
- const encodedFilePath = encodeURIComponent(path);
80
+ const encodedFilePath = path.split('/').map(encodeURIComponent).join('/');
91
81
  const response = await this.printerApi.downloadFile(encodedFilePath);
92
82
  res.setHeader("Content-Type", response.headers["content-type"]);
93
83
  res.setHeader("Content-Length", response.headers["content-length"]);
@@ -98,33 +88,11 @@ class PrinterFilesController {
98
88
  response.data.pipe(res);
99
89
  }
100
90
  async deleteFileOrFolder(req, res) {
101
- const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
102
91
  const { path } = await (0, _validators.validateInput)(req.query, _printerfilescontrollervalidation.getFileSchema);
103
- const encodedFilePath = encodeURIComponent(path);
92
+ const encodedFilePath = path.split('/').map(encodeURIComponent).join('/');
104
93
  const result = await this.printerApi.deleteFile(encodedFilePath);
105
- await this.printerFilesStore.deleteFile(currentPrinterId, path);
106
94
  res.send(result);
107
95
  }
108
- async clearPrinterFiles(req, res) {
109
- const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
110
- const failedFiles = [];
111
- const succeededFiles = [];
112
- const nonRecursiveFiles = await this.printerApi.getFiles();
113
- for (let file of nonRecursiveFiles){
114
- try {
115
- const encodedFilePath = encodeURIComponent(file.path);
116
- await this.printerApi.deleteFile(encodedFilePath);
117
- succeededFiles.push(file);
118
- } catch (e) {
119
- failedFiles.push(file);
120
- }
121
- }
122
- await this.printerFilesStore.purgePrinterFiles(currentPrinterId);
123
- res.send({
124
- failedFiles,
125
- succeededFiles
126
- });
127
- }
128
96
  async getPrinterThumbnail(req, res) {
129
97
  const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
130
98
  const printerThumbnail = await this.printerThumbnailCache.getValue(currentPrinterId);
@@ -162,7 +130,6 @@ class PrinterFilesController {
162
130
  }
163
131
  throw e;
164
132
  });
165
- await this.printerFilesStore.loadFiles(currentPrinterId);
166
133
  const ext = (0, _nodepath.extname)(uploadedFile.originalname);
167
134
  const tempPathWithExt = uploadedFile.path + ext;
168
135
  try {
@@ -245,17 +212,6 @@ class PrinterFilesController {
245
212
  return _serverconstants.AppConstants.defaultAcceptedGcodeExtensions;
246
213
  }
247
214
  }
248
- _ts_decorate([
249
- (0, _awilixexpress.POST)(),
250
- (0, _awilixexpress.route)("/purge"),
251
- (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Clear)),
252
- _ts_metadata("design:type", Function),
253
- _ts_metadata("design:paramtypes", [
254
- typeof _express.Request === "undefined" ? Object : _express.Request,
255
- typeof _express.Response === "undefined" ? Object : _express.Response
256
- ]),
257
- _ts_metadata("design:returntype", Promise)
258
- ], PrinterFilesController.prototype, "purgeIndexedFiles", null);
259
215
  _ts_decorate([
260
216
  (0, _awilixexpress.GET)(),
261
217
  (0, _awilixexpress.route)("/thumbnails"),
@@ -290,17 +246,6 @@ _ts_decorate([
290
246
  ]),
291
247
  _ts_metadata("design:returntype", Promise)
292
248
  ], PrinterFilesController.prototype, "startPrintFile", null);
293
- _ts_decorate([
294
- (0, _awilixexpress.GET)(),
295
- (0, _awilixexpress.route)("/:id/cache"),
296
- (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
297
- _ts_metadata("design:type", Function),
298
- _ts_metadata("design:paramtypes", [
299
- typeof _express.Request === "undefined" ? Object : _express.Request,
300
- typeof _express.Response === "undefined" ? Object : _express.Response
301
- ]),
302
- _ts_metadata("design:returntype", Promise)
303
- ], PrinterFilesController.prototype, "getFilesCache", null);
304
249
  _ts_decorate([
305
250
  (0, _awilixexpress.GET)(),
306
251
  (0, _awilixexpress.route)("/:id/download/:path"),
@@ -323,17 +268,6 @@ _ts_decorate([
323
268
  ]),
324
269
  _ts_metadata("design:returntype", Promise)
325
270
  ], PrinterFilesController.prototype, "deleteFileOrFolder", null);
326
- _ts_decorate([
327
- (0, _awilixexpress.DELETE)(),
328
- (0, _awilixexpress.route)("/:id/clear"),
329
- (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Clear)),
330
- _ts_metadata("design:type", Function),
331
- _ts_metadata("design:paramtypes", [
332
- typeof _express.Request === "undefined" ? Object : _express.Request,
333
- typeof _express.Response === "undefined" ? Object : _express.Response
334
- ]),
335
- _ts_metadata("design:returntype", Promise)
336
- ], PrinterFilesController.prototype, "clearPrinterFiles", null);
337
271
  _ts_decorate([
338
272
  (0, _awilixexpress.GET)(),
339
273
  (0, _awilixexpress.route)("/:id/thumbnail"),
@@ -370,7 +304,6 @@ PrinterFilesController = _ts_decorate([
370
304
  _ts_metadata("design:paramtypes", [
371
305
  typeof _loggerfactory.ILoggerFactory === "undefined" ? Object : _loggerfactory.ILoggerFactory,
372
306
  typeof _printerapiinterface.IPrinterApi === "undefined" ? Object : _printerapiinterface.IPrinterApi,
373
- typeof _printerfilesstore.PrinterFilesStore === "undefined" ? Object : _printerfilesstore.PrinterFilesStore,
374
307
  typeof _printjobservice.PrintJobService === "undefined" ? Object : _printjobservice.PrintJobService,
375
308
  typeof _fileanalysisservice.FileAnalysisService === "undefined" ? Object : _fileanalysisservice.FileAnalysisService,
376
309
  typeof _filestorageservice.FileStorageService === "undefined" ? Object : _filestorageservice.FileStorageService,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/printer-files.controller.ts"],"names":["PrinterFilesController","logger","loggerFactory","printerApi","printerFilesStore","printJobService","fileAnalysisService","fileStorageService","multerService","printerThumbnailCache","name","purgeIndexedFiles","req","res","purgeFiles","send","getThumbnails","thumbnails","getAllValues","getFiles","currentPrinterId","getScopedPrinter","log","files","loadFiles","startPrintFile","filePath","validateInput","body","startPrintFileSchema","encodedFilePath","encodeURIComponent","startPrint","getFilesCache","currentPrinter","id","downloadFile","params","path","downloadFileSchema","response","setHeader","headers","length","data","pipe","deleteFileOrFolder","query","getFileSchema","result","deleteFile","clearPrinterFiles","failedFiles","succeededFiles","nonRecursiveFiles","file","push","e","purgePrinterFiles","getPrinterThumbnail","printerThumbnail","getValue","uploadPrinterFile","acceptedExtensions","getAcceptedFileExtensions","printerType","multerLoadFileAsync","startPrintString","uploadFileSchema","ValidationException","error","join","uploadedFile","token","startTrackingSession","uploadFile","stream","createReadStream","fileName","originalname","contentLength","size","uploadToken","catch","clearUploadedFile","errorSummary","ext","extname","tempPathWithExt","existsSync","NotFoundException","copyFileSync","fileHash","calculateFileHash","substring","existingJob","findDuplicateByHash","metadata","fileStorageId","cachedMetadata","loadMetadata","analysisState","saveMetadata","existingFilePath","getFilePath","analysisResult","analyzeFile","fileFormat","totalLayers","gcodePrintTimeSeconds","filamentUsedGrams","saveFile","thumbnailMetadata","saveThumbnails","job","createPendingJob","updateJob","unlinkSync","captureException","BambuType","AppConstants","defaultAcceptedBambuExtensions","defaultAcceptedGcodeExtensions","PrinterFiles","Clear","Get","Actions","Delete","Upload","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","printerResolveMiddleware"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/controllers/printer-files.controller.ts"],"names":["PrinterFilesController","logger","loggerFactory","printerApi","printJobService","fileAnalysisService","fileStorageService","multerService","printerThumbnailCache","name","getThumbnails","req","res","thumbnails","getAllValues","send","getFiles","getScopedPrinter","recursive","recursiveStr","startDir","validateInput","query","getFilesSchema","files","startPrintFile","currentPrinterId","filePath","body","startPrintFileSchema","encodedFilePath","split","map","encodeURIComponent","join","startPrint","log","downloadFile","params","path","downloadFileSchema","response","setHeader","headers","length","data","pipe","deleteFileOrFolder","getFileSchema","result","deleteFile","getPrinterThumbnail","printerThumbnail","getValue","uploadPrinterFile","currentPrinter","acceptedExtensions","getAcceptedFileExtensions","printerType","multerLoadFileAsync","startPrintString","uploadFileSchema","ValidationException","error","uploadedFile","token","startTrackingSession","uploadFile","stream","createReadStream","fileName","originalname","contentLength","size","uploadToken","catch","e","clearUploadedFile","errorSummary","ext","extname","tempPathWithExt","existsSync","NotFoundException","copyFileSync","fileHash","calculateFileHash","substring","existingJob","findDuplicateByHash","metadata","fileStorageId","cachedMetadata","loadMetadata","id","analysisState","saveMetadata","existingFilePath","getFilePath","analysisResult","analyzeFile","fileFormat","totalLayers","gcodePrintTimeSeconds","filamentUsedGrams","saveFile","thumbnailMetadata","saveThumbnails","job","createPendingJob","updateJob","unlinkSync","captureException","BambuType","AppConstants","defaultAcceptedBambuExtensions","defaultAcceptedGcodeExtensions","PrinterFiles","Get","Actions","Delete","Upload","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","printerResolveMiddleware"],"mappings":"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"}
@@ -58,9 +58,7 @@ class SlicerCompatController {
58
58
  return;
59
59
  }
60
60
  const file = files[0];
61
- const print = req.body.print === "true" || req.body.print === true;
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
- if (thumbnails.length > 0) {
74
- const thumbnailMetadata = await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails);
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
  }