@fdm-monster/server 2.0.0-rc1 → 2.0.1

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 (230) hide show
  1. package/.env.template +8 -3
  2. package/.yarn/install-state.gz +0 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/README.md +5 -4
  5. package/RELEASE_NOTES.MD +53 -0
  6. package/SECURITY.md +1 -1
  7. package/dist/consoles/download-github-releases.js +3 -3
  8. package/dist/consoles/launch-http-servers.js +4 -4
  9. package/dist/consoles/launch-http-servers.js.map +1 -1
  10. package/dist/consoles/mock-bambu.server.js +35 -16
  11. package/dist/consoles/mock-bambu.server.js.map +1 -1
  12. package/dist/consoles/mock-camera/default-image.js +13 -0
  13. package/dist/consoles/mock-camera/default-image.js.map +1 -0
  14. package/dist/consoles/mock-camera/mock-camera.server.js +160 -0
  15. package/dist/consoles/mock-camera/mock-camera.server.js.map +1 -0
  16. package/dist/consoles/mock-octoprint.server.js +281 -73
  17. package/dist/consoles/mock-octoprint.server.js.map +1 -1
  18. package/dist/consoles/mock-prusalink.server.js +11 -11
  19. package/dist/consoles/mock-prusalink.server.js.map +1 -1
  20. package/dist/consoles/typeorm-create.js +135 -0
  21. package/dist/consoles/typeorm-create.js.map +1 -0
  22. package/dist/consoles/typeorm-generate.js +8 -8
  23. package/dist/consoles/typeorm-generate.js.map +1 -1
  24. package/dist/constants/authorization.constants.js +13 -26
  25. package/dist/constants/authorization.constants.js.map +1 -1
  26. package/dist/constants/server-settings.constants.js +7 -20
  27. package/dist/constants/server-settings.constants.js.map +1 -1
  28. package/dist/container.js +18 -10
  29. package/dist/container.js.map +1 -1
  30. package/dist/container.tokens.js +9 -5
  31. package/dist/container.tokens.js.map +1 -1
  32. package/dist/controllers/batch-call.controller.js +0 -15
  33. package/dist/controllers/batch-call.controller.js.map +1 -1
  34. package/dist/controllers/file-storage.controller.js +319 -0
  35. package/dist/controllers/file-storage.controller.js.map +1 -0
  36. package/dist/controllers/first-time-setup.controller.js +2 -1
  37. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  38. package/dist/controllers/floor.controller.js +12 -12
  39. package/dist/controllers/floor.controller.js.map +1 -1
  40. package/dist/controllers/print-job.controller.js +666 -0
  41. package/dist/controllers/print-job.controller.js.map +1 -0
  42. package/dist/controllers/print-queue.controller.js +375 -0
  43. package/dist/controllers/print-queue.controller.js.map +1 -0
  44. package/dist/controllers/printer-files.controller.js +86 -59
  45. package/dist/controllers/printer-files.controller.js.map +1 -1
  46. package/dist/controllers/printer-settings.controller.js +0 -21
  47. package/dist/controllers/printer-settings.controller.js.map +1 -1
  48. package/dist/controllers/{printer-group.controller.js → printer-tag.controller.js} +51 -34
  49. package/dist/controllers/printer-tag.controller.js.map +1 -0
  50. package/dist/controllers/printer.controller.js +15 -0
  51. package/dist/controllers/printer.controller.js.map +1 -1
  52. package/dist/controllers/server-private.controller.js +2 -1
  53. package/dist/controllers/server-private.controller.js.map +1 -1
  54. package/dist/controllers/server-public.controller.js +6 -2
  55. package/dist/controllers/server-public.controller.js.map +1 -1
  56. package/dist/controllers/settings.controller.js +44 -44
  57. package/dist/controllers/settings.controller.js.map +1 -1
  58. package/dist/controllers/slicer-compat.controller.js +220 -0
  59. package/dist/controllers/slicer-compat.controller.js.map +1 -0
  60. package/dist/data-source.js +20 -8
  61. package/dist/data-source.js.map +1 -1
  62. package/dist/entities/camera-stream.entity.js +2 -1
  63. package/dist/entities/camera-stream.entity.js.map +1 -1
  64. package/dist/entities/floor.entity.js +3 -5
  65. package/dist/entities/floor.entity.js.map +1 -1
  66. package/dist/entities/index.js +15 -7
  67. package/dist/entities/index.js.map +1 -1
  68. package/dist/entities/print-job.entity.js +195 -0
  69. package/dist/entities/print-job.entity.js.map +1 -0
  70. package/dist/entities/{printer-group.entity.js → printer-tag.entity.js} +17 -17
  71. package/dist/entities/printer-tag.entity.js.map +1 -0
  72. package/dist/entities/printer.entity.js +4 -10
  73. package/dist/entities/printer.entity.js.map +1 -1
  74. package/dist/entities/settings.entity.js +3 -12
  75. package/dist/entities/settings.entity.js.map +1 -1
  76. package/dist/entities/{group.entity.js → tag.entity.js} +15 -8
  77. package/dist/entities/tag.entity.js.map +1 -0
  78. package/dist/index.js +8 -2
  79. package/dist/index.js.map +1 -1
  80. package/dist/middleware/exception.filter.js +114 -90
  81. package/dist/middleware/exception.filter.js.map +1 -1
  82. package/dist/middleware/global.middleware.js +6 -6
  83. package/dist/middleware/global.middleware.js.map +1 -1
  84. package/dist/middleware/slicer-api-key.middleware.js +29 -0
  85. package/dist/middleware/slicer-api-key.middleware.js.map +1 -0
  86. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +186 -0
  87. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -0
  88. package/dist/migrations/1767279607392-DropCustomGcode.js +31 -0
  89. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -0
  90. package/dist/migrations/1767291804417-DropPrintCompletions.js +37 -0
  91. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -0
  92. package/dist/migrations/1767352862576-DropSettingsFileClean.js +88 -0
  93. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -0
  94. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +107 -0
  95. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -0
  96. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +62 -0
  97. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -0
  98. package/dist/migrations/1767432108916-RenameGroupToTag.js +86 -0
  99. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -0
  100. package/dist/migrations/1767451444137-AddPrintJob.js +207 -0
  101. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -0
  102. package/dist/server.constants.js +9 -9
  103. package/dist/server.constants.js.map +1 -1
  104. package/dist/server.host.js +24 -32
  105. package/dist/server.host.js.map +1 -1
  106. package/dist/services/bambu/bambu-ftp.adapter.js +1 -1
  107. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  108. package/dist/services/bambu/bambu-mqtt.adapter.js +73 -76
  109. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  110. package/dist/services/core/batch-call.service.js +0 -25
  111. package/dist/services/core/batch-call.service.js.map +1 -1
  112. package/dist/services/core/multer.service.js +5 -9
  113. package/dist/services/core/multer.service.js.map +1 -1
  114. package/dist/services/core/yaml.service.js +231 -156
  115. package/dist/services/core/yaml.service.js.map +1 -1
  116. package/dist/services/file-analysis.service.js +146 -0
  117. package/dist/services/file-analysis.service.js.map +1 -0
  118. package/dist/services/file-storage.service.js +387 -0
  119. package/dist/services/file-storage.service.js.map +1 -0
  120. package/dist/services/interfaces/floor.dto.js +3 -3
  121. package/dist/services/interfaces/floor.dto.js.map +1 -1
  122. package/dist/services/interfaces/{printer-group.dto.js → printer-tag.dto.js} +9 -8
  123. package/dist/services/interfaces/printer-tag.dto.js.map +1 -0
  124. package/dist/services/interfaces/{print-completion.interface.js → printer-tag.service.interface.js} +1 -1
  125. package/dist/services/interfaces/{printer-group.service.interface.js.map → printer-tag.service.interface.js.map} +1 -1
  126. package/dist/services/interfaces/settings.dto.js +0 -1
  127. package/dist/services/interfaces/settings.dto.js.map +1 -1
  128. package/dist/services/interfaces/{group.dto.js → tag.dto.js} +1 -1
  129. package/dist/services/interfaces/tag.dto.js.map +1 -0
  130. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +1 -0
  131. package/dist/services/octoprint/octoprint-api.routes.js +0 -7
  132. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  133. package/dist/services/octoprint/octoprint.client.js +0 -4
  134. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  135. package/dist/services/orm/floor.service.js +9 -16
  136. package/dist/services/orm/floor.service.js.map +1 -1
  137. package/dist/services/orm/print-job.service.js +539 -0
  138. package/dist/services/orm/print-job.service.js.map +1 -0
  139. package/dist/services/orm/printer-tag.service.js +120 -0
  140. package/dist/services/orm/printer-tag.service.js.map +1 -0
  141. package/dist/services/orm/settings.service.js +5 -6
  142. package/dist/services/orm/settings.service.js.map +1 -1
  143. package/dist/services/print-file-downloader.service.js +169 -0
  144. package/dist/services/print-file-downloader.service.js.map +1 -0
  145. package/dist/services/print-queue.service.js +268 -0
  146. package/dist/services/print-queue.service.js.map +1 -0
  147. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +1 -3
  148. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  149. package/dist/services/validators/floor-service.validation.js +10 -10
  150. package/dist/services/validators/floor-service.validation.js.map +1 -1
  151. package/dist/services/validators/print-job.validation.js +31 -0
  152. package/dist/services/validators/print-job.validation.js.map +1 -0
  153. package/dist/services/validators/settings-service.validation.js +21 -24
  154. package/dist/services/validators/settings-service.validation.js.map +1 -1
  155. package/dist/services/validators/yaml-service.validation.js +9 -13
  156. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  157. package/dist/shared/load-controllers.js +2 -1
  158. package/dist/shared/load-controllers.js.map +1 -1
  159. package/dist/shared/runtime-settings.migration.js +9 -9
  160. package/dist/shared/runtime-settings.migration.js.map +1 -1
  161. package/dist/state/floor.store.js +2 -9
  162. package/dist/state/floor.store.js.map +1 -1
  163. package/dist/state/printer-events.cache.js +179 -19
  164. package/dist/state/printer-events.cache.js.map +1 -1
  165. package/dist/state/printer-thumbnail.cache.js +98 -183
  166. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  167. package/dist/state/settings.store.js +39 -37
  168. package/dist/state/settings.store.js.map +1 -1
  169. package/dist/state/socket-io.gateway.js +1 -1
  170. package/dist/state/socket-io.gateway.js.map +1 -1
  171. package/dist/tasks/boot.task.js +7 -5
  172. package/dist/tasks/boot.task.js.map +1 -1
  173. package/dist/tasks/print-job-analysis.task.js +116 -0
  174. package/dist/tasks/print-job-analysis.task.js.map +1 -0
  175. package/dist/tasks/printer-files-load.task.js +29 -0
  176. package/dist/tasks/printer-files-load.task.js.map +1 -0
  177. package/dist/tasks/socketio.task.js +1 -1
  178. package/dist/tasks/socketio.task.js.map +1 -1
  179. package/dist/tasks.js +3 -2
  180. package/dist/tasks.js.map +1 -1
  181. package/dist/utils/parsers/3mf.parser.js +337 -0
  182. package/dist/utils/parsers/3mf.parser.js.map +1 -0
  183. package/dist/utils/parsers/bgcode.parser.js +223 -0
  184. package/dist/utils/parsers/bgcode.parser.js.map +1 -0
  185. package/dist/utils/parsers/gcode.parser.js +254 -0
  186. package/dist/utils/parsers/gcode.parser.js.map +1 -0
  187. package/dist/utils/swagger/decorators.js +39 -0
  188. package/dist/utils/swagger/decorators.js.map +1 -0
  189. package/dist/utils/swagger/generator.js +196 -0
  190. package/dist/utils/swagger/generator.js.map +1 -0
  191. package/dist/utils/swagger/swagger.js +93 -0
  192. package/dist/utils/swagger/swagger.js.map +1 -0
  193. package/package.json +21 -17
  194. package/dist/controllers/custom-gcode.controller.js +0 -147
  195. package/dist/controllers/custom-gcode.controller.js.map +0 -1
  196. package/dist/controllers/print-completion.controller.js +0 -118
  197. package/dist/controllers/print-completion.controller.js.map +0 -1
  198. package/dist/controllers/printer-group.controller.js.map +0 -1
  199. package/dist/entities/custom-gcode.entity.js +0 -49
  200. package/dist/entities/custom-gcode.entity.js.map +0 -1
  201. package/dist/entities/group.entity.js.map +0 -1
  202. package/dist/entities/print-completion.entity.js +0 -90
  203. package/dist/entities/print-completion.entity.js.map +0 -1
  204. package/dist/entities/printer-group.entity.js.map +0 -1
  205. package/dist/services/interfaces/custom-gcode.dto.js +0 -18
  206. package/dist/services/interfaces/custom-gcode.dto.js.map +0 -1
  207. package/dist/services/interfaces/custom-gcode.service.interface.js +0 -6
  208. package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -1
  209. package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -1
  210. package/dist/services/interfaces/group.dto.js.map +0 -1
  211. package/dist/services/interfaces/print-completion-context.dto.js +0 -6
  212. package/dist/services/interfaces/print-completion-context.dto.js.map +0 -1
  213. package/dist/services/interfaces/print-completion.dto.js +0 -38
  214. package/dist/services/interfaces/print-completion.dto.js.map +0 -1
  215. package/dist/services/interfaces/print-completion.interface.js.map +0 -1
  216. package/dist/services/interfaces/printer-group.dto.js.map +0 -1
  217. package/dist/services/interfaces/printer-group.service.interface.js +0 -6
  218. package/dist/services/orm/custom-gcode.service.js +0 -42
  219. package/dist/services/orm/custom-gcode.service.js.map +0 -1
  220. package/dist/services/orm/print-completion.service.js +0 -87
  221. package/dist/services/orm/print-completion.service.js.map +0 -1
  222. package/dist/services/orm/print-completion.shared.js +0 -59
  223. package/dist/services/orm/print-completion.shared.js.map +0 -1
  224. package/dist/services/orm/printer-group.service.js +0 -109
  225. package/dist/services/orm/printer-group.service.js.map +0 -1
  226. package/dist/tasks/print-completion.socketio.task.js +0 -91
  227. package/dist/tasks/print-completion.socketio.task.js.map +0 -1
  228. package/dist/tasks/printer-file-clean.task.js +0 -74
  229. package/dist/tasks/printer-file-clean.task.js.map +0 -1
  230. /package/dist/services/{interfaces → octoprint/dto/files}/gcode-analysis.dto.js +0 -0
@@ -15,6 +15,7 @@ const DITokens = {
15
15
  appDefaultRoleNoLogin: "appDefaultRoleNoLogin",
16
16
  typeormService: "typeormService",
17
17
  serverHost: "serverHost",
18
+ exceptionFilter: "exceptionFilter",
18
19
  loggerFactory: "loggerFactory",
19
20
  httpClientFactory: "httpClientFactory",
20
21
  socketIoGateway: "socketIoGateway",
@@ -24,9 +25,13 @@ const DITokens = {
24
25
  toadScheduler: "toadScheduler",
25
26
  eventEmitter2: "eventEmitter2",
26
27
  printerService: "printerService",
27
- printerGroupService: "printerGroupService",
28
+ printerTagService: "printerTagService",
28
29
  floorPositionService: "floorPositionService",
29
- printCompletionService: "printCompletionService",
30
+ printJobService: "printJobService",
31
+ printQueueService: "printQueueService",
32
+ fileStorageService: "fileStorageService",
33
+ fileAnalysisService: "fileAnalysisService",
34
+ printFileDownloaderService: "printFileDownloaderService",
30
35
  floorService: "floorService",
31
36
  yamlService: "yamlService",
32
37
  settingsService: "settingsService",
@@ -60,7 +65,6 @@ const DITokens = {
60
65
  batchCallService: "batchCallService",
61
66
  influxDbV2BaseService: "influxDbV2BaseService",
62
67
  systemInfoBundleService: "systemInfoBundleService",
63
- customGCodeService: "customGCodeService",
64
68
  floorStore: "floorStore",
65
69
  settingsStore: "settingsStore",
66
70
  printerSocketStore: "printerSocketStore",
@@ -78,10 +82,10 @@ const DITokens = {
78
82
  softwareUpdateTask: "softwareUpdateTask",
79
83
  clientDistDownloadTask: "clientDistDownloadTask",
80
84
  socketIoTask: "socketIoTask",
81
- printCompletionSocketIoTask: "printCompletionSocketIoTask",
82
85
  printerWebsocketTask: "printerWebsocketTask",
83
86
  printerWebsocketRestoreTask: "printerWebsocketRestoreTask",
84
- printerFileCleanTask: "printerFileCleanTask"
87
+ printerFilesLoadTask: "printerFilesLoadTask",
88
+ printJobAnalysisTask: "printJobAnalysisTask"
85
89
  };
86
90
 
87
91
  //# sourceMappingURL=container.tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/container.tokens.ts"],"names":["DITokens","cradleService","serverVersion","appDefaultRole","appDefaultRoleNoLogin","typeormService","serverHost","loggerFactory","httpClientFactory","socketIoGateway","multerService","configService","taskManagerService","toadScheduler","eventEmitter2","printerService","printerGroupService","floorPositionService","printCompletionService","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","customGCodeService","floorStore","settingsStore","printerSocketStore","testPrinterSocketStore","printerFilesStore","prusaLinkPollingAdapter","octoPrintSockIoAdapter","moonrakerWebsocketAdapter","printerCache","printerEventsCache","printerThumbnailCache","fileCache","fileUploadTrackerCache","bootTask","softwareUpdateTask","clientDistDownloadTask","socketIoTask","printCompletionSocketIoTask","printerWebsocketTask","printerWebsocketRestoreTask","printerFileCleanTask"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,WAAW;IACtBC,eAAe;IAEfC,eAAe;IACfC,gBAAgB;IAChBC,uBAAuB;IACvBC,gBAAgB;IAEhBC,YAAY;IACZC,eAAe;IACfC,mBAAmB;IACnBC,iBAAiB;IACjBC,eAAe;IACfC,eAAe;IACfC,oBAAoB;IACpBC,eAAe;IACfC,eAAe;IACfC,gBAAgB;IAChBC,qBAAqB;IACrBC,sBAAsB;IACtBC,wBAAwB;IACxBC,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;IACzBC,oBAAoB;IAEpBC,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,6BAA6B;IAC7BC,sBAAsB;IACtBC,6BAA6B;IAC7BC,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","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,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"}
@@ -30,11 +30,6 @@ class BatchCallController {
30
30
  constructor(batchCallService){
31
31
  this.batchCallService = batchCallService;
32
32
  }
33
- async batchSettingsGet(req, res) {
34
- const { printerIds } = await (0, _validators.validateInput)(req.body, _batchcontrollervalidation.batchPrinterSchema);
35
- const results = await this.batchCallService.batchSettingsGet(printerIds);
36
- res.send(results);
37
- }
38
33
  async batchConnectUsb(req, res) {
39
34
  const { printerIds } = await (0, _validators.validateInput)(req.body, _batchcontrollervalidation.batchPrinterSchema);
40
35
  const results = await this.batchCallService.batchConnectUsb(printerIds);
@@ -61,16 +56,6 @@ class BatchCallController {
61
56
  res.send(results);
62
57
  }
63
58
  }
64
- _ts_decorate([
65
- (0, _awilixexpress.POST)(),
66
- (0, _awilixexpress.route)("/settings/get"),
67
- _ts_metadata("design:type", Function),
68
- _ts_metadata("design:paramtypes", [
69
- typeof _express.Request === "undefined" ? Object : _express.Request,
70
- typeof _express.Response === "undefined" ? Object : _express.Response
71
- ]),
72
- _ts_metadata("design:returntype", Promise)
73
- ], BatchCallController.prototype, "batchSettingsGet", null);
74
59
  _ts_decorate([
75
60
  (0, _awilixexpress.POST)(),
76
61
  (0, _awilixexpress.route)("/connect/usb"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/batch-call.controller.ts"],"names":["BatchCallController","batchCallService","batchSettingsGet","req","res","printerIds","validateInput","body","batchPrinterSchema","results","send","batchConnectUsb","batchConnectSocket","getLastPrintedFiles","files","getBatchPrinterReprintFile","batchReprintFiles","prints","executeBatchRePrinterSchema","batchReprintCalls","batchTogglePrintersEnabled","enabled","batchPrintersEnabledSchema","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR"],"mappings":";;;;+BAeaA;;;eAAAA;;;+BAfuB;4BACN;2CAKvB;iCACsB;8BACgB;wCACvB;kCACW;yBACC;;;;;;;;;;AAI3B,MAAMA;;IACX,YAAY,AAAiBC,gBAAkC,CAAE;aAApCA,mBAAAA;IAAqC;IAElE,MAEMC,iBAAiBC,GAAY,EAAEC,GAAa,EAAE;QAClD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,MAAMC,UAAU,MAAM,IAAI,CAACR,gBAAgB,CAACC,gBAAgB,CAACG;QAC7DD,IAAIM,IAAI,CAACD;IACX;IAEA,MAEME,gBAAgBR,GAAY,EAAEC,GAAa,EAAE;QACjD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,MAAMC,UAAU,MAAM,IAAI,CAACR,gBAAgB,CAACU,eAAe,CAACN;QAC5DD,IAAIM,IAAI,CAACD;IACX;IAEA,MAEMG,mBAAmBT,GAAY,EAAEC,GAAa,EAAE;QACpD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,IAAI,CAACP,gBAAgB,CAACW,kBAAkB,CAACP;QACzCD,IAAIM,IAAI,CAAC,CAAC;IACZ;IAEA,MAEMG,oBAAoBV,GAAY,EAAEC,GAAa,EAAE;QACrD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,MAAMM,QAAQ,MAAM,IAAI,CAACb,gBAAgB,CAACc,0BAA0B,CAACV;QACrED,IAAIM,IAAI,CAACI;IACX;IAEA,MAEME,kBAAkBb,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,EAAEa,MAAM,EAAE,GAAG,MAAMX,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEW,sDAA2B;QAC5E,MAAMJ,QAAQ,MAAM,IAAI,CAACb,gBAAgB,CAACkB,iBAAiB,CAACF;QAC5Db,IAAIM,IAAI,CAACI;IACX;IAEA,MAEMM,2BAA2BjB,GAAY,EAAEC,GAAa,EAAE;QAC5D,MAAM,EAAEC,UAAU,EAAEgB,OAAO,EAAE,GAAG,MAAMf,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEe,qDAA0B;QACxF,MAAMb,UAAU,MAAM,IAAI,CAACR,gBAAgB,CAACmB,0BAA0B,CAACf,YAAYgB;QACnFjB,IAAIM,IAAI,CAACD;IACX;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BApDOc,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/batch-call.controller.ts"],"names":["BatchCallController","batchCallService","batchConnectUsb","req","res","printerIds","validateInput","body","batchPrinterSchema","results","send","batchConnectSocket","getLastPrintedFiles","files","getBatchPrinterReprintFile","batchReprintFiles","prints","executeBatchRePrinterSchema","batchReprintCalls","batchTogglePrintersEnabled","enabled","batchPrintersEnabledSchema","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR"],"mappings":";;;;+BAeaA;;;eAAAA;;;+BAfuB;4BACN;2CAKvB;iCACsB;8BACgB;wCACvB;kCACW;yBACC;;;;;;;;;;AAI3B,MAAMA;;IACX,YAAY,AAAiBC,gBAAkC,CAAE;aAApCA,mBAAAA;IAC7B;IAEA,MAEMC,gBAAgBC,GAAY,EAAEC,GAAa,EAAE;QACjD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,MAAMC,UAAU,MAAM,IAAI,CAACR,gBAAgB,CAACC,eAAe,CAACG;QAC5DD,IAAIM,IAAI,CAACD;IACX;IAEA,MAEME,mBAAmBR,GAAY,EAAEC,GAAa,EAAE;QACpD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,IAAI,CAACP,gBAAgB,CAACU,kBAAkB,CAACN;QACzCD,IAAIM,IAAI,CAAC,CAAC;IACZ;IAEA,MAEME,oBAAoBT,GAAY,EAAEC,GAAa,EAAE;QACrD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,6CAAkB;QACvE,MAAMK,QAAQ,MAAM,IAAI,CAACZ,gBAAgB,CAACa,0BAA0B,CAACT;QACrED,IAAIM,IAAI,CAACG;IACX;IAEA,MAEME,kBAAkBZ,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,EAAEY,MAAM,EAAE,GAAG,MAAMV,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEU,sDAA2B;QAC5E,MAAMJ,QAAQ,MAAM,IAAI,CAACZ,gBAAgB,CAACiB,iBAAiB,CAACF;QAC5DZ,IAAIM,IAAI,CAACG;IACX;IAEA,MAEMM,2BAA2BhB,GAAY,EAAEC,GAAa,EAAE;QAC5D,MAAM,EAAEC,UAAU,EAAEe,OAAO,EAAE,GAAG,MAAMd,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEc,qDAA0B;QACxF,MAAMZ,UAAU,MAAM,IAAI,CAACR,gBAAgB,CAACkB,0BAA0B,CAACd,YAAYe;QACnFhB,IAAIM,IAAI,CAACD;IACX;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA7COa,6BAAY,CAACC,QAAQ,GAAG;;QACtBC,IAAAA,0BAAY;QAAIC,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;YAAED,6BAAK,CAACE,QAAQ;SAAC"}
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FileStorageController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FileStorageController;
9
+ }
10
+ });
11
+ const _awilixexpress = require("awilix-express");
12
+ const _serverconstants = require("../server.constants");
13
+ const _express = require("express");
14
+ const _authenticate = require("../middleware/authenticate");
15
+ const _authorizationconstants = require("../constants/authorization.constants");
16
+ const _filestorageservice = require("../services/file-storage.service");
17
+ const _multerservice = require("../services/core/multer.service");
18
+ const _loggerfactory = require("../handlers/logger-factory");
19
+ const _fileanalysisservice = require("../services/file-analysis.service");
20
+ const _nodefs = require("node:fs");
21
+ const _nodepath = require("node:path");
22
+ function _ts_decorate(decorators, target, key, desc) {
23
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
24
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
27
+ }
28
+ function _ts_metadata(k, v) {
29
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
30
+ }
31
+ class FileStorageController {
32
+ fileStorageService;
33
+ multerService;
34
+ fileAnalysisService;
35
+ logger;
36
+ constructor(loggerFactory, fileStorageService, multerService, fileAnalysisService){
37
+ this.fileStorageService = fileStorageService;
38
+ this.multerService = multerService;
39
+ this.fileAnalysisService = fileAnalysisService;
40
+ this.logger = loggerFactory(FileStorageController.name);
41
+ }
42
+ async listFiles(req, res) {
43
+ try {
44
+ const files = await this.fileStorageService.listAllFiles();
45
+ res.send({
46
+ files: files.map((file)=>({
47
+ fileStorageId: file.fileStorageId,
48
+ fileName: file.fileName,
49
+ fileFormat: file.fileFormat,
50
+ fileSize: file.fileSize,
51
+ fileHash: file.fileHash,
52
+ createdAt: file.createdAt,
53
+ thumbnailCount: file.thumbnailCount,
54
+ thumbnailsUrl: file.thumbnailCount > 0 ? `/api/file-storage/${file.fileStorageId}/thumbnail/0` : null,
55
+ metadata: file.metadata
56
+ })),
57
+ totalCount: files.length
58
+ });
59
+ } catch (error) {
60
+ this.logger.error(`Failed to list files: ${error}`);
61
+ res.status(500).send({
62
+ error: "Failed to list files"
63
+ });
64
+ }
65
+ }
66
+ async getFileMetadata(req, res) {
67
+ const { fileStorageId } = req.params;
68
+ try {
69
+ const file = await this.fileStorageService.getFileInfo(fileStorageId);
70
+ if (!file) {
71
+ res.status(404).send({
72
+ error: "File not found"
73
+ });
74
+ return;
75
+ }
76
+ res.send({
77
+ fileStorageId: file.fileStorageId,
78
+ fileName: file.fileName,
79
+ fileFormat: file.fileFormat,
80
+ fileSize: file.fileSize,
81
+ fileHash: file.fileHash,
82
+ createdAt: file.createdAt,
83
+ thumbnailCount: file.thumbnailCount,
84
+ thumbnailsUrl: file.thumbnailCount > 0 ? `/api/file-storage/${file.fileStorageId}/thumbnail/0` : null,
85
+ metadata: file.metadata
86
+ });
87
+ } catch (error) {
88
+ this.logger.error(`Failed to get file metadata for ${fileStorageId}: ${error}`);
89
+ res.status(500).send({
90
+ error: "Failed to get file metadata"
91
+ });
92
+ }
93
+ }
94
+ async deleteFile(req, res) {
95
+ const { fileStorageId } = req.params;
96
+ try {
97
+ await this.fileStorageService.deleteFile(fileStorageId);
98
+ this.logger.log(`Deleted file ${fileStorageId}`);
99
+ res.send({
100
+ message: "File deleted successfully",
101
+ fileStorageId
102
+ });
103
+ } catch (error) {
104
+ this.logger.error(`Failed to delete file ${fileStorageId}: ${error}`);
105
+ res.status(500).send({
106
+ error: "Failed to delete file"
107
+ });
108
+ }
109
+ }
110
+ async analyzeFile(req, res) {
111
+ const { fileStorageId } = req.params;
112
+ try {
113
+ const filePath = this.fileStorageService.getFilePath(fileStorageId);
114
+ const fileExists = await this.fileStorageService.fileExists(fileStorageId);
115
+ if (!fileExists) {
116
+ res.status(404).send({
117
+ error: "File not found"
118
+ });
119
+ return;
120
+ }
121
+ this.logger.log(`Analyzing file: ${fileStorageId}`);
122
+ const existingMetadata = await this.fileStorageService.loadMetadata(fileStorageId);
123
+ const analysisResult = await this.fileAnalysisService.analyzeFile(filePath);
124
+ const metadata = analysisResult.metadata;
125
+ const thumbnails = analysisResult.thumbnails;
126
+ this.logger.log(`Analysis complete for ${fileStorageId}: format=${metadata.fileFormat}, layers=${metadata.totalLayers}, time=${metadata.gcodePrintTimeSeconds}s, thumbnails=${thumbnails.length}`);
127
+ const fileHash = await this.fileStorageService.calculateFileHash(filePath);
128
+ const originalFileName = existingMetadata?._originalFileName || fileStorageId;
129
+ metadata.fileName = originalFileName;
130
+ let thumbnailMetadata = [];
131
+ if (thumbnails.length > 0) {
132
+ thumbnailMetadata = await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails);
133
+ this.logger.log(`Saved ${thumbnailMetadata.length} thumbnails for ${fileStorageId}`);
134
+ }
135
+ await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, originalFileName, thumbnailMetadata);
136
+ res.send({
137
+ message: "File analyzed successfully",
138
+ fileStorageId,
139
+ metadata,
140
+ thumbnailCount: thumbnails.length
141
+ });
142
+ } catch (error) {
143
+ this.logger.error(`Failed to analyze file ${fileStorageId}: ${error}`);
144
+ res.status(500).send({
145
+ error: `Failed to analyze file: ${error}`
146
+ });
147
+ }
148
+ }
149
+ async getThumbnail(req, res) {
150
+ const { fileStorageId, index } = req.params;
151
+ const thumbnailIndex = Number.parseInt(index);
152
+ if (Number.isNaN(thumbnailIndex)) {
153
+ res.status(400).send({
154
+ error: "Invalid thumbnail index"
155
+ });
156
+ return;
157
+ }
158
+ try {
159
+ const thumbnail = await this.fileStorageService.getThumbnail(fileStorageId, thumbnailIndex);
160
+ if (!thumbnail) {
161
+ res.status(404).send({
162
+ error: "Thumbnail not found"
163
+ });
164
+ return;
165
+ }
166
+ const isJPG = thumbnail[0] === 0xFF && thumbnail[1] === 0xD8;
167
+ let contentType = 'image/png';
168
+ if (isJPG) contentType = 'image/jpeg';
169
+ res.setHeader('Content-Type', contentType);
170
+ res.setHeader('Cache-Control', 'public, max-age=3600');
171
+ res.setHeader('ETag', `"${fileStorageId}-${thumbnailIndex}"`);
172
+ res.send(thumbnail);
173
+ } catch (error) {
174
+ this.logger.error(`Failed to get thumbnail ${thumbnailIndex} for ${fileStorageId}: ${error}`);
175
+ res.status(500).send({
176
+ error: "Failed to get thumbnail"
177
+ });
178
+ }
179
+ }
180
+ async uploadFile(req, res) {
181
+ try {
182
+ const acceptedExtensions = [
183
+ '.gcode',
184
+ '.3mf',
185
+ '.bgcode'
186
+ ];
187
+ const files = await this.multerService.multerLoadFileAsync(req, res, acceptedExtensions, true);
188
+ if (!files?.length) {
189
+ res.status(400).send({
190
+ error: "No file uploaded"
191
+ });
192
+ return;
193
+ }
194
+ if (files.length > 1) {
195
+ res.status(400).send({
196
+ error: "Only 1 file can be uploaded at a time"
197
+ });
198
+ return;
199
+ }
200
+ const file = files[0];
201
+ const ext = (0, _nodepath.extname)(file.originalname);
202
+ const tempPathWithExt = file.path + ext;
203
+ try {
204
+ (0, _nodefs.copyFileSync)(file.path, tempPathWithExt);
205
+ const fileHash = await this.fileStorageService.calculateFileHash(tempPathWithExt);
206
+ this.logger.log(`Analyzing file: ${file.originalname} (ext: ${ext})`);
207
+ const analysisResult = await this.fileAnalysisService.analyzeFile(tempPathWithExt);
208
+ const metadata = analysisResult.metadata;
209
+ const thumbnails = analysisResult.thumbnails;
210
+ this.logger.log(`Analysis complete: format=${metadata.fileFormat}, layers=${metadata.totalLayers}, ` + `time=${metadata.gcodePrintTimeSeconds}s, filament=${metadata.filamentUsedGrams}g, ` + `thumbnails=${thumbnails.length}`);
211
+ const fileStorageId = await this.fileStorageService.saveFile(file, fileHash);
212
+ this.logger.log(`Uploaded file ${file.originalname} as ${fileStorageId}`);
213
+ let thumbnailMetadata = [];
214
+ if (thumbnails.length > 0) {
215
+ thumbnailMetadata = await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails);
216
+ this.logger.log(`Saved ${thumbnailMetadata.length} thumbnail(s) for ${fileStorageId}`);
217
+ }
218
+ await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, file.originalname, thumbnailMetadata);
219
+ this.logger.log(`Saved metadata JSON for ${fileStorageId}`);
220
+ res.send({
221
+ message: "File uploaded successfully",
222
+ fileStorageId,
223
+ fileName: file.originalname,
224
+ fileSize: file.size,
225
+ fileHash,
226
+ metadata,
227
+ thumbnailCount: thumbnails.length
228
+ });
229
+ } finally{
230
+ if ((0, _nodefs.existsSync)(tempPathWithExt)) {
231
+ (0, _nodefs.unlinkSync)(tempPathWithExt);
232
+ }
233
+ }
234
+ } catch (error) {
235
+ this.logger.error(`Failed to upload file: ${error}`);
236
+ res.status(500).send({
237
+ error: "Failed to upload file"
238
+ });
239
+ }
240
+ }
241
+ }
242
+ _ts_decorate([
243
+ (0, _awilixexpress.GET)(),
244
+ _ts_metadata("design:type", Function),
245
+ _ts_metadata("design:paramtypes", [
246
+ typeof _express.Request === "undefined" ? Object : _express.Request,
247
+ typeof _express.Response === "undefined" ? Object : _express.Response
248
+ ]),
249
+ _ts_metadata("design:returntype", Promise)
250
+ ], FileStorageController.prototype, "listFiles", null);
251
+ _ts_decorate([
252
+ (0, _awilixexpress.GET)(),
253
+ (0, _awilixexpress.route)("/:fileStorageId"),
254
+ _ts_metadata("design:type", Function),
255
+ _ts_metadata("design:paramtypes", [
256
+ typeof _express.Request === "undefined" ? Object : _express.Request,
257
+ typeof _express.Response === "undefined" ? Object : _express.Response
258
+ ]),
259
+ _ts_metadata("design:returntype", Promise)
260
+ ], FileStorageController.prototype, "getFileMetadata", null);
261
+ _ts_decorate([
262
+ (0, _awilixexpress.DELETE)(),
263
+ (0, _awilixexpress.route)("/:fileStorageId"),
264
+ _ts_metadata("design:type", Function),
265
+ _ts_metadata("design:paramtypes", [
266
+ typeof _express.Request === "undefined" ? Object : _express.Request,
267
+ typeof _express.Response === "undefined" ? Object : _express.Response
268
+ ]),
269
+ _ts_metadata("design:returntype", Promise)
270
+ ], FileStorageController.prototype, "deleteFile", null);
271
+ _ts_decorate([
272
+ (0, _awilixexpress.POST)(),
273
+ (0, _awilixexpress.route)("/:fileStorageId/analyze"),
274
+ _ts_metadata("design:type", Function),
275
+ _ts_metadata("design:paramtypes", [
276
+ typeof _express.Request === "undefined" ? Object : _express.Request,
277
+ typeof _express.Response === "undefined" ? Object : _express.Response
278
+ ]),
279
+ _ts_metadata("design:returntype", Promise)
280
+ ], FileStorageController.prototype, "analyzeFile", null);
281
+ _ts_decorate([
282
+ (0, _awilixexpress.GET)(),
283
+ (0, _awilixexpress.route)("/:fileStorageId/thumbnail/:index"),
284
+ _ts_metadata("design:type", Function),
285
+ _ts_metadata("design:paramtypes", [
286
+ typeof _express.Request === "undefined" ? Object : _express.Request,
287
+ typeof _express.Response === "undefined" ? Object : _express.Response
288
+ ]),
289
+ _ts_metadata("design:returntype", Promise)
290
+ ], FileStorageController.prototype, "getThumbnail", null);
291
+ _ts_decorate([
292
+ (0, _awilixexpress.POST)(),
293
+ (0, _awilixexpress.route)("/upload"),
294
+ _ts_metadata("design:type", Function),
295
+ _ts_metadata("design:paramtypes", [
296
+ typeof _express.Request === "undefined" ? Object : _express.Request,
297
+ typeof _express.Response === "undefined" ? Object : _express.Response
298
+ ]),
299
+ _ts_metadata("design:returntype", Promise)
300
+ ], FileStorageController.prototype, "uploadFile", null);
301
+ FileStorageController = _ts_decorate([
302
+ (0, _awilixexpress.route)(_serverconstants.AppConstants.apiRoute + "/file-storage"),
303
+ (0, _awilixexpress.before)([
304
+ (0, _authenticate.authenticate)(),
305
+ (0, _authenticate.authorizeRoles)([
306
+ _authorizationconstants.ROLES.ADMIN,
307
+ _authorizationconstants.ROLES.OPERATOR
308
+ ])
309
+ ]),
310
+ _ts_metadata("design:type", Function),
311
+ _ts_metadata("design:paramtypes", [
312
+ typeof _loggerfactory.ILoggerFactory === "undefined" ? Object : _loggerfactory.ILoggerFactory,
313
+ typeof _filestorageservice.FileStorageService === "undefined" ? Object : _filestorageservice.FileStorageService,
314
+ typeof _multerservice.MulterService === "undefined" ? Object : _multerservice.MulterService,
315
+ typeof _fileanalysisservice.FileAnalysisService === "undefined" ? Object : _fileanalysisservice.FileAnalysisService
316
+ ])
317
+ ], FileStorageController);
318
+
319
+ //# sourceMappingURL=file-storage.controller.js.map
@@ -0,0 +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","fileStorageId","fileName","fileFormat","fileSize","fileHash","createdAt","thumbnailCount","thumbnailsUrl","metadata","totalCount","length","error","status","getFileMetadata","params","getFileInfo","deleteFile","log","message","analyzeFile","filePath","getFilePath","fileExists","existingMetadata","loadMetadata","analysisResult","thumbnails","totalLayers","gcodePrintTimeSeconds","calculateFileHash","originalFileName","_originalFileName","thumbnailMetadata","saveThumbnails","saveMetadata","getThumbnail","index","thumbnailIndex","Number","parseInt","isNaN","thumbnail","isJPG","contentType","setHeader","uploadFile","acceptedExtensions","multerLoadFileAsync","ext","extname","originalname","tempPathWithExt","path","copyFileSync","filamentUsedGrams","saveFile","size","existsSync","unlinkSync","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR"],"mappings":"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"}
@@ -85,7 +85,8 @@ class FirstTimeSetupController {
85
85
  throw new _runtimeexceptions.ForbiddenError("Wizard already completed. Cannot import during first-time setup once wizard is complete.");
86
86
  }
87
87
  const files = await this.multerService.multerLoadFileAsync(req, res, [
88
- ".yaml"
88
+ ".yaml",
89
+ ".yml"
89
90
  ], false);
90
91
  const firstFile = files[0];
91
92
  await this.yamlService.importYaml(firstFile.buffer.toString());
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/first-time-setup.controller.ts"],"names":["FirstTimeSetupController","settingsStore","roleService","userService","yamlService","multerService","validateWizard","req","res","rootUsername","validateMiddleware","wizardSettingsSchema","getSynchronizedRoleByName","ROLES","ADMIN","isWizardCompleted","ForbiddenError","user","findRawByUsername","toLowerCase","BadRequestException","send","completeWizard","loginRequired","registration","rootPassword","register","username","password","roles","isRootUser","isVerified","isDemoUser","needsPasswordChange","setLoginRequired","setRegistrationEnabled","setWizardCompleted","AppConstants","currentWizardVersion","importYamlFile","files","multerLoadFileAsync","firstFile","importYaml","buffer","toString","success","apiRoute"],"mappings":";;;;+BAcaA;;;eAAAA;;;+BAde;iCACC;4BACM;mCACE;mCACe;wCAC9B;+BACQ;yBACI;sCACL;sCACA;6BACD;+BACE;;;;;;;;;;AAGvB,MAAMA;;;;;;IACX,YACE,AAAiBC,aAA4B,EAC7C,AAAiBC,WAAyB,EAC1C,AAAiBC,WAAyB,EAC1C,AAAiBC,WAAwB,EACzC,AAAiBC,aAA4B,CAC7C;aALiBJ,gBAAAA;aACAC,cAAAA;aACAC,cAAAA;aACAC,cAAAA;aACAC,gBAAAA;IAChB;IAEH,MAEMC,eAAeC,GAAY,EAAEC,GAAa,EAAE;QAChD,MAAM,EAAEC,YAAY,EAAE,GAAG,MAAMC,IAAAA,8BAAkB,EAACH,KAAKI,uCAAoB;QAC3E,MAAM,IAAI,CAACT,WAAW,CAACU,yBAAyB,CAACC,6BAAK,CAACC,KAAK;QAE5D,IAAI,IAAI,CAACb,aAAa,CAACc,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,iCAAc,CAAC;QAC3B;QAEA,MAAMC,OAAO,MAAM,IAAI,CAACd,WAAW,CAACe,iBAAiB,CAACT,cAAcU;QACpE,IAAIF,MAAM;YACR,MAAM,IAAIG,sCAAmB,CAAC;QAChC;QAEA,OAAOZ,IAAIa,IAAI;IACjB;IAEA,MAEMC,eAAef,GAAY,EAAEC,GAAa,EAAE;QAChD,MAAM,EAAEe,aAAa,EAAEC,YAAY,EAAEf,YAAY,EAAEgB,YAAY,EAAE,GAAG,MAAMf,IAAAA,8BAAkB,EAC1FH,KACAI,uCAAoB;QAGtB,IAAI,IAAI,CAACV,aAAa,CAACc,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,iCAAc,CAAC;QAC3B;QAEA,MAAM,IAAI,CAACd,WAAW,CAACU,yBAAyB,CAACC,6BAAK,CAACC,KAAK;QAC5D,MAAMG,OAAO,MAAM,IAAI,CAACd,WAAW,CAACe,iBAAiB,CAACT,cAAcU;QACpE,IAAIF,MAAM;YACR,MAAM,IAAIG,sCAAmB,CAAC;QAChC;QAEA,MAAM,IAAI,CAACjB,WAAW,CAACuB,QAAQ,CAAC;YAC9BC,UAAUlB;YACVmB,UAAUH;YACVI,OAAO;gBAAChB,6BAAK,CAACC,KAAK;aAAC;YACpBgB,YAAY;YACZC,YAAY;YACZC,YAAY;YACZC,qBAAqB;QACvB;QACA,MAAM,IAAI,CAAChC,aAAa,CAACiC,gBAAgB,CAACX;QAC1C,MAAM,IAAI,CAACtB,aAAa,CAACkC,sBAAsB,CAACX;QAChD,MAAM,IAAI,CAACvB,aAAa,CAACmC,kBAAkB,CAACC,6BAAY,CAACC,oBAAoB;QAE7E,OAAO9B,IAAIa,IAAI;IACjB;IAEA,MAEMkB,eAAehC,GAAY,EAAEC,GAAa,EAAE;QAChD,IAAI,IAAI,CAACP,aAAa,CAACc,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,iCAAc,CACtB;QAEJ;QAEA,MAAMwB,QAAQ,MAAM,IAAI,CAACnC,aAAa,CAACoC,mBAAmB,CAAClC,KAAKC,KAAK;YAAC;SAAQ,EAAE;QAChF,MAAMkC,YAAYF,KAAK,CAAC,EAAE;QAE1B,MAAM,IAAI,CAACpC,WAAW,CAACuC,UAAU,CAACD,UAAUE,MAAM,CAACC,QAAQ;QAE3D,OAAOrC,IAAIa,IAAI,CAAC;YACdyB,SAAS;QACX;IACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAhFOT,6BAAY,CAACU,QAAQ,GAAG"}
1
+ {"version":3,"sources":["../../src/controllers/first-time-setup.controller.ts"],"names":["FirstTimeSetupController","settingsStore","roleService","userService","yamlService","multerService","validateWizard","req","res","rootUsername","validateMiddleware","wizardSettingsSchema","getSynchronizedRoleByName","ROLES","ADMIN","isWizardCompleted","ForbiddenError","user","findRawByUsername","toLowerCase","BadRequestException","send","completeWizard","loginRequired","registration","rootPassword","register","username","password","roles","isRootUser","isVerified","isDemoUser","needsPasswordChange","setLoginRequired","setRegistrationEnabled","setWizardCompleted","AppConstants","currentWizardVersion","importYamlFile","files","multerLoadFileAsync","firstFile","importYaml","buffer","toString","success","apiRoute"],"mappings":";;;;+BAcaA;;;eAAAA;;;+BAde;iCACC;4BACM;mCACE;mCACe;wCAC9B;+BACQ;yBACI;sCACL;sCACA;6BACD;+BACE;;;;;;;;;;AAGvB,MAAMA;;;;;;IACX,YACE,AAAiBC,aAA4B,EAC7C,AAAiBC,WAAyB,EAC1C,AAAiBC,WAAyB,EAC1C,AAAiBC,WAAwB,EACzC,AAAiBC,aAA4B,CAC7C;aALiBJ,gBAAAA;aACAC,cAAAA;aACAC,cAAAA;aACAC,cAAAA;aACAC,gBAAAA;IAChB;IAEH,MAEMC,eAAeC,GAAY,EAAEC,GAAa,EAAE;QAChD,MAAM,EAAEC,YAAY,EAAE,GAAG,MAAMC,IAAAA,8BAAkB,EAACH,KAAKI,uCAAoB;QAC3E,MAAM,IAAI,CAACT,WAAW,CAACU,yBAAyB,CAACC,6BAAK,CAACC,KAAK;QAE5D,IAAI,IAAI,CAACb,aAAa,CAACc,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,iCAAc,CAAC;QAC3B;QAEA,MAAMC,OAAO,MAAM,IAAI,CAACd,WAAW,CAACe,iBAAiB,CAACT,cAAcU;QACpE,IAAIF,MAAM;YACR,MAAM,IAAIG,sCAAmB,CAAC;QAChC;QAEA,OAAOZ,IAAIa,IAAI;IACjB;IAEA,MAEMC,eAAef,GAAY,EAAEC,GAAa,EAAE;QAChD,MAAM,EAAEe,aAAa,EAAEC,YAAY,EAAEf,YAAY,EAAEgB,YAAY,EAAE,GAAG,MAAMf,IAAAA,8BAAkB,EAC1FH,KACAI,uCAAoB;QAGtB,IAAI,IAAI,CAACV,aAAa,CAACc,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,iCAAc,CAAC;QAC3B;QAEA,MAAM,IAAI,CAACd,WAAW,CAACU,yBAAyB,CAACC,6BAAK,CAACC,KAAK;QAC5D,MAAMG,OAAO,MAAM,IAAI,CAACd,WAAW,CAACe,iBAAiB,CAACT,cAAcU;QACpE,IAAIF,MAAM;YACR,MAAM,IAAIG,sCAAmB,CAAC;QAChC;QAEA,MAAM,IAAI,CAACjB,WAAW,CAACuB,QAAQ,CAAC;YAC9BC,UAAUlB;YACVmB,UAAUH;YACVI,OAAO;gBAAChB,6BAAK,CAACC,KAAK;aAAC;YACpBgB,YAAY;YACZC,YAAY;YACZC,YAAY;YACZC,qBAAqB;QACvB;QACA,MAAM,IAAI,CAAChC,aAAa,CAACiC,gBAAgB,CAACX;QAC1C,MAAM,IAAI,CAACtB,aAAa,CAACkC,sBAAsB,CAACX;QAChD,MAAM,IAAI,CAACvB,aAAa,CAACmC,kBAAkB,CAACC,6BAAY,CAACC,oBAAoB;QAE7E,OAAO9B,IAAIa,IAAI;IACjB;IAEA,MAEMkB,eAAehC,GAAY,EAAEC,GAAa,EAAE;QAChD,IAAI,IAAI,CAACP,aAAa,CAACc,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,iCAAc,CACtB;QAEJ;QAEA,MAAMwB,QAAQ,MAAM,IAAI,CAACnC,aAAa,CAACoC,mBAAmB,CAAClC,KAAKC,KAAK;YAAC;YAAS;SAAO,EAAE;QACxF,MAAMkC,YAAYF,KAAK,CAAC,EAAE;QAE1B,MAAM,IAAI,CAACpC,WAAW,CAACuC,UAAU,CAACD,UAAUE,MAAM,CAACC,QAAQ;QAE3D,OAAOrC,IAAIa,IAAI,CAAC;YACdyB,SAAS;QACX;IACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAhFOT,6BAAY,CAACU,QAAQ,GAAG"}
@@ -49,8 +49,8 @@ class FloorController {
49
49
  const floor = await this.floorStore.updateName(req.local.id, req.body.name);
50
50
  res.send(floor);
51
51
  }
52
- async updateFloorNumber(req, res) {
53
- const floor = await this.floorStore.updateFloorNumber(req.local.id, req.body.floor);
52
+ async updateFloorOrder(req, res) {
53
+ const floor = await this.floorStore.updateFloorOrder(req.local.id, req.body.order);
54
54
  res.send(floor);
55
55
  }
56
56
  async addPrinterToFloor(req, res) {
@@ -66,7 +66,7 @@ _ts_decorate([
66
66
  (0, _awilixexpress.GET)(),
67
67
  (0, _awilixexpress.route)("/"),
68
68
  (0, _awilixexpress.before)([
69
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.List)
69
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.List)
70
70
  ]),
71
71
  _ts_metadata("design:type", Function),
72
72
  _ts_metadata("design:paramtypes", [
@@ -79,7 +79,7 @@ _ts_decorate([
79
79
  (0, _awilixexpress.GET)(),
80
80
  (0, _awilixexpress.route)("/:id"),
81
81
  (0, _awilixexpress.before)([
82
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Get),
82
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Get),
83
83
  (0, _paramconvertermiddleware.ParamId)("id")
84
84
  ]),
85
85
  _ts_metadata("design:type", Function),
@@ -93,7 +93,7 @@ _ts_decorate([
93
93
  (0, _awilixexpress.DELETE)(),
94
94
  (0, _awilixexpress.route)("/:id"),
95
95
  (0, _awilixexpress.before)([
96
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Delete),
96
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Delete),
97
97
  (0, _paramconvertermiddleware.ParamId)("id")
98
98
  ]),
99
99
  _ts_metadata("design:type", Function),
@@ -107,7 +107,7 @@ _ts_decorate([
107
107
  (0, _awilixexpress.POST)(),
108
108
  (0, _awilixexpress.route)("/"),
109
109
  (0, _awilixexpress.before)([
110
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Create)
110
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Create)
111
111
  ]),
112
112
  _ts_metadata("design:type", Function),
113
113
  _ts_metadata("design:paramtypes", [
@@ -120,7 +120,7 @@ _ts_decorate([
120
120
  (0, _awilixexpress.PATCH)(),
121
121
  (0, _awilixexpress.route)("/:id/name"),
122
122
  (0, _awilixexpress.before)([
123
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Update),
123
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
124
124
  (0, _paramconvertermiddleware.ParamId)("id")
125
125
  ]),
126
126
  _ts_metadata("design:type", Function),
@@ -132,9 +132,9 @@ _ts_decorate([
132
132
  ], FloorController.prototype, "updateName", null);
133
133
  _ts_decorate([
134
134
  (0, _awilixexpress.PATCH)(),
135
- (0, _awilixexpress.route)("/:id/floor-number"),
135
+ (0, _awilixexpress.route)("/:id/floor-order"),
136
136
  (0, _awilixexpress.before)([
137
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Update),
137
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
138
138
  (0, _paramconvertermiddleware.ParamId)("id")
139
139
  ]),
140
140
  _ts_metadata("design:type", Function),
@@ -143,12 +143,12 @@ _ts_decorate([
143
143
  typeof _express.Response === "undefined" ? Object : _express.Response
144
144
  ]),
145
145
  _ts_metadata("design:returntype", Promise)
146
- ], FloorController.prototype, "updateFloorNumber", null);
146
+ ], FloorController.prototype, "updateFloorOrder", null);
147
147
  _ts_decorate([
148
148
  (0, _awilixexpress.POST)(),
149
149
  (0, _awilixexpress.route)("/:id/printer"),
150
150
  (0, _awilixexpress.before)([
151
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Update),
151
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
152
152
  (0, _paramconvertermiddleware.ParamId)("id")
153
153
  ]),
154
154
  _ts_metadata("design:type", Function),
@@ -162,7 +162,7 @@ _ts_decorate([
162
162
  (0, _awilixexpress.DELETE)(),
163
163
  (0, _awilixexpress.route)("/:id/printer"),
164
164
  (0, _awilixexpress.before)([
165
- (0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFloors.Update),
165
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
166
166
  (0, _paramconvertermiddleware.ParamId)("id")
167
167
  ]),
168
168
  _ts_metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/floor.controller.ts"],"names":["FloorController","floorStore","list","req","res","floors","listCache","send","get","floor","getFloor","local","id","delete","create","body","updateName","name","updateFloorNumber","addPrinterToFloor","addOrUpdatePrinter","removePrinterFromFloor","removePrinter","printerId","permission","PERMS","PrinterFloors","List","Get","ParamId","Delete","Create","Update","AppConstants","apiRoute","authenticate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/controllers/floor.controller.ts"],"names":["FloorController","floorStore","list","req","res","floors","listCache","send","get","floor","getFloor","local","id","delete","create","body","updateName","name","updateFloorOrder","order","addPrinterToFloor","addOrUpdatePrinter","removePrinterFromFloor","removePrinter","printerId","permission","PERMS","Floors","List","Get","ParamId","Delete","Create","Update","AppConstants","apiRoute","authenticate"],"mappings":"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"}