@fdm-monster/server 2.0.10 → 2.0.11

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 (929) hide show
  1. package/.claude/CLAUDE.md +76 -0
  2. package/.vite-hooks/pre-commit +1 -0
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.13.0.cjs +940 -0
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +1 -1
  7. package/RELEASE_NOTES.MD +14 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js +9 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.127.0/helpers/decorateMetadata.js +6 -0
  10. package/dist/_virtual/_rolldown/runtime.js +13 -0
  11. package/dist/_virtual/_virtual_controllers.js +43 -0
  12. package/dist/consoles/typeorm-create.js +51 -112
  13. package/dist/consoles/typeorm-create.js.map +1 -1
  14. package/dist/consoles/typeorm-generate.js +99 -165
  15. package/dist/consoles/typeorm-generate.js.map +1 -1
  16. package/dist/consoles/typeorm-migrate.js +35 -43
  17. package/dist/consoles/typeorm-migrate.js.map +1 -1
  18. package/dist/constants/authorization.constants.js +75 -97
  19. package/dist/constants/authorization.constants.js.map +1 -1
  20. package/dist/constants/event.constants.js +11 -41
  21. package/dist/constants/event.constants.js.map +1 -1
  22. package/dist/constants/http-status-codes.constants.js +319 -71
  23. package/dist/constants/http-status-codes.constants.js.map +1 -1
  24. package/dist/constants/server-settings.constants.js +45 -87
  25. package/dist/constants/server-settings.constants.js.map +1 -1
  26. package/dist/constants/service.constants.js +3 -21
  27. package/dist/constants/service.constants.js.map +1 -1
  28. package/dist/container.js +167 -181
  29. package/dist/container.js.map +1 -1
  30. package/dist/container.tokens.js +78 -85
  31. package/dist/container.tokens.js.map +1 -1
  32. package/dist/controllers/auth.controller.js +156 -225
  33. package/dist/controllers/auth.controller.js.map +1 -1
  34. package/dist/controllers/batch-call.controller.js +79 -116
  35. package/dist/controllers/batch-call.controller.js.map +1 -1
  36. package/dist/controllers/camera-stream.controller.js +74 -119
  37. package/dist/controllers/camera-stream.controller.js.map +1 -1
  38. package/dist/controllers/dto/update-client-dist.dto.js +8 -15
  39. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
  40. package/dist/controllers/file-storage.controller.js +251 -312
  41. package/dist/controllers/file-storage.controller.js.map +1 -1
  42. package/dist/controllers/first-time-setup.controller.js +83 -135
  43. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  44. package/dist/controllers/floor.controller.js +111 -175
  45. package/dist/controllers/floor.controller.js.map +1 -1
  46. package/dist/controllers/metrics.controller.js +27 -53
  47. package/dist/controllers/metrics.controller.js.map +1 -1
  48. package/dist/controllers/print-job.controller.js +366 -451
  49. package/dist/controllers/print-job.controller.js.map +1 -1
  50. package/dist/controllers/print-queue.controller.js +329 -427
  51. package/dist/controllers/print-queue.controller.js.map +1 -1
  52. package/dist/controllers/printer-files.controller.js +244 -305
  53. package/dist/controllers/printer-files.controller.js.map +1 -1
  54. package/dist/controllers/printer-maintenance-log.controller.js +109 -165
  55. package/dist/controllers/printer-maintenance-log.controller.js.map +1 -1
  56. package/dist/controllers/printer-settings.controller.js +50 -81
  57. package/dist/controllers/printer-settings.controller.js.map +1 -1
  58. package/dist/controllers/printer-tag.controller.js +104 -166
  59. package/dist/controllers/printer-tag.controller.js.map +1 -1
  60. package/dist/controllers/printer.controller.js +352 -469
  61. package/dist/controllers/printer.controller.js.map +1 -1
  62. package/dist/controllers/server-private.controller.js +182 -239
  63. package/dist/controllers/server-private.controller.js.map +1 -1
  64. package/dist/controllers/server-public.controller.js +104 -158
  65. package/dist/controllers/server-public.controller.js.map +1 -1
  66. package/dist/controllers/settings.controller.js +229 -364
  67. package/dist/controllers/settings.controller.js.map +1 -1
  68. package/dist/controllers/slicer-compat.controller.js +179 -206
  69. package/dist/controllers/slicer-compat.controller.js.map +1 -1
  70. package/dist/controllers/user.controller.js +226 -348
  71. package/dist/controllers/user.controller.js.map +1 -1
  72. package/dist/controllers/validation/auth-controller.validation.js +5 -14
  73. package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
  74. package/dist/controllers/validation/batch-controller.validation.js +13 -35
  75. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  76. package/dist/controllers/validation/generic.validation.js +6 -23
  77. package/dist/controllers/validation/generic.validation.js.map +1 -1
  78. package/dist/controllers/validation/printer-completion-controller.validation.js +5 -14
  79. package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -1
  80. package/dist/controllers/validation/printer-controller.validation.js +16 -48
  81. package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
  82. package/dist/controllers/validation/printer-files-controller.validation.js +12 -47
  83. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  84. package/dist/controllers/validation/printer-settings-controller.validation.js +5 -14
  85. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
  86. package/dist/controllers/validation/server-private.validation.js +7 -14
  87. package/dist/controllers/validation/server-private.validation.js.map +1 -1
  88. package/dist/controllers/validation/setting.validation.js +12 -34
  89. package/dist/controllers/validation/setting.validation.js.map +1 -1
  90. package/dist/controllers/validation/user-controller.validation.js +27 -65
  91. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  92. package/dist/data-source.js +74 -79
  93. package/dist/data-source.js.map +1 -1
  94. package/dist/entities/camera-stream.entity.js +49 -91
  95. package/dist/entities/camera-stream.entity.js.map +1 -1
  96. package/dist/entities/floor-position.entity.js +38 -75
  97. package/dist/entities/floor-position.entity.js.map +1 -1
  98. package/dist/entities/floor.entity.js +18 -48
  99. package/dist/entities/floor.entity.js.map +1 -1
  100. package/dist/entities/index.js +14 -66
  101. package/dist/entities/print-job.entity.js +114 -196
  102. package/dist/entities/print-job.entity.js.map +1 -1
  103. package/dist/entities/printer-maintenance-log.entity.js +61 -140
  104. package/dist/entities/printer-maintenance-log.entity.js.map +1 -1
  105. package/dist/entities/printer-tag.entity.js +33 -66
  106. package/dist/entities/printer-tag.entity.js.map +1 -1
  107. package/dist/entities/printer.entity.js +67 -124
  108. package/dist/entities/printer.entity.js.map +1 -1
  109. package/dist/entities/refresh-token.entity.js +31 -66
  110. package/dist/entities/refresh-token.entity.js.map +1 -1
  111. package/dist/entities/role.entity.js +16 -45
  112. package/dist/entities/role.entity.js.map +1 -1
  113. package/dist/entities/settings.entity.js +38 -77
  114. package/dist/entities/settings.entity.js.map +1 -1
  115. package/dist/entities/tag.entity.js +19 -43
  116. package/dist/entities/tag.entity.js.map +1 -1
  117. package/dist/entities/user-role.entity.js +30 -67
  118. package/dist/entities/user-role.entity.js.map +1 -1
  119. package/dist/entities/user.entity.js +32 -87
  120. package/dist/entities/user.entity.js.map +1 -1
  121. package/dist/exceptions/failed-dependency.exception.js +11 -18
  122. package/dist/exceptions/failed-dependency.exception.js.map +1 -1
  123. package/dist/exceptions/job.exceptions.js +9 -16
  124. package/dist/exceptions/job.exceptions.js.map +1 -1
  125. package/dist/exceptions/runtime.exceptions.js +82 -121
  126. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  127. package/dist/handlers/event-emitter.js +13 -20
  128. package/dist/handlers/event-emitter.js.map +1 -1
  129. package/dist/handlers/logger-factory.js +7 -14
  130. package/dist/handlers/logger-factory.js.map +1 -1
  131. package/dist/handlers/logger.js +26 -36
  132. package/dist/handlers/logger.js.map +1 -1
  133. package/dist/handlers/logging/file-logging.transport.js +17 -31
  134. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  135. package/dist/handlers/logging/loki-logging.transport.js +34 -50
  136. package/dist/handlers/logging/loki-logging.transport.js.map +1 -1
  137. package/dist/handlers/logging/static.logger.js +83 -124
  138. package/dist/handlers/logging/static.logger.js.map +1 -1
  139. package/dist/handlers/validators.js +8 -25
  140. package/dist/handlers/validators.js.map +1 -1
  141. package/dist/index.js +23 -26
  142. package/dist/index.js.map +1 -1
  143. package/dist/middleware/authenticate.js +26 -69
  144. package/dist/middleware/authenticate.js.map +1 -1
  145. package/dist/middleware/database.js +16 -22
  146. package/dist/middleware/database.js.map +1 -1
  147. package/dist/middleware/demo.middleware.js +19 -27
  148. package/dist/middleware/demo.middleware.js.map +1 -1
  149. package/dist/middleware/exception.filter.js +109 -133
  150. package/dist/middleware/exception.filter.js.map +1 -1
  151. package/dist/middleware/global.middleware.js +28 -47
  152. package/dist/middleware/global.middleware.js.map +1 -1
  153. package/dist/middleware/param-converter.middleware.js +31 -69
  154. package/dist/middleware/param-converter.middleware.js.map +1 -1
  155. package/dist/middleware/passport.js +38 -64
  156. package/dist/middleware/passport.js.map +1 -1
  157. package/dist/middleware/printer-resolver.js +26 -33
  158. package/dist/middleware/printer-resolver.js.map +1 -1
  159. package/dist/middleware/printer.js +56 -94
  160. package/dist/middleware/printer.js.map +1 -1
  161. package/dist/middleware/slicer-api-key.middleware.js +23 -26
  162. package/dist/middleware/slicer-api-key.middleware.js.map +1 -1
  163. package/dist/middleware/socketio.middleware.js +21 -32
  164. package/dist/middleware/socketio.middleware.js.map +1 -1
  165. package/dist/migrations/1706829146617-InitSqlite.js +84 -91
  166. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  167. package/dist/migrations/1707494762198-PrinterGroup.js +22 -29
  168. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  169. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +26 -33
  170. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  171. package/dist/migrations/1713300747465-ChangeRoleNameUnique.js +27 -34
  172. package/dist/migrations/1713300747465-ChangeRoleNameUnique.js.map +1 -1
  173. package/dist/migrations/1713897879622-AddPrinterType.js +34 -41
  174. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  175. package/dist/migrations/1720338804844-RemovePrinterFile.js +12 -19
  176. package/dist/migrations/1720338804844-RemovePrinterFile.js.map +1 -1
  177. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +26 -33
  178. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
  179. package/dist/migrations/1766576698569-DropPermissions.js +11 -18
  180. package/dist/migrations/1766576698569-DropPermissions.js.map +1 -1
  181. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +26 -33
  182. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -1
  183. package/dist/migrations/1767279607392-DropCustomGcode.js +12 -19
  184. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -1
  185. package/dist/migrations/1767291804417-DropPrintCompletions.js +12 -19
  186. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -1
  187. package/dist/migrations/1767352862576-DropSettingsFileClean.js +18 -25
  188. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -1
  189. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +26 -33
  190. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -1
  191. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +18 -25
  192. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -1
  193. package/dist/migrations/1767432108916-RenameGroupToTag.js +22 -29
  194. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -1
  195. package/dist/migrations/1767451444137-AddPrintJob.js +20 -27
  196. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -1
  197. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js +14 -21
  198. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js.map +1 -1
  199. package/dist/plugins/controllers-plugin.js +21 -0
  200. package/dist/plugins/controllers-plugin.js.map +1 -0
  201. package/dist/server.constants.js +79 -91
  202. package/dist/server.constants.js.map +1 -1
  203. package/dist/server.core.js +56 -122
  204. package/dist/server.core.js.map +1 -1
  205. package/dist/server.env.js +56 -121
  206. package/dist/server.env.js.map +1 -1
  207. package/dist/server.host.js +66 -99
  208. package/dist/server.host.js.map +1 -1
  209. package/dist/services/authentication/auth.service.js +103 -126
  210. package/dist/services/authentication/auth.service.js.map +1 -1
  211. package/dist/services/authentication/jwt.service.js +23 -32
  212. package/dist/services/authentication/jwt.service.js.map +1 -1
  213. package/dist/services/bambu/bambu-ftp.adapter.js +194 -236
  214. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  215. package/dist/services/bambu/bambu-mqtt.adapter.js +394 -449
  216. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  217. package/dist/services/bambu/bambu.client.js +64 -65
  218. package/dist/services/bambu/bambu.client.js.map +1 -1
  219. package/dist/services/bambu/mqtt-message.types.js +1 -6
  220. package/dist/services/bambu.api.js +230 -247
  221. package/dist/services/bambu.api.js.map +1 -1
  222. package/dist/services/core/batch-call.service.js +139 -163
  223. package/dist/services/core/batch-call.service.js.map +1 -1
  224. package/dist/services/core/client-bundle.service.js +126 -165
  225. package/dist/services/core/client-bundle.service.js.map +1 -1
  226. package/dist/services/core/config.service.js +16 -26
  227. package/dist/services/core/config.service.js.map +1 -1
  228. package/dist/services/core/cradle.service.js +11 -19
  229. package/dist/services/core/cradle.service.js.map +1 -1
  230. package/dist/services/core/github.service.js +59 -79
  231. package/dist/services/core/github.service.js.map +1 -1
  232. package/dist/services/core/http-client.factory.js +30 -38
  233. package/dist/services/core/http-client.factory.js.map +1 -1
  234. package/dist/services/core/logs-manager.service.js +61 -84
  235. package/dist/services/core/logs-manager.service.js.map +1 -1
  236. package/dist/services/core/monsterpi.service.js +26 -36
  237. package/dist/services/core/monsterpi.service.js.map +1 -1
  238. package/dist/services/core/multer.service.js +69 -129
  239. package/dist/services/core/multer.service.js.map +1 -1
  240. package/dist/services/core/server-release.service.js +77 -99
  241. package/dist/services/core/server-release.service.js.map +1 -1
  242. package/dist/services/core/yaml.service.js +443 -573
  243. package/dist/services/core/yaml.service.js.map +1 -1
  244. package/dist/services/file-analysis.service.js +134 -144
  245. package/dist/services/file-analysis.service.js.map +1 -1
  246. package/dist/services/file-storage.service.js +324 -423
  247. package/dist/services/file-storage.service.js.map +1 -1
  248. package/dist/services/interfaces/auth.service.interface.js +1 -6
  249. package/dist/services/interfaces/camera-stream.dto.js +23 -41
  250. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  251. package/dist/services/interfaces/camera-stream.service.interface.js +1 -6
  252. package/dist/services/interfaces/file-upload-tracker.interface.js +1 -6
  253. package/dist/services/interfaces/floor.dto.js +31 -55
  254. package/dist/services/interfaces/floor.dto.js.map +1 -1
  255. package/dist/services/interfaces/floor.service.interface.js +1 -6
  256. package/dist/services/interfaces/jwt.service.interface.js +1 -6
  257. package/dist/services/interfaces/login.dto.js +10 -17
  258. package/dist/services/interfaces/login.dto.js.map +1 -1
  259. package/dist/services/interfaces/page.interface.js +5 -12
  260. package/dist/services/interfaces/page.interface.js.map +1 -1
  261. package/dist/services/interfaces/permission.service.interface.js +1 -6
  262. package/dist/services/interfaces/printer-file.dto.js +1 -6
  263. package/dist/services/interfaces/printer-maintenance-log.dto.js +1 -6
  264. package/dist/services/interfaces/printer-tag.dto.js +11 -26
  265. package/dist/services/interfaces/printer-tag.dto.js.map +1 -1
  266. package/dist/services/interfaces/printer-tag.service.interface.js +1 -6
  267. package/dist/services/interfaces/printer.dto.js +21 -36
  268. package/dist/services/interfaces/printer.dto.js.map +1 -1
  269. package/dist/services/interfaces/printer.service.interface.js +1 -6
  270. package/dist/services/interfaces/refresh-token.dto.js +9 -16
  271. package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
  272. package/dist/services/interfaces/refresh-token.service.interface.js +1 -6
  273. package/dist/services/interfaces/role-service.interface.js +1 -6
  274. package/dist/services/interfaces/role.dto.js +7 -14
  275. package/dist/services/interfaces/role.dto.js.map +1 -1
  276. package/dist/services/interfaces/settings.dto.js +10 -17
  277. package/dist/services/interfaces/settings.dto.js.map +1 -1
  278. package/dist/services/interfaces/settings.service.interface.js +1 -6
  279. package/dist/services/interfaces/tag.dto.js +1 -6
  280. package/dist/services/interfaces/task.interfaces.js +1 -6
  281. package/dist/services/interfaces/user-role.dto.js +9 -16
  282. package/dist/services/interfaces/user-role.dto.js.map +1 -1
  283. package/dist/services/interfaces/user-service.interface.js +1 -6
  284. package/dist/services/interfaces/user.dto.js +22 -37
  285. package/dist/services/interfaces/user.dto.js.map +1 -1
  286. package/dist/services/moonraker/constants/moonraker-event.dto.js +16 -31
  287. package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
  288. package/dist/services/moonraker/constants/moonraker.constants.js +4 -11
  289. package/dist/services/moonraker/constants/moonraker.constants.js.map +1 -1
  290. package/dist/services/moonraker/dto/access/access-info.dto.js +1 -6
  291. package/dist/services/moonraker/dto/access/access-login-refresh.dto.js +1 -6
  292. package/dist/services/moonraker/dto/access/access-login-result.dto.js +1 -6
  293. package/dist/services/moonraker/dto/access/access-user-result.dto.js +1 -6
  294. package/dist/services/moonraker/dto/access/access-user.dto.js +1 -6
  295. package/dist/services/moonraker/dto/database/database-namespace-item.dto.js +1 -6
  296. package/dist/services/moonraker/dto/database/database-namespace-list.dto.js +1 -6
  297. package/dist/services/moonraker/dto/gcode-help.dto.js +1 -6
  298. package/dist/services/moonraker/dto/gcode-store.dto.js +1 -6
  299. package/dist/services/moonraker/dto/job-queue/enqueue-job.dto.js +1 -6
  300. package/dist/services/moonraker/dto/job-queue/job-queue-status.dto.js +1 -6
  301. package/dist/services/moonraker/dto/machine/machine-device-power-device-state.dto.js +1 -6
  302. package/dist/services/moonraker/dto/machine/machine-device-power-devices.dto.js +1 -6
  303. package/dist/services/moonraker/dto/machine/machine-peripherals-canbus.dto.js +1 -6
  304. package/dist/services/moonraker/dto/machine/machine-peripherals-serial.dto.js +1 -6
  305. package/dist/services/moonraker/dto/machine/machine-peripherals-usb.dto.js +1 -6
  306. package/dist/services/moonraker/dto/machine/machine-peripherals-video.dto.js +1 -6
  307. package/dist/services/moonraker/dto/machine/machine-system-info.dto.js +1 -6
  308. package/dist/services/moonraker/dto/machine/machine-update-status.dto.js +1 -6
  309. package/dist/services/moonraker/dto/machine/machine-wled-strips.dto.js +1 -6
  310. package/dist/services/moonraker/dto/notifier-list.dto.js +1 -6
  311. package/dist/services/moonraker/dto/objects/bed-mesh.dto.js +1 -6
  312. package/dist/services/moonraker/dto/objects/configfile.dto.js +1 -6
  313. package/dist/services/moonraker/dto/objects/display-status.dto.js +1 -6
  314. package/dist/services/moonraker/dto/objects/extruder.dto.js +1 -6
  315. package/dist/services/moonraker/dto/objects/fan.dto.js +1 -6
  316. package/dist/services/moonraker/dto/objects/filament-motion-sensor.dto.js +1 -6
  317. package/dist/services/moonraker/dto/objects/filament-switch-sensor.dto.js +1 -6
  318. package/dist/services/moonraker/dto/objects/gcode-move.dto.js +1 -6
  319. package/dist/services/moonraker/dto/objects/gcode.dto.js +1 -6
  320. package/dist/services/moonraker/dto/objects/heater-bed.dto.js +1 -6
  321. package/dist/services/moonraker/dto/objects/heaters.dto.js +1 -6
  322. package/dist/services/moonraker/dto/objects/idle-timeout.dto.js +6 -21
  323. package/dist/services/moonraker/dto/objects/idle-timeout.dto.js.map +1 -1
  324. package/dist/services/moonraker/dto/objects/mcu.dto.js +1 -6
  325. package/dist/services/moonraker/dto/objects/motion-report.dto.js +1 -6
  326. package/dist/services/moonraker/dto/objects/output-pin.dto.js +1 -6
  327. package/dist/services/moonraker/dto/objects/pause-resume.dto.js +1 -6
  328. package/dist/services/moonraker/dto/objects/print-stats.dto.js +9 -24
  329. package/dist/services/moonraker/dto/objects/print-stats.dto.js.map +1 -1
  330. package/dist/services/moonraker/dto/objects/printer-object.dto.js +1 -6
  331. package/dist/services/moonraker/dto/objects/printer-object.types.js +1 -6
  332. package/dist/services/moonraker/dto/objects/printer-objects-list.dto.js +28 -43
  333. package/dist/services/moonraker/dto/objects/printer-objects-list.dto.js.map +1 -1
  334. package/dist/services/moonraker/dto/objects/printer-objects-query.dto.js +1 -6
  335. package/dist/services/moonraker/dto/objects/stepper-enable.dto.js +1 -6
  336. package/dist/services/moonraker/dto/objects/system-stats.dto.js +1 -6
  337. package/dist/services/moonraker/dto/objects/temperature-fan.dto.js +1 -6
  338. package/dist/services/moonraker/dto/objects/temperature-sensor.dto.js +1 -6
  339. package/dist/services/moonraker/dto/objects/toolhead.dto.js +1 -6
  340. package/dist/services/moonraker/dto/objects/virtual-sdcard.dto.js +1 -6
  341. package/dist/services/moonraker/dto/objects/webhooks.dto.js +1 -6
  342. package/dist/services/moonraker/dto/octoprint-compat/api-job.dto.js +1 -6
  343. package/dist/services/moonraker/dto/octoprint-compat/api-login.dto.js +1 -6
  344. package/dist/services/moonraker/dto/octoprint-compat/api-printer.dto.js +1 -6
  345. package/dist/services/moonraker/dto/octoprint-compat/api-profiles.dto.js +1 -6
  346. package/dist/services/moonraker/dto/octoprint-compat/api-settings.dto.js +1 -6
  347. package/dist/services/moonraker/dto/octoprint-compat/api-version.dto.js +1 -6
  348. package/dist/services/moonraker/dto/octoprint-compat/server-version.dto.js +1 -6
  349. package/dist/services/moonraker/dto/printer-info.dto.js +7 -22
  350. package/dist/services/moonraker/dto/printer-info.dto.js.map +1 -1
  351. package/dist/services/moonraker/dto/printer-query-endstops.dto.js +1 -6
  352. package/dist/services/moonraker/dto/process-stats.dto.js +1 -6
  353. package/dist/services/moonraker/dto/rest/action-result.dto.js +1 -6
  354. package/dist/services/moonraker/dto/rest/error.dto.js +1 -6
  355. package/dist/services/moonraker/dto/rest/result.dto.js +6 -13
  356. package/dist/services/moonraker/dto/rest/result.dto.js.map +1 -1
  357. package/dist/services/moonraker/dto/rollover-logs.dto.js +1 -6
  358. package/dist/services/moonraker/dto/rpc/json-rpc-error.dto.js +1 -6
  359. package/dist/services/moonraker/dto/rpc/json-rpc-request.dto.js +1 -6
  360. package/dist/services/moonraker/dto/rpc/json-rpc-response.dto.js +1 -6
  361. package/dist/services/moonraker/dto/server/server-config.dto.js +1 -6
  362. package/dist/services/moonraker/dto/server/server-info.dto.js +7 -14
  363. package/dist/services/moonraker/dto/server/server-info.dto.js.map +1 -1
  364. package/dist/services/moonraker/dto/server-announcements/announcement-action.dto.js +1 -6
  365. package/dist/services/moonraker/dto/server-announcements/announcement-entry-id.dto.js +1 -6
  366. package/dist/services/moonraker/dto/server-announcements/announcement-feeds.dto.js +1 -6
  367. package/dist/services/moonraker/dto/server-announcements/announcement-list.dto.js +1 -6
  368. package/dist/services/moonraker/dto/server-files/server-file-directory-action.dto.js +1 -6
  369. package/dist/services/moonraker/dto/server-files/server-file-directory-info.dto.js +1 -6
  370. package/dist/services/moonraker/dto/server-files/server-file-metadata.dto.js +1 -6
  371. package/dist/services/moonraker/dto/server-files/server-file-root.dto.js +1 -6
  372. package/dist/services/moonraker/dto/server-files/server-file-thumbnail.dto.js +1 -6
  373. package/dist/services/moonraker/dto/server-files/server-file-zip-action.dto.js +1 -6
  374. package/dist/services/moonraker/dto/server-files/server-file.dto.js +1 -6
  375. package/dist/services/moonraker/dto/server-history/history-job.dto.js +1 -6
  376. package/dist/services/moonraker/dto/server-history/history-last-totals.dto.js +1 -6
  377. package/dist/services/moonraker/dto/server-history/history-list.dto.js +1 -6
  378. package/dist/services/moonraker/dto/server-history/history-totals.dto.js +1 -6
  379. package/dist/services/moonraker/dto/server-history/job.dto.js +6 -21
  380. package/dist/services/moonraker/dto/server-history/job.dto.js.map +1 -1
  381. package/dist/services/moonraker/dto/server-sensors/sensor-info.dto.js +1 -6
  382. package/dist/services/moonraker/dto/server-sensors/sensor-list.dto.js +1 -6
  383. package/dist/services/moonraker/dto/server-sensors/sensor-measurements.dto.js +1 -6
  384. package/dist/services/moonraker/dto/server-webcams/webcam-item.dto.js +1 -6
  385. package/dist/services/moonraker/dto/server-webcams/webcam-list.dto.js +1 -6
  386. package/dist/services/moonraker/dto/server-webcams/webcam-test.dto.js +1 -6
  387. package/dist/services/moonraker/dto/spoolman/spoolman-active-spool.dto.js +1 -6
  388. package/dist/services/moonraker/dto/spoolman/spoolman-proxy-request.dto.js +1 -6
  389. package/dist/services/moonraker/dto/spoolman/spoolman-response.dto.js +1 -6
  390. package/dist/services/moonraker/dto/spoolman/spoolman-status.dto.js +1 -6
  391. package/dist/services/moonraker/dto/sudo-info.dto.js +1 -6
  392. package/dist/services/moonraker/dto/sudo-response.dto.js +1 -6
  393. package/dist/services/moonraker/dto/temperature-store.dto.js +1 -6
  394. package/dist/services/moonraker/dto/websocket/connection-identify-response.dto.js +1 -6
  395. package/dist/services/moonraker/dto/websocket/connection-identify.dto.js +1 -6
  396. package/dist/services/moonraker/dto/websocket/json-rpc-event.dto.js +1 -6
  397. package/dist/services/moonraker/dto/websocket/message.types.js +1 -6
  398. package/dist/services/moonraker/dto/websocket/methods.js +29 -44
  399. package/dist/services/moonraker/dto/websocket/methods.js.map +1 -1
  400. package/dist/services/moonraker/dto/websocket/notify-active-spool-set.params.js +1 -6
  401. package/dist/services/moonraker/dto/websocket/notify-agent-event.params.js +1 -6
  402. package/dist/services/moonraker/dto/websocket/notify-announcement-update.params.js +1 -6
  403. package/dist/services/moonraker/dto/websocket/notify-announcement.params.js +1 -6
  404. package/dist/services/moonraker/dto/websocket/notify-button-event.params.js +1 -6
  405. package/dist/services/moonraker/dto/websocket/notify-filelist-changed.params.js +11 -18
  406. package/dist/services/moonraker/dto/websocket/notify-filelist-changed.params.js.map +1 -1
  407. package/dist/services/moonraker/dto/websocket/notify-history-changed.params.js +1 -6
  408. package/dist/services/moonraker/dto/websocket/notify-job-queue-changed.params.js +1 -6
  409. package/dist/services/moonraker/dto/websocket/notify-proc-stat-update.params.js +1 -6
  410. package/dist/services/moonraker/dto/websocket/notify-sensor-update.params.js +1 -6
  411. package/dist/services/moonraker/dto/websocket/notify-service-state-changed.params.js +1 -6
  412. package/dist/services/moonraker/dto/websocket/notify-spoolman-status-changed.js +1 -6
  413. package/dist/services/moonraker/dto/websocket/notify-sudo-alert.params.js +1 -6
  414. package/dist/services/moonraker/dto/websocket/notify-update-response.params.js +7 -22
  415. package/dist/services/moonraker/dto/websocket/notify-update-response.params.js.map +1 -1
  416. package/dist/services/moonraker/dto/websocket/notify-user-change.params.js +1 -6
  417. package/dist/services/moonraker/moonraker-websocket.adapter.js +313 -348
  418. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  419. package/dist/services/moonraker/moonraker.client.js +536 -559
  420. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  421. package/dist/services/moonraker.api.js +167 -192
  422. package/dist/services/moonraker.api.js.map +1 -1
  423. package/dist/services/octoprint/constants/firmware-update-settings.constants.js +19 -28
  424. package/dist/services/octoprint/constants/firmware-update-settings.constants.js.map +1 -1
  425. package/dist/services/octoprint/constants/octoprint-service.constants.js +3 -30
  426. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  427. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +41 -56
  428. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  429. package/dist/services/octoprint/dto/access/user-list.dto.js +1 -6
  430. package/dist/services/octoprint/dto/access/user.dto.js +1 -6
  431. package/dist/services/octoprint/dto/auth/current-user.dto.js +1 -6
  432. package/dist/services/octoprint/dto/auth/login.dto.js +1 -6
  433. package/dist/services/octoprint/dto/connection/connection-state.type.js +23 -30
  434. package/dist/services/octoprint/dto/connection/connection-state.type.js.map +1 -1
  435. package/dist/services/octoprint/dto/connection/connection.dto.js +1 -6
  436. package/dist/services/octoprint/dto/events/client-authed.dto.js +1 -6
  437. package/dist/services/octoprint/dto/events/client-closed.dto.js +1 -6
  438. package/dist/services/octoprint/dto/events/client-opened.dto.js +1 -6
  439. package/dist/services/octoprint/dto/events/dwelling.dto.js +1 -6
  440. package/dist/services/octoprint/dto/events/file-added.dto.js +1 -6
  441. package/dist/services/octoprint/dto/events/file-deselected.dto.js +1 -6
  442. package/dist/services/octoprint/dto/events/file-removed.dto.js +1 -6
  443. package/dist/services/octoprint/dto/events/folder-added.dto.js +1 -6
  444. package/dist/services/octoprint/dto/events/home.dto.js +1 -6
  445. package/dist/services/octoprint/dto/events/metadata-analysis-finished.dto.js +1 -6
  446. package/dist/services/octoprint/dto/events/metadata-analysis-started.dto.js +1 -6
  447. package/dist/services/octoprint/dto/events/metadata-statistics-updated.dto.js +1 -6
  448. package/dist/services/octoprint/dto/events/position-update.dto.js +1 -6
  449. package/dist/services/octoprint/dto/events/print-cancelled.dto.js +1 -6
  450. package/dist/services/octoprint/dto/events/print-cancelling.dto.js +1 -6
  451. package/dist/services/octoprint/dto/events/print-done.dto.js +1 -6
  452. package/dist/services/octoprint/dto/events/print-failed.dto.js +1 -6
  453. package/dist/services/octoprint/dto/events/print-paused.dto.js +1 -6
  454. package/dist/services/octoprint/dto/events/print-resumed.dto.js +1 -6
  455. package/dist/services/octoprint/dto/events/print-started.dto.js +1 -6
  456. package/dist/services/octoprint/dto/events/printer-state-changed.dto.js +1 -6
  457. package/dist/services/octoprint/dto/events/transfer-done.dto.js +1 -6
  458. package/dist/services/octoprint/dto/events/transfer-started.dto.js +1 -6
  459. package/dist/services/octoprint/dto/events/updated-files.dto.js +1 -6
  460. package/dist/services/octoprint/dto/events/upload.dto.js +1 -6
  461. package/dist/services/octoprint/dto/events/user-logged-in.dto.js +1 -6
  462. package/dist/services/octoprint/dto/events/z-change.dto.js +1 -6
  463. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js +1 -6
  464. package/dist/services/octoprint/dto/files/octoprint-file.dto.js +1 -6
  465. package/dist/services/octoprint/dto/files/octoprint-files-response.dto.js +1 -6
  466. package/dist/services/octoprint/dto/job/current-job.dto.js +8 -15
  467. package/dist/services/octoprint/dto/job/current-job.dto.js.map +1 -1
  468. package/dist/services/octoprint/dto/job/job.dto.js +1 -6
  469. package/dist/services/octoprint/dto/octoprint-event.dto.js +21 -39
  470. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  471. package/dist/services/octoprint/dto/printer/busy-file.dto.js +1 -6
  472. package/dist/services/octoprint/dto/printer/current-printer-state.dto.js +1 -6
  473. package/dist/services/octoprint/dto/printer/flags.dto.js +1 -6
  474. package/dist/services/octoprint/dto/printer/markings.dto.js +1 -6
  475. package/dist/services/octoprint/dto/printer/progress.dto.js +1 -6
  476. package/dist/services/octoprint/dto/printer/resends.dto.js +1 -6
  477. package/dist/services/octoprint/dto/printer/state.dto.js +1 -6
  478. package/dist/services/octoprint/dto/printer/temps.dto.js +1 -6
  479. package/dist/services/octoprint/dto/rest/error.dto.js +1 -6
  480. package/dist/services/octoprint/dto/server/server.dto.js +1 -6
  481. package/dist/services/octoprint/dto/server/version.dto.js +1 -6
  482. package/dist/services/octoprint/dto/settings/serial-settings.dto.js +1 -6
  483. package/dist/services/octoprint/dto/settings/settings-parts.type.js +1 -6
  484. package/dist/services/octoprint/dto/settings/settings.dto.js +1 -6
  485. package/dist/services/octoprint/dto/settings/virtual-printer-settings.dto.js +1 -6
  486. package/dist/services/octoprint/dto/system/system-info.dto.js +32 -39
  487. package/dist/services/octoprint/dto/system/system-info.dto.js.map +1 -1
  488. package/dist/services/octoprint/dto/websocket/connection-message.dto.js +1 -6
  489. package/dist/services/octoprint/dto/websocket/current-message.dto.js +1 -6
  490. package/dist/services/octoprint/dto/websocket/event-message.dto.js +1 -6
  491. package/dist/services/octoprint/dto/websocket/event.type.js +42 -49
  492. package/dist/services/octoprint/dto/websocket/event.type.js.map +1 -1
  493. package/dist/services/octoprint/dto/websocket/history-message.dto.js +1 -6
  494. package/dist/services/octoprint/dto/websocket/plugin-message.dto.js +1 -6
  495. package/dist/services/octoprint/dto/websocket/timelapse-message.dto.js +1 -6
  496. package/dist/services/octoprint/octoprint-api.routes.js +77 -94
  497. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  498. package/dist/services/octoprint/octoprint-websocket.adapter.js +265 -315
  499. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  500. package/dist/services/octoprint/octoprint.client.js +220 -261
  501. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  502. package/dist/services/octoprint/utils/api.utils.js +15 -32
  503. package/dist/services/octoprint/utils/api.utils.js.map +1 -1
  504. package/dist/services/octoprint/utils/file.utils.js +44 -67
  505. package/dist/services/octoprint/utils/file.utils.js.map +1 -1
  506. package/dist/services/octoprint/utils/octoprint-http-client.builder.js +16 -29
  507. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
  508. package/dist/services/octoprint.api.js +113 -128
  509. package/dist/services/octoprint.api.js.map +1 -1
  510. package/dist/services/orm/base.interface.js +1 -6
  511. package/dist/services/orm/base.service.js +57 -73
  512. package/dist/services/orm/base.service.js.map +1 -1
  513. package/dist/services/orm/camera-stream.service.js +21 -27
  514. package/dist/services/orm/camera-stream.service.js.map +1 -1
  515. package/dist/services/orm/floor-position.service.js +42 -49
  516. package/dist/services/orm/floor-position.service.js.map +1 -1
  517. package/dist/services/orm/floor.service.js +110 -138
  518. package/dist/services/orm/floor.service.js.map +1 -1
  519. package/dist/services/orm/permission.service.js +16 -23
  520. package/dist/services/orm/permission.service.js.map +1 -1
  521. package/dist/services/orm/print-job.service.js +443 -545
  522. package/dist/services/orm/print-job.service.js.map +1 -1
  523. package/dist/services/orm/printer-maintenance-log.service.js +102 -149
  524. package/dist/services/orm/printer-maintenance-log.service.js.map +1 -1
  525. package/dist/services/orm/printer-tag.service.js +93 -118
  526. package/dist/services/orm/printer-tag.service.js.map +1 -1
  527. package/dist/services/orm/printer.service.js +110 -158
  528. package/dist/services/orm/printer.service.js.map +1 -1
  529. package/dist/services/orm/refresh-token.service.js +69 -99
  530. package/dist/services/orm/refresh-token.service.js.map +1 -1
  531. package/dist/services/orm/role.service.js +99 -116
  532. package/dist/services/orm/role.service.js.map +1 -1
  533. package/dist/services/orm/settings.service.js +84 -94
  534. package/dist/services/orm/settings.service.js.map +1 -1
  535. package/dist/services/orm/user-role.service.js +39 -53
  536. package/dist/services/orm/user-role.service.js.map +1 -1
  537. package/dist/services/orm/user.service.js +142 -189
  538. package/dist/services/orm/user.service.js.map +1 -1
  539. package/dist/services/print-file-downloader.service.js +153 -167
  540. package/dist/services/print-file-downloader.service.js.map +1 -1
  541. package/dist/services/print-queue.service.js +240 -326
  542. package/dist/services/print-queue.service.js.map +1 -1
  543. package/dist/services/printer-api.factory.js +26 -43
  544. package/dist/services/printer-api.factory.js.map +1 -1
  545. package/dist/services/printer-api.interface.js +23 -53
  546. package/dist/services/printer-api.interface.js.map +1 -1
  547. package/dist/services/prusa-link/constants/prusalink-event.dto.js +9 -16
  548. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
  549. package/dist/services/prusa-link/constants/prusalink.constants.js +4 -11
  550. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -1
  551. package/dist/services/prusa-link/dto/file-response.dto.js +1 -6
  552. package/dist/services/prusa-link/dto/file.dto.js +1 -6
  553. package/dist/services/prusa-link/dto/job-state.dto.js +1 -6
  554. package/dist/services/prusa-link/dto/printer-state.dto.js +1 -6
  555. package/dist/services/prusa-link/dto/status.dto.js +1 -6
  556. package/dist/services/prusa-link/dto/version.dto.js +1 -6
  557. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +141 -157
  558. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  559. package/dist/services/prusa-link/prusa-link.api.js +206 -240
  560. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  561. package/dist/services/prusa-link/utils/digest-auth.params.js +1 -6
  562. package/dist/services/prusa-link/utils/digest-auth.util.js +17 -24
  563. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -1
  564. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +92 -129
  565. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
  566. package/dist/services/socket.factory.js +21 -36
  567. package/dist/services/socket.factory.js.map +1 -1
  568. package/dist/services/task-manager.service.js +190 -174
  569. package/dist/services/task-manager.service.js.map +1 -1
  570. package/dist/services/typeorm/typeorm.service.js +31 -46
  571. package/dist/services/typeorm/typeorm.service.js.map +1 -1
  572. package/dist/services/validators/floor-service.validation.js +26 -63
  573. package/dist/services/validators/floor-service.validation.js.map +1 -1
  574. package/dist/services/validators/print-job.validation.js +11 -26
  575. package/dist/services/validators/print-job.validation.js.map +1 -1
  576. package/dist/services/validators/printer-maintenance-log.validation.js +17 -37
  577. package/dist/services/validators/printer-maintenance-log.validation.js.map +1 -1
  578. package/dist/services/validators/printer-service.validation.js +60 -125
  579. package/dist/services/validators/printer-service.validation.js.map +1 -1
  580. package/dist/services/validators/settings-service.validation.js +46 -106
  581. package/dist/services/validators/settings-service.validation.js.map +1 -1
  582. package/dist/services/validators/user-service.validation.js +19 -36
  583. package/dist/services/validators/user-service.validation.js.map +1 -1
  584. package/dist/services/validators/yaml-service.validation.js +96 -132
  585. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  586. package/dist/services/websocket-adapter.interface.js +1 -6
  587. package/dist/shared/default-http-client.builder.js +74 -92
  588. package/dist/shared/default-http-client.builder.js.map +1 -1
  589. package/dist/shared/dtos/api-state.type.js +8 -15
  590. package/dist/shared/dtos/api-state.type.js.map +1 -1
  591. package/dist/shared/dtos/socket-login.dto.js +1 -6
  592. package/dist/shared/dtos/socket-state.type.js +11 -18
  593. package/dist/shared/dtos/socket-state.type.js.map +1 -1
  594. package/dist/shared/load-controllers.js +41 -19
  595. package/dist/shared/load-controllers.js.map +1 -1
  596. package/dist/shared/runtime-settings.migration.js +43 -50
  597. package/dist/shared/runtime-settings.migration.js.map +1 -1
  598. package/dist/shared/websocket-rpc-extended.adapter.js +74 -75
  599. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  600. package/dist/shared/websocket.adapter.js +78 -63
  601. package/dist/shared/websocket.adapter.js.map +1 -1
  602. package/dist/state/file-upload-tracker.cache.js +63 -75
  603. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  604. package/dist/state/floor.store.js +77 -89
  605. package/dist/state/floor.store.js.map +1 -1
  606. package/dist/state/printer-events.cache.js +237 -295
  607. package/dist/state/printer-events.cache.js.map +1 -1
  608. package/dist/state/printer-socket.store.js +156 -174
  609. package/dist/state/printer-socket.store.js.map +1 -1
  610. package/dist/state/printer-thumbnail.cache.js +129 -130
  611. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  612. package/dist/state/printer.cache.js +87 -102
  613. package/dist/state/printer.cache.js.map +1 -1
  614. package/dist/state/settings.store.js +211 -234
  615. package/dist/state/settings.store.js.map +1 -1
  616. package/dist/state/socket-io.gateway.js +58 -87
  617. package/dist/state/socket-io.gateway.js.map +1 -1
  618. package/dist/state/test-printer-socket.store.js +116 -137
  619. package/dist/state/test-printer-socket.store.js.map +1 -1
  620. package/dist/state/validation/create-test-printer.validation.js +14 -21
  621. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  622. package/dist/task.presets.js +30 -37
  623. package/dist/task.presets.js.map +1 -1
  624. package/dist/tasks/boot.task.js +100 -128
  625. package/dist/tasks/boot.task.js.map +1 -1
  626. package/dist/tasks/client-bundle.task.js +20 -28
  627. package/dist/tasks/client-bundle.task.js.map +1 -1
  628. package/dist/tasks/print-job-analysis.task.js +88 -113
  629. package/dist/tasks/print-job-analysis.task.js.map +1 -1
  630. package/dist/tasks/printer-websocket-restore.task.js +41 -54
  631. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  632. package/dist/tasks/printer-websocket.task.js +11 -19
  633. package/dist/tasks/printer-websocket.task.js.map +1 -1
  634. package/dist/tasks/socketio.task.js +35 -53
  635. package/dist/tasks/socketio.task.js.map +1 -1
  636. package/dist/tasks/software-update.task.js +12 -20
  637. package/dist/tasks/software-update.task.js.map +1 -1
  638. package/dist/tasks.js +27 -41
  639. package/dist/tasks.js.map +1 -1
  640. package/dist/types/express/index.d.js +1 -6
  641. package/dist/types/virtual-modules.d.js +1 -0
  642. package/dist/utils/array.util.js +9 -24
  643. package/dist/utils/array.util.js.map +1 -1
  644. package/dist/utils/bgcode/bgcode-thumbnail.parser.js +26 -44
  645. package/dist/utils/bgcode/bgcode-thumbnail.parser.js.map +1 -1
  646. package/dist/utils/bgcode/bgcode.constants.js +9 -45
  647. package/dist/utils/bgcode/bgcode.constants.js.map +1 -1
  648. package/dist/utils/bgcode/bgcode.types.js +57 -106
  649. package/dist/utils/bgcode/bgcode.types.js.map +1 -1
  650. package/dist/utils/bgcode/bgcode.utils.js +167 -256
  651. package/dist/utils/bgcode/bgcode.utils.js.map +1 -1
  652. package/dist/utils/bgcode/heatshrink-decoder.js +130 -170
  653. package/dist/utils/bgcode/heatshrink-decoder.js.map +1 -1
  654. package/dist/utils/bgcode/png-encoder.js +53 -66
  655. package/dist/utils/bgcode/png-encoder.js.map +1 -1
  656. package/dist/utils/bgcode/qoi-decoder.js +116 -135
  657. package/dist/utils/bgcode/qoi-decoder.js.map +1 -1
  658. package/dist/utils/cache/key-diff.cache.js +56 -85
  659. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  660. package/dist/utils/correlation-token.util.js +4 -11
  661. package/dist/utils/correlation-token.util.js.map +1 -1
  662. package/dist/utils/crypto.utils.js +7 -23
  663. package/dist/utils/crypto.utils.js.map +1 -1
  664. package/dist/utils/env.utils.js +14 -49
  665. package/dist/utils/env.utils.js.map +1 -1
  666. package/dist/utils/error.utils.js +4 -11
  667. package/dist/utils/error.utils.js.map +1 -1
  668. package/dist/utils/fs.utils.js +26 -49
  669. package/dist/utils/fs.utils.js.map +1 -1
  670. package/dist/utils/gcode.utils.js +30 -43
  671. package/dist/utils/gcode.utils.js.map +1 -1
  672. package/dist/utils/image-dimensions.js +39 -54
  673. package/dist/utils/image-dimensions.js.map +1 -1
  674. package/dist/utils/job-stats.util.js +41 -72
  675. package/dist/utils/job-stats.util.js.map +1 -1
  676. package/dist/utils/normalize-url.js +135 -203
  677. package/dist/utils/normalize-url.js.map +1 -1
  678. package/dist/utils/parsers/3mf.parser.js +298 -365
  679. package/dist/utils/parsers/3mf.parser.js.map +1 -1
  680. package/dist/utils/parsers/bgcode.parser.js +149 -202
  681. package/dist/utils/parsers/bgcode.parser.js.map +1 -1
  682. package/dist/utils/parsers/gcode.parser.js +200 -263
  683. package/dist/utils/parsers/gcode.parser.js.map +1 -1
  684. package/dist/utils/parsers/parser.types.js +1 -6
  685. package/dist/utils/pretty-print.utils.js +5 -20
  686. package/dist/utils/pretty-print.utils.js.map +1 -1
  687. package/dist/utils/semver.utils.js +10 -26
  688. package/dist/utils/semver.utils.js.map +1 -1
  689. package/dist/utils/swagger/decorators.js +14 -32
  690. package/dist/utils/swagger/decorators.js.map +1 -1
  691. package/dist/utils/swagger/generator.js +151 -194
  692. package/dist/utils/swagger/generator.js.map +1 -1
  693. package/dist/utils/swagger/swagger.js +40 -51
  694. package/dist/utils/swagger/swagger.js.map +1 -1
  695. package/dist/utils/thumbnail.util.js +11 -20
  696. package/dist/utils/thumbnail.util.js.map +1 -1
  697. package/dist/utils/time.utils.js +4 -12
  698. package/dist/utils/time.utils.js.map +1 -1
  699. package/dist/utils/url.utils.js +9 -27
  700. package/dist/utils/url.utils.js.map +1 -1
  701. package/package.json +79 -90
  702. package/packages/consoles/package.json +44 -0
  703. package/packages/consoles/tsconfig.json +23 -0
  704. package/packages/consoles/vite.config.ts +15 -0
  705. package/tsconfig.json +10 -6
  706. package/vite.config.ts +62 -0
  707. package/.swcrc +0 -33
  708. package/.yarn/releases/yarn-4.12.0.cjs +0 -942
  709. package/biome.json +0 -36
  710. package/dist/consoles/bambu-mqtt-diagnostic.console.js +0 -565
  711. package/dist/consoles/bambu-mqtt-diagnostic.console.js.map +0 -1
  712. package/dist/consoles/download-github-releases.js +0 -50
  713. package/dist/consoles/download-github-releases.js.map +0 -1
  714. package/dist/consoles/gcode-scanner-poc.console.js +0 -52
  715. package/dist/consoles/gcode-scanner-poc.console.js.map +0 -1
  716. package/dist/consoles/launch-http-servers.js +0 -31
  717. package/dist/consoles/launch-http-servers.js.map +0 -1
  718. package/dist/consoles/mock-bambu.server.js +0 -319
  719. package/dist/consoles/mock-bambu.server.js.map +0 -1
  720. package/dist/consoles/mock-camera/default-image.js +0 -13
  721. package/dist/consoles/mock-camera/default-image.js.map +0 -1
  722. package/dist/consoles/mock-camera/mock-camera.server.js +0 -160
  723. package/dist/consoles/mock-camera/mock-camera.server.js.map +0 -1
  724. package/dist/consoles/mock-octoprint.server.js +0 -499
  725. package/dist/consoles/mock-octoprint.server.js.map +0 -1
  726. package/dist/consoles/mock-prusalink.server.js +0 -57
  727. package/dist/consoles/mock-prusalink.server.js.map +0 -1
  728. package/dist/consoles/moonraker-test.console.js +0 -3
  729. package/dist/consoles/moonraker-test.console.js.map +0 -1
  730. package/dist/consoles/utils/api-messages.js +0 -856
  731. package/dist/consoles/utils/api-messages.js.map +0 -1
  732. package/dist/consoles/utils/delayed-memory.storage.js +0 -42
  733. package/dist/consoles/utils/delayed-memory.storage.js.map +0 -1
  734. package/dist/consoles/utils/ws-messages.js +0 -88
  735. package/dist/consoles/utils/ws-messages.js.map +0 -1
  736. package/dist/entities/index.js.map +0 -1
  737. package/dist/services/bambu/mqtt-message.types.js.map +0 -1
  738. package/dist/services/interfaces/auth.service.interface.js.map +0 -1
  739. package/dist/services/interfaces/camera-stream.service.interface.js.map +0 -1
  740. package/dist/services/interfaces/file-upload-tracker.interface.js.map +0 -1
  741. package/dist/services/interfaces/floor.service.interface.js.map +0 -1
  742. package/dist/services/interfaces/jwt.service.interface.js.map +0 -1
  743. package/dist/services/interfaces/permission.service.interface.js.map +0 -1
  744. package/dist/services/interfaces/printer-file.dto.js.map +0 -1
  745. package/dist/services/interfaces/printer-maintenance-log.dto.js.map +0 -1
  746. package/dist/services/interfaces/printer-tag.service.interface.js.map +0 -1
  747. package/dist/services/interfaces/printer.service.interface.js.map +0 -1
  748. package/dist/services/interfaces/refresh-token.service.interface.js.map +0 -1
  749. package/dist/services/interfaces/role-service.interface.js.map +0 -1
  750. package/dist/services/interfaces/settings.service.interface.js.map +0 -1
  751. package/dist/services/interfaces/tag.dto.js.map +0 -1
  752. package/dist/services/interfaces/task.interfaces.js.map +0 -1
  753. package/dist/services/interfaces/user-service.interface.js.map +0 -1
  754. package/dist/services/moonraker/dto/access/access-info.dto.js.map +0 -1
  755. package/dist/services/moonraker/dto/access/access-login-refresh.dto.js.map +0 -1
  756. package/dist/services/moonraker/dto/access/access-login-result.dto.js.map +0 -1
  757. package/dist/services/moonraker/dto/access/access-user-result.dto.js.map +0 -1
  758. package/dist/services/moonraker/dto/access/access-user.dto.js.map +0 -1
  759. package/dist/services/moonraker/dto/database/database-namespace-item.dto.js.map +0 -1
  760. package/dist/services/moonraker/dto/database/database-namespace-list.dto.js.map +0 -1
  761. package/dist/services/moonraker/dto/gcode-help.dto.js.map +0 -1
  762. package/dist/services/moonraker/dto/gcode-store.dto.js.map +0 -1
  763. package/dist/services/moonraker/dto/job-queue/enqueue-job.dto.js.map +0 -1
  764. package/dist/services/moonraker/dto/job-queue/job-queue-status.dto.js.map +0 -1
  765. package/dist/services/moonraker/dto/machine/machine-device-power-device-state.dto.js.map +0 -1
  766. package/dist/services/moonraker/dto/machine/machine-device-power-devices.dto.js.map +0 -1
  767. package/dist/services/moonraker/dto/machine/machine-peripherals-canbus.dto.js.map +0 -1
  768. package/dist/services/moonraker/dto/machine/machine-peripherals-serial.dto.js.map +0 -1
  769. package/dist/services/moonraker/dto/machine/machine-peripherals-usb.dto.js.map +0 -1
  770. package/dist/services/moonraker/dto/machine/machine-peripherals-video.dto.js.map +0 -1
  771. package/dist/services/moonraker/dto/machine/machine-system-info.dto.js.map +0 -1
  772. package/dist/services/moonraker/dto/machine/machine-update-status.dto.js.map +0 -1
  773. package/dist/services/moonraker/dto/machine/machine-wled-strips.dto.js.map +0 -1
  774. package/dist/services/moonraker/dto/notifier-list.dto.js.map +0 -1
  775. package/dist/services/moonraker/dto/objects/bed-mesh.dto.js.map +0 -1
  776. package/dist/services/moonraker/dto/objects/configfile.dto.js.map +0 -1
  777. package/dist/services/moonraker/dto/objects/display-status.dto.js.map +0 -1
  778. package/dist/services/moonraker/dto/objects/extruder.dto.js.map +0 -1
  779. package/dist/services/moonraker/dto/objects/fan.dto.js.map +0 -1
  780. package/dist/services/moonraker/dto/objects/filament-motion-sensor.dto.js.map +0 -1
  781. package/dist/services/moonraker/dto/objects/filament-switch-sensor.dto.js.map +0 -1
  782. package/dist/services/moonraker/dto/objects/gcode-move.dto.js.map +0 -1
  783. package/dist/services/moonraker/dto/objects/gcode.dto.js.map +0 -1
  784. package/dist/services/moonraker/dto/objects/heater-bed.dto.js.map +0 -1
  785. package/dist/services/moonraker/dto/objects/heaters.dto.js.map +0 -1
  786. package/dist/services/moonraker/dto/objects/mcu.dto.js.map +0 -1
  787. package/dist/services/moonraker/dto/objects/motion-report.dto.js.map +0 -1
  788. package/dist/services/moonraker/dto/objects/output-pin.dto.js.map +0 -1
  789. package/dist/services/moonraker/dto/objects/pause-resume.dto.js.map +0 -1
  790. package/dist/services/moonraker/dto/objects/printer-object.dto.js.map +0 -1
  791. package/dist/services/moonraker/dto/objects/printer-object.types.js.map +0 -1
  792. package/dist/services/moonraker/dto/objects/printer-objects-query.dto.js.map +0 -1
  793. package/dist/services/moonraker/dto/objects/stepper-enable.dto.js.map +0 -1
  794. package/dist/services/moonraker/dto/objects/system-stats.dto.js.map +0 -1
  795. package/dist/services/moonraker/dto/objects/temperature-fan.dto.js.map +0 -1
  796. package/dist/services/moonraker/dto/objects/temperature-sensor.dto.js.map +0 -1
  797. package/dist/services/moonraker/dto/objects/toolhead.dto.js.map +0 -1
  798. package/dist/services/moonraker/dto/objects/virtual-sdcard.dto.js.map +0 -1
  799. package/dist/services/moonraker/dto/objects/webhooks.dto.js.map +0 -1
  800. package/dist/services/moonraker/dto/octoprint-compat/api-job.dto.js.map +0 -1
  801. package/dist/services/moonraker/dto/octoprint-compat/api-login.dto.js.map +0 -1
  802. package/dist/services/moonraker/dto/octoprint-compat/api-printer.dto.js.map +0 -1
  803. package/dist/services/moonraker/dto/octoprint-compat/api-profiles.dto.js.map +0 -1
  804. package/dist/services/moonraker/dto/octoprint-compat/api-settings.dto.js.map +0 -1
  805. package/dist/services/moonraker/dto/octoprint-compat/api-version.dto.js.map +0 -1
  806. package/dist/services/moonraker/dto/octoprint-compat/server-version.dto.js.map +0 -1
  807. package/dist/services/moonraker/dto/printer-query-endstops.dto.js.map +0 -1
  808. package/dist/services/moonraker/dto/process-stats.dto.js.map +0 -1
  809. package/dist/services/moonraker/dto/rest/action-result.dto.js.map +0 -1
  810. package/dist/services/moonraker/dto/rest/error.dto.js.map +0 -1
  811. package/dist/services/moonraker/dto/rollover-logs.dto.js.map +0 -1
  812. package/dist/services/moonraker/dto/rpc/json-rpc-error.dto.js.map +0 -1
  813. package/dist/services/moonraker/dto/rpc/json-rpc-request.dto.js.map +0 -1
  814. package/dist/services/moonraker/dto/rpc/json-rpc-response.dto.js.map +0 -1
  815. package/dist/services/moonraker/dto/server/server-config.dto.js.map +0 -1
  816. package/dist/services/moonraker/dto/server-announcements/announcement-action.dto.js.map +0 -1
  817. package/dist/services/moonraker/dto/server-announcements/announcement-entry-id.dto.js.map +0 -1
  818. package/dist/services/moonraker/dto/server-announcements/announcement-feeds.dto.js.map +0 -1
  819. package/dist/services/moonraker/dto/server-announcements/announcement-list.dto.js.map +0 -1
  820. package/dist/services/moonraker/dto/server-files/server-file-directory-action.dto.js.map +0 -1
  821. package/dist/services/moonraker/dto/server-files/server-file-directory-info.dto.js.map +0 -1
  822. package/dist/services/moonraker/dto/server-files/server-file-metadata.dto.js.map +0 -1
  823. package/dist/services/moonraker/dto/server-files/server-file-root.dto.js.map +0 -1
  824. package/dist/services/moonraker/dto/server-files/server-file-thumbnail.dto.js.map +0 -1
  825. package/dist/services/moonraker/dto/server-files/server-file-zip-action.dto.js.map +0 -1
  826. package/dist/services/moonraker/dto/server-files/server-file.dto.js.map +0 -1
  827. package/dist/services/moonraker/dto/server-history/history-job.dto.js.map +0 -1
  828. package/dist/services/moonraker/dto/server-history/history-last-totals.dto.js.map +0 -1
  829. package/dist/services/moonraker/dto/server-history/history-list.dto.js.map +0 -1
  830. package/dist/services/moonraker/dto/server-history/history-totals.dto.js.map +0 -1
  831. package/dist/services/moonraker/dto/server-sensors/sensor-info.dto.js.map +0 -1
  832. package/dist/services/moonraker/dto/server-sensors/sensor-list.dto.js.map +0 -1
  833. package/dist/services/moonraker/dto/server-sensors/sensor-measurements.dto.js.map +0 -1
  834. package/dist/services/moonraker/dto/server-webcams/webcam-item.dto.js.map +0 -1
  835. package/dist/services/moonraker/dto/server-webcams/webcam-list.dto.js.map +0 -1
  836. package/dist/services/moonraker/dto/server-webcams/webcam-test.dto.js.map +0 -1
  837. package/dist/services/moonraker/dto/spoolman/spoolman-active-spool.dto.js.map +0 -1
  838. package/dist/services/moonraker/dto/spoolman/spoolman-proxy-request.dto.js.map +0 -1
  839. package/dist/services/moonraker/dto/spoolman/spoolman-response.dto.js.map +0 -1
  840. package/dist/services/moonraker/dto/spoolman/spoolman-status.dto.js.map +0 -1
  841. package/dist/services/moonraker/dto/sudo-info.dto.js.map +0 -1
  842. package/dist/services/moonraker/dto/sudo-response.dto.js.map +0 -1
  843. package/dist/services/moonraker/dto/temperature-store.dto.js.map +0 -1
  844. package/dist/services/moonraker/dto/websocket/connection-identify-response.dto.js.map +0 -1
  845. package/dist/services/moonraker/dto/websocket/connection-identify.dto.js.map +0 -1
  846. package/dist/services/moonraker/dto/websocket/json-rpc-event.dto.js.map +0 -1
  847. package/dist/services/moonraker/dto/websocket/message.types.js.map +0 -1
  848. package/dist/services/moonraker/dto/websocket/notify-active-spool-set.params.js.map +0 -1
  849. package/dist/services/moonraker/dto/websocket/notify-agent-event.params.js.map +0 -1
  850. package/dist/services/moonraker/dto/websocket/notify-announcement-update.params.js.map +0 -1
  851. package/dist/services/moonraker/dto/websocket/notify-announcement.params.js.map +0 -1
  852. package/dist/services/moonraker/dto/websocket/notify-button-event.params.js.map +0 -1
  853. package/dist/services/moonraker/dto/websocket/notify-history-changed.params.js.map +0 -1
  854. package/dist/services/moonraker/dto/websocket/notify-job-queue-changed.params.js.map +0 -1
  855. package/dist/services/moonraker/dto/websocket/notify-proc-stat-update.params.js.map +0 -1
  856. package/dist/services/moonraker/dto/websocket/notify-sensor-update.params.js.map +0 -1
  857. package/dist/services/moonraker/dto/websocket/notify-service-state-changed.params.js.map +0 -1
  858. package/dist/services/moonraker/dto/websocket/notify-spoolman-status-changed.js.map +0 -1
  859. package/dist/services/moonraker/dto/websocket/notify-sudo-alert.params.js.map +0 -1
  860. package/dist/services/moonraker/dto/websocket/notify-user-change.params.js.map +0 -1
  861. package/dist/services/octoprint/dto/access/user-list.dto.js.map +0 -1
  862. package/dist/services/octoprint/dto/access/user.dto.js.map +0 -1
  863. package/dist/services/octoprint/dto/auth/current-user.dto.js.map +0 -1
  864. package/dist/services/octoprint/dto/auth/login.dto.js.map +0 -1
  865. package/dist/services/octoprint/dto/connection/connection.dto.js.map +0 -1
  866. package/dist/services/octoprint/dto/events/client-authed.dto.js.map +0 -1
  867. package/dist/services/octoprint/dto/events/client-closed.dto.js.map +0 -1
  868. package/dist/services/octoprint/dto/events/client-opened.dto.js.map +0 -1
  869. package/dist/services/octoprint/dto/events/dwelling.dto.js.map +0 -1
  870. package/dist/services/octoprint/dto/events/file-added.dto.js.map +0 -1
  871. package/dist/services/octoprint/dto/events/file-deselected.dto.js.map +0 -1
  872. package/dist/services/octoprint/dto/events/file-removed.dto.js.map +0 -1
  873. package/dist/services/octoprint/dto/events/folder-added.dto.js.map +0 -1
  874. package/dist/services/octoprint/dto/events/home.dto.js.map +0 -1
  875. package/dist/services/octoprint/dto/events/metadata-analysis-finished.dto.js.map +0 -1
  876. package/dist/services/octoprint/dto/events/metadata-analysis-started.dto.js.map +0 -1
  877. package/dist/services/octoprint/dto/events/metadata-statistics-updated.dto.js.map +0 -1
  878. package/dist/services/octoprint/dto/events/position-update.dto.js.map +0 -1
  879. package/dist/services/octoprint/dto/events/print-cancelled.dto.js.map +0 -1
  880. package/dist/services/octoprint/dto/events/print-cancelling.dto.js.map +0 -1
  881. package/dist/services/octoprint/dto/events/print-done.dto.js.map +0 -1
  882. package/dist/services/octoprint/dto/events/print-failed.dto.js.map +0 -1
  883. package/dist/services/octoprint/dto/events/print-paused.dto.js.map +0 -1
  884. package/dist/services/octoprint/dto/events/print-resumed.dto.js.map +0 -1
  885. package/dist/services/octoprint/dto/events/print-started.dto.js.map +0 -1
  886. package/dist/services/octoprint/dto/events/printer-state-changed.dto.js.map +0 -1
  887. package/dist/services/octoprint/dto/events/transfer-done.dto.js.map +0 -1
  888. package/dist/services/octoprint/dto/events/transfer-started.dto.js.map +0 -1
  889. package/dist/services/octoprint/dto/events/updated-files.dto.js.map +0 -1
  890. package/dist/services/octoprint/dto/events/upload.dto.js.map +0 -1
  891. package/dist/services/octoprint/dto/events/user-logged-in.dto.js.map +0 -1
  892. package/dist/services/octoprint/dto/events/z-change.dto.js.map +0 -1
  893. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +0 -1
  894. package/dist/services/octoprint/dto/files/octoprint-file.dto.js.map +0 -1
  895. package/dist/services/octoprint/dto/files/octoprint-files-response.dto.js.map +0 -1
  896. package/dist/services/octoprint/dto/job/job.dto.js.map +0 -1
  897. package/dist/services/octoprint/dto/printer/busy-file.dto.js.map +0 -1
  898. package/dist/services/octoprint/dto/printer/current-printer-state.dto.js.map +0 -1
  899. package/dist/services/octoprint/dto/printer/flags.dto.js.map +0 -1
  900. package/dist/services/octoprint/dto/printer/markings.dto.js.map +0 -1
  901. package/dist/services/octoprint/dto/printer/progress.dto.js.map +0 -1
  902. package/dist/services/octoprint/dto/printer/resends.dto.js.map +0 -1
  903. package/dist/services/octoprint/dto/printer/state.dto.js.map +0 -1
  904. package/dist/services/octoprint/dto/printer/temps.dto.js.map +0 -1
  905. package/dist/services/octoprint/dto/rest/error.dto.js.map +0 -1
  906. package/dist/services/octoprint/dto/server/server.dto.js.map +0 -1
  907. package/dist/services/octoprint/dto/server/version.dto.js.map +0 -1
  908. package/dist/services/octoprint/dto/settings/serial-settings.dto.js.map +0 -1
  909. package/dist/services/octoprint/dto/settings/settings-parts.type.js.map +0 -1
  910. package/dist/services/octoprint/dto/settings/settings.dto.js.map +0 -1
  911. package/dist/services/octoprint/dto/settings/virtual-printer-settings.dto.js.map +0 -1
  912. package/dist/services/octoprint/dto/websocket/connection-message.dto.js.map +0 -1
  913. package/dist/services/octoprint/dto/websocket/current-message.dto.js.map +0 -1
  914. package/dist/services/octoprint/dto/websocket/event-message.dto.js.map +0 -1
  915. package/dist/services/octoprint/dto/websocket/history-message.dto.js.map +0 -1
  916. package/dist/services/octoprint/dto/websocket/plugin-message.dto.js.map +0 -1
  917. package/dist/services/octoprint/dto/websocket/timelapse-message.dto.js.map +0 -1
  918. package/dist/services/orm/base.interface.js.map +0 -1
  919. package/dist/services/prusa-link/dto/file-response.dto.js.map +0 -1
  920. package/dist/services/prusa-link/dto/file.dto.js.map +0 -1
  921. package/dist/services/prusa-link/dto/job-state.dto.js.map +0 -1
  922. package/dist/services/prusa-link/dto/printer-state.dto.js.map +0 -1
  923. package/dist/services/prusa-link/dto/status.dto.js.map +0 -1
  924. package/dist/services/prusa-link/dto/version.dto.js.map +0 -1
  925. package/dist/services/prusa-link/utils/digest-auth.params.js.map +0 -1
  926. package/dist/services/websocket-adapter.interface.js.map +0 -1
  927. package/dist/shared/dtos/socket-login.dto.js.map +0 -1
  928. package/dist/types/express/index.d.js.map +0 -1
  929. package/dist/utils/parsers/parser.types.js.map +0 -1
@@ -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","BadRequestException","validateUniqueFilename","originalname","ext","extname","tempPathWithExt","path","copyFileSync","saveFile","existsSync","unlinkSync","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR"],"mappings":";;;;+BAgBaA;;;eAAAA;;;+BAhBoC;iCACpB;yBACK;8BACW;wCACvB;oCACa;+BACL;+BACC;qCAEK;mCACA;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,MAAM6D,qBAAqB;YAAC;YAAU;YAAQ;SAAU;QACxD,MAAM5D,QAAQ,MAAM,IAAI,CAACN,aAAa,CAACmE,mBAAmB,CAAC/D,KAAKC,KAAK6D,oBAAoB;QAEzF,IAAI,CAAC5D,OAAOqB,QAAQ;YAClB,MAAM,IAAIyC,sCAAmB,CAAC;QAChC;QAEA,IAAI9D,MAAMqB,MAAM,GAAG,GAAG;YACpB,MAAM,IAAIyC,sCAAmB,CAAC;QAChC;QAEA,MAAM1D,OAAOJ,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,CAACP,kBAAkB,CAACsE,sBAAsB,CAAC3D,KAAK4D,YAAY;QAEtE,MAAMC,MAAMC,IAAAA,iBAAO,EAAC9D,KAAK4D,YAAY;QACrC,MAAMG,kBAAkB/D,KAAKgE,IAAI,GAAGH;QAEpC,IAAI;YACFI,IAAAA,oBAAY,EAACjE,KAAKgE,IAAI,EAAED;YAExB,MAAMjD,WAAW,MAAM,IAAI,CAACzB,kBAAkB,CAAC8C,iBAAiB,CAAC4B;YACjE,IAAI,CAAC5E,MAAM,CAACqC,GAAG,CAAC,CAAC,UAAU,EAAExB,KAAK4D,YAAY,EAAE;YAChD,MAAM5B,iBAAiB,MAAM,IAAI,CAACzC,mBAAmB,CAACmC,WAAW,CAACqC;YAClE,MAAM,EAAE7D,QAAQ,EAAED,UAAU,EAAE,GAAG+B;YAEjC,MAAMtB,gBAAgB,MAAM,IAAI,CAACrB,kBAAkB,CAAC6E,QAAQ,CAAClE,MAAMc;YACnE,IAAI,CAAC3B,MAAM,CAACqC,GAAG,CAAC,CAAC,MAAM,EAAExB,KAAK4D,YAAY,CAAC,IAAI,EAAElD,eAAe;YAEhE,MAAM4B,oBAAoBrC,WAAWgB,MAAM,GAAG,IAC1C,MAAM,IAAI,CAAC5B,kBAAkB,CAACkD,cAAc,CAAC7B,eAAeT,cAC5D,EAAE;YAEN,MAAM,IAAI,CAACZ,kBAAkB,CAACmD,YAAY,CAAC9B,eAAeR,UAAUY,UAAUd,KAAK4D,YAAY,EAAEtB;YAEjG3C,IAAIG,IAAI,CAAC;gBACP2B,SAAS;gBACTf;gBACAC,UAAUX,KAAK4D,YAAY;gBAC3B/C,UAAUb,KAAKS,IAAI;gBACnBK;gBACAZ;gBACAuC,gBAAgBxC,WAAWgB,MAAM;YACnC;QACF,SAAU;YACR,IAAIkD,IAAAA,kBAAU,EAACJ,kBAAkB;gBAC/BK,IAAAA,kBAAU,EAACL;YACb;QACF;IACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA5POM,6BAAY,CAACC,QAAQ,GAAG;;QACtBC,IAAAA,0BAAY;QAAIC,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;YAAED,6BAAK,CAACE,QAAQ;SAAC"}
1
+ {"version":3,"file":"file-storage.controller.js","names":[],"sources":["../../src/controllers/file-storage.controller.ts"],"sourcesContent":["import { before, DELETE, GET, POST, route } from \"awilix-express\";\nimport { AppConstants } from \"@/server.constants\";\nimport type { Request, Response } from \"express\";\nimport { authorizeRoles, authenticate } from \"@/middleware/authenticate\";\nimport { ROLES } from \"@/constants/authorization.constants\";\nimport { FileStorageService } from \"@/services/file-storage.service\";\nimport { MulterService } from \"@/services/core/multer.service\";\nimport type { ILoggerFactory } from \"@/handlers/logger-factory\";\nimport { LoggerService } from \"@/handlers/logger\";\nimport { FileAnalysisService } from \"@/services/file-analysis.service\";\nimport { BadRequestException } from \"@/exceptions/runtime.exceptions\";\nimport { copyFileSync, existsSync, unlinkSync } from \"node:fs\";\nimport { extname } from \"node:path\";\n\n@route(AppConstants.apiRoute + \"/file-storage\")\n@before([authenticate(), authorizeRoles([ROLES.ADMIN, ROLES.OPERATOR])])\nexport class FileStorageController {\n private readonly logger: LoggerService;\n\n constructor(\n loggerFactory: ILoggerFactory,\n private readonly fileStorageService: FileStorageService,\n private readonly multerService: MulterService,\n private readonly fileAnalysisService: FileAnalysisService,\n ) {\n this.logger = loggerFactory(FileStorageController.name);\n }\n\n @GET()\n async listFiles(req: Request, res: Response) {\n try {\n const files = await this.fileStorageService.listAllFiles();\n\n res.send({\n files: files.map((file) => {\n const thumbnails = (file.metadata?._thumbnails || []).map((thumb: any) => ({\n index: thumb.index,\n width: thumb.width,\n height: thumb.height,\n format: thumb.format,\n size: thumb.size,\n }));\n return {\n fileStorageId: file.fileStorageId,\n fileName: file.fileName,\n fileFormat: file.fileFormat,\n fileSize: file.fileSize,\n fileHash: file.fileHash,\n createdAt: file.createdAt,\n thumbnails,\n metadata: file.metadata,\n };\n }),\n totalCount: files.length,\n });\n } catch (error) {\n this.logger.error(`Failed to list files: ${error}`);\n res.status(500).send({ error: \"Failed to list files\" });\n }\n }\n\n /**\n * Get file metadata\n * GET /api/file-storage/:fileStorageId\n */\n @GET()\n @route(\"/:fileStorageId\")\n async getFileMetadata(req: Request, res: Response) {\n const { fileStorageId } = req.params as { fileStorageId: string };\n\n try {\n const file = await this.fileStorageService.getFileInfo(fileStorageId);\n\n if (!file) {\n res.status(404).send({ error: \"File not found\" });\n return;\n }\n\n const thumbnails = (file.metadata?._thumbnails || []).map((thumb: any) => ({\n index: thumb.index,\n width: thumb.width,\n height: thumb.height,\n format: thumb.format,\n size: thumb.size,\n }));\n\n res.send({\n fileStorageId: file.fileStorageId,\n fileName: file.fileName,\n fileFormat: file.fileFormat,\n fileSize: file.fileSize,\n fileHash: file.fileHash,\n createdAt: file.createdAt,\n thumbnails,\n metadata: file.metadata,\n });\n } catch (error) {\n this.logger.error(`Failed to get file metadata for ${fileStorageId}: ${error}`);\n res.status(500).send({ error: \"Failed to get file metadata\" });\n }\n }\n\n /**\n * Delete a stored file and its thumbnails\n * DELETE /api/file-storage/:fileStorageId\n */\n @DELETE()\n @route(\"/:fileStorageId\")\n async deleteFile(req: Request, res: Response) {\n const { fileStorageId } = req.params as { fileStorageId: string };\n\n try {\n await this.fileStorageService.deleteFile(fileStorageId);\n\n this.logger.log(`Deleted file ${fileStorageId}`);\n res.send({ message: \"File deleted successfully\", fileStorageId });\n } catch (error) {\n this.logger.error(`Failed to delete file ${fileStorageId}: ${error}`);\n res.status(500).send({ error: \"Failed to delete file\" });\n }\n }\n\n @POST()\n @route(\"/:fileStorageId/analyze\")\n async analyzeFile(req: Request, res: Response) {\n const { fileStorageId } = req.params as { fileStorageId: string };\n\n try {\n const filePath = this.fileStorageService.getFilePath(fileStorageId);\n const fileExists = await this.fileStorageService.fileExists(fileStorageId);\n if (!fileExists) {\n res.status(404).send({ error: \"File not found\" });\n return;\n }\n this.logger.log(`Analyzing file: ${fileStorageId}`);\n\n // Load existing metadata to preserve original filename\n const existingMetadata = await this.fileStorageService.loadMetadata(fileStorageId);\n\n const analysisResult = await this.fileAnalysisService.analyzeFile(filePath);\n const metadata = analysisResult.metadata;\n const thumbnails = analysisResult.thumbnails;\n\n this.logger.log(\n `Analysis complete for ${fileStorageId}: format=${metadata.fileFormat}, layers=${metadata.totalLayers}, time=${metadata.gcodePrintTimeSeconds}s, thumbnails=${thumbnails.length}`,\n );\n\n const fileHash = await this.fileStorageService.calculateFileHash(filePath);\n const originalFileName = existingMetadata?._originalFileName || fileStorageId;\n\n metadata.fileName = originalFileName;\n\n let thumbnailMetadata: any[] = [];\n if (thumbnails.length > 0) {\n thumbnailMetadata = await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails);\n this.logger.log(`Saved ${thumbnailMetadata.length} thumbnails for ${fileStorageId}`);\n }\n\n await this.fileStorageService.saveMetadata(\n fileStorageId,\n metadata,\n fileHash,\n originalFileName,\n thumbnailMetadata,\n );\n\n res.send({\n message: \"File analyzed successfully\",\n fileStorageId,\n metadata,\n thumbnailCount: thumbnails.length,\n });\n } catch (error) {\n this.logger.error(`Failed to analyze file ${fileStorageId}: ${error}`);\n res.status(500).send({ error: `Failed to analyze file: ${error}` });\n }\n }\n\n @GET()\n @route(\"/:fileStorageId/thumbnail/:index\")\n async getThumbnailByIndex(req: Request, res: Response) {\n const { fileStorageId, index } = req.params as { fileStorageId: string; index: string };\n const thumbnailIndex = Number.parseInt(index);\n\n if (Number.isNaN(thumbnailIndex)) {\n res.status(400).send({ error: \"Invalid thumbnail index\" });\n return;\n }\n\n try {\n const thumbnail = await this.fileStorageService.getThumbnail(fileStorageId, thumbnailIndex);\n\n if (!thumbnail) {\n res.status(404).send({ error: \"Thumbnail not found\" });\n return;\n }\n\n // Determine content type from magic bytes\n const isJPG = thumbnail[0] === 0xff && thumbnail[1] === 0xd8;\n const isQOI = thumbnail[0] === 0x71 && thumbnail[1] === 0x6f && thumbnail[2] === 0x69 && thumbnail[3] === 0x66;\n\n // QOI format not supported by browser\n if (isQOI) {\n res.status(404).send({ error: \"Thumbnail format not supported (QOI)\" });\n return;\n }\n\n const mimeType = isJPG ? \"image/jpeg\" : \"image/png\";\n const base64 = thumbnail.toString(\"base64\");\n res.send({\n thumbnailBase64: `data:${mimeType};base64,${base64}`,\n });\n } catch (error) {\n this.logger.error(`Failed to get thumbnail ${thumbnailIndex} for ${fileStorageId}: ${error}`);\n res.status(500).send({ error: \"Failed to get thumbnail\" });\n }\n }\n\n /**\n * Upload a file to storage and analyze it\n * POST /api/file-storage/upload\n */\n @POST()\n @route(\"/upload\")\n async uploadFile(req: Request, res: Response) {\n const acceptedExtensions = [\".gcode\", \".3mf\", \".bgcode\"];\n const files = await this.multerService.multerLoadFileAsync(req, res, acceptedExtensions, true);\n\n if (!files?.length) {\n throw new BadRequestException(\"No file uploaded\");\n }\n\n if (files.length > 1) {\n throw new BadRequestException(\"Only 1 file can be uploaded at a time\");\n }\n\n const file = files[0];\n await this.fileStorageService.validateUniqueFilename(file.originalname);\n\n const ext = extname(file.originalname);\n const tempPathWithExt = file.path + ext;\n\n try {\n copyFileSync(file.path, tempPathWithExt);\n\n const fileHash = await this.fileStorageService.calculateFileHash(tempPathWithExt);\n this.logger.log(`Analyzing ${file.originalname}`);\n const analysisResult = await this.fileAnalysisService.analyzeFile(tempPathWithExt);\n const { metadata, thumbnails } = analysisResult;\n\n const fileStorageId = await this.fileStorageService.saveFile(file, fileHash);\n this.logger.log(`Saved ${file.originalname} as ${fileStorageId}`);\n\n const thumbnailMetadata =\n thumbnails.length > 0 ? await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails) : [];\n\n await this.fileStorageService.saveMetadata(\n fileStorageId,\n metadata,\n fileHash,\n file.originalname,\n thumbnailMetadata,\n );\n\n res.send({\n message: \"File uploaded successfully\",\n fileStorageId,\n fileName: file.originalname,\n fileSize: file.size,\n fileHash,\n metadata,\n thumbnailCount: thumbnails.length,\n });\n } finally {\n if (existsSync(tempPathWithExt)) {\n unlinkSync(tempPathWithExt);\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -1,140 +1,88 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "FirstTimeSetupController", {
6
- enumerable: true,
7
- get: function() {
8
- return FirstTimeSetupController;
9
- }
10
- });
11
- const _awilixexpress = require("awilix-express");
12
- const _serverconstants = require("../server.constants");
13
- const _validators = require("../handlers/validators");
14
- const _settingvalidation = require("./validation/setting.validation");
15
- const _runtimeexceptions = require("../exceptions/runtime.exceptions");
16
- const _authorizationconstants = require("../constants/authorization.constants");
17
- const _settingsstore = require("../state/settings.store");
18
- const _express = require("express");
19
- const _userserviceinterface = require("../services/interfaces/user-service.interface");
20
- const _roleserviceinterface = require("../services/interfaces/role-service.interface");
21
- const _yamlservice = require("../services/core/yaml.service");
22
- const _multerservice = require("../services/core/multer.service");
23
- function _ts_decorate(decorators, target, key, desc) {
24
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
25
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26
- 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;
27
- return c > 3 && r && Object.defineProperty(target, key, r), r;
28
- }
29
- function _ts_metadata(k, v) {
30
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
31
- }
32
- class FirstTimeSetupController {
33
- settingsStore;
34
- roleService;
35
- userService;
36
- yamlService;
37
- multerService;
38
- constructor(settingsStore, roleService, userService, yamlService, multerService){
39
- this.settingsStore = settingsStore;
40
- this.roleService = roleService;
41
- this.userService = userService;
42
- this.yamlService = yamlService;
43
- this.multerService = multerService;
44
- }
45
- async validateWizard(req, res) {
46
- const { rootUsername } = await (0, _validators.validateMiddleware)(req, _settingvalidation.wizardSettingsSchema);
47
- await this.roleService.getSynchronizedRoleByName(_authorizationconstants.ROLES.ADMIN);
48
- if (this.settingsStore.isWizardCompleted()) {
49
- throw new _runtimeexceptions.ForbiddenError("Wizard already completed");
50
- }
51
- const user = await this.userService.findRawByUsername(rootUsername?.toLowerCase());
52
- if (user) {
53
- throw new _runtimeexceptions.BadRequestException("This user already exists");
54
- }
55
- return res.send();
56
- }
57
- async completeWizard(req, res) {
58
- const { loginRequired, registration, rootUsername, rootPassword } = await (0, _validators.validateMiddleware)(req, _settingvalidation.wizardSettingsSchema);
59
- if (this.settingsStore.isWizardCompleted()) {
60
- throw new _runtimeexceptions.ForbiddenError("Wizard already completed");
61
- }
62
- await this.roleService.getSynchronizedRoleByName(_authorizationconstants.ROLES.ADMIN);
63
- const user = await this.userService.findRawByUsername(rootUsername?.toLowerCase());
64
- if (user) {
65
- throw new _runtimeexceptions.BadRequestException("This user already exists");
66
- }
67
- await this.userService.register({
68
- username: rootUsername,
69
- password: rootPassword,
70
- roles: [
71
- _authorizationconstants.ROLES.ADMIN
72
- ],
73
- isRootUser: true,
74
- isVerified: true,
75
- isDemoUser: false,
76
- needsPasswordChange: false
77
- });
78
- await this.settingsStore.setLoginRequired(loginRequired);
79
- await this.settingsStore.setRegistrationEnabled(registration);
80
- await this.settingsStore.setWizardCompleted(_serverconstants.AppConstants.currentWizardVersion);
81
- return res.send();
82
- }
83
- async importYamlFile(req, res) {
84
- if (this.settingsStore.isWizardCompleted()) {
85
- throw new _runtimeexceptions.ForbiddenError("Wizard already completed. Cannot import during first-time setup once wizard is complete.");
86
- }
87
- const files = await this.multerService.multerLoadFileAsync(req, res, [
88
- ".yaml",
89
- ".yml"
90
- ], false);
91
- const firstFile = files[0];
92
- await this.yamlService.importYaml(firstFile.buffer.toString());
93
- return res.send({
94
- success: true
95
- });
96
- }
97
- }
98
- _ts_decorate([
99
- (0, _awilixexpress.POST)(),
100
- (0, _awilixexpress.route)("/validate"),
101
- _ts_metadata("design:type", Function),
102
- _ts_metadata("design:paramtypes", [
103
- typeof _express.Request === "undefined" ? Object : _express.Request,
104
- typeof _express.Response === "undefined" ? Object : _express.Response
105
- ]),
106
- _ts_metadata("design:returntype", Promise)
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorateMetadata.js";
3
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js";
4
+ import { BadRequestException, ForbiddenError } from "../exceptions/runtime.exceptions.js";
5
+ import { validateMiddleware } from "../handlers/validators.js";
6
+ import { AppConstants } from "../server.constants.js";
7
+ import { SettingsStore } from "../state/settings.store.js";
8
+ import { ROLES } from "../constants/authorization.constants.js";
9
+ import { MulterService } from "../services/core/multer.service.js";
10
+ import { wizardSettingsSchema } from "./validation/setting.validation.js";
11
+ import { YamlService } from "../services/core/yaml.service.js";
12
+ import { POST, route } from "awilix-express";
13
+ //#region src/controllers/first-time-setup.controller.ts
14
+ var first_time_setup_controller_exports = /* @__PURE__ */ __exportAll({ FirstTimeSetupController: () => FirstTimeSetupController });
15
+ var _ref, _ref2, _ref3;
16
+ let FirstTimeSetupController = class FirstTimeSetupController {
17
+ constructor(settingsStore, roleService, userService, yamlService, multerService) {
18
+ this.settingsStore = settingsStore;
19
+ this.roleService = roleService;
20
+ this.userService = userService;
21
+ this.yamlService = yamlService;
22
+ this.multerService = multerService;
23
+ }
24
+ async validateWizard(req, res) {
25
+ const { rootUsername } = await validateMiddleware(req, wizardSettingsSchema);
26
+ await this.roleService.getSynchronizedRoleByName(ROLES.ADMIN);
27
+ if (this.settingsStore.isWizardCompleted()) throw new ForbiddenError("Wizard already completed");
28
+ if (await this.userService.findRawByUsername(rootUsername?.toLowerCase())) throw new BadRequestException("This user already exists");
29
+ return res.send();
30
+ }
31
+ async completeWizard(req, res) {
32
+ const { loginRequired, registration, rootUsername, rootPassword } = await validateMiddleware(req, wizardSettingsSchema);
33
+ if (this.settingsStore.isWizardCompleted()) throw new ForbiddenError("Wizard already completed");
34
+ await this.roleService.getSynchronizedRoleByName(ROLES.ADMIN);
35
+ if (await this.userService.findRawByUsername(rootUsername?.toLowerCase())) throw new BadRequestException("This user already exists");
36
+ await this.userService.register({
37
+ username: rootUsername,
38
+ password: rootPassword,
39
+ roles: [ROLES.ADMIN],
40
+ isRootUser: true,
41
+ isVerified: true,
42
+ isDemoUser: false,
43
+ needsPasswordChange: false
44
+ });
45
+ await this.settingsStore.setLoginRequired(loginRequired);
46
+ await this.settingsStore.setRegistrationEnabled(registration);
47
+ await this.settingsStore.setWizardCompleted(AppConstants.currentWizardVersion);
48
+ return res.send();
49
+ }
50
+ async importYamlFile(req, res) {
51
+ if (this.settingsStore.isWizardCompleted()) throw new ForbiddenError("Wizard already completed. Cannot import during first-time setup once wizard is complete.");
52
+ const firstFile = (await this.multerService.multerLoadFileAsync(req, res, [".yaml", ".yml"], false))[0];
53
+ await this.yamlService.importYaml(firstFile.buffer.toString());
54
+ return res.send({ success: true });
55
+ }
56
+ };
57
+ __decorate([
58
+ POST(),
59
+ route("/validate"),
60
+ __decorateMetadata("design:type", Function),
61
+ __decorateMetadata("design:paramtypes", [Object, Object]),
62
+ __decorateMetadata("design:returntype", Promise)
107
63
  ], FirstTimeSetupController.prototype, "validateWizard", null);
108
- _ts_decorate([
109
- (0, _awilixexpress.POST)(),
110
- (0, _awilixexpress.route)("/complete"),
111
- _ts_metadata("design:type", Function),
112
- _ts_metadata("design:paramtypes", [
113
- typeof _express.Request === "undefined" ? Object : _express.Request,
114
- typeof _express.Response === "undefined" ? Object : _express.Response
115
- ]),
116
- _ts_metadata("design:returntype", Promise)
64
+ __decorate([
65
+ POST(),
66
+ route("/complete"),
67
+ __decorateMetadata("design:type", Function),
68
+ __decorateMetadata("design:paramtypes", [Object, Object]),
69
+ __decorateMetadata("design:returntype", Promise)
117
70
  ], FirstTimeSetupController.prototype, "completeWizard", null);
118
- _ts_decorate([
119
- (0, _awilixexpress.POST)(),
120
- (0, _awilixexpress.route)("/yaml-import"),
121
- _ts_metadata("design:type", Function),
122
- _ts_metadata("design:paramtypes", [
123
- typeof _express.Request === "undefined" ? Object : _express.Request,
124
- typeof _express.Response === "undefined" ? Object : _express.Response
125
- ]),
126
- _ts_metadata("design:returntype", Promise)
71
+ __decorate([
72
+ POST(),
73
+ route("/yaml-import"),
74
+ __decorateMetadata("design:type", Function),
75
+ __decorateMetadata("design:paramtypes", [Object, Object]),
76
+ __decorateMetadata("design:returntype", Promise)
127
77
  ], FirstTimeSetupController.prototype, "importYamlFile", null);
128
- FirstTimeSetupController = _ts_decorate([
129
- (0, _awilixexpress.route)(_serverconstants.AppConstants.apiRoute + "/first-time-setup"),
130
- _ts_metadata("design:type", Function),
131
- _ts_metadata("design:paramtypes", [
132
- typeof _settingsstore.SettingsStore === "undefined" ? Object : _settingsstore.SettingsStore,
133
- typeof _roleserviceinterface.IRoleService === "undefined" ? Object : _roleserviceinterface.IRoleService,
134
- typeof _userserviceinterface.IUserService === "undefined" ? Object : _userserviceinterface.IUserService,
135
- typeof _yamlservice.YamlService === "undefined" ? Object : _yamlservice.YamlService,
136
- typeof _multerservice.MulterService === "undefined" ? Object : _multerservice.MulterService
137
- ])
138
- ], FirstTimeSetupController);
78
+ FirstTimeSetupController = __decorate([route(AppConstants.apiRoute + "/first-time-setup"), __decorateMetadata("design:paramtypes", [
79
+ typeof (_ref = typeof SettingsStore !== "undefined" && SettingsStore) === "function" ? _ref : Object,
80
+ Object,
81
+ Object,
82
+ typeof (_ref2 = typeof YamlService !== "undefined" && YamlService) === "function" ? _ref2 : Object,
83
+ typeof (_ref3 = typeof MulterService !== "undefined" && MulterService) === "function" ? _ref3 : Object
84
+ ])], FirstTimeSetupController);
85
+ //#endregion
86
+ export { FirstTimeSetupController, first_time_setup_controller_exports };
139
87
 
140
88
  //# sourceMappingURL=first-time-setup.controller.js.map
@@ -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;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"}
1
+ {"version":3,"file":"first-time-setup.controller.js","names":[],"sources":["../../src/controllers/first-time-setup.controller.ts"],"sourcesContent":["import { POST, route } from \"awilix-express\";\nimport { AppConstants } from \"@/server.constants\";\nimport { validateMiddleware } from \"@/handlers/validators\";\nimport { wizardSettingsSchema } from \"./validation/setting.validation\";\nimport { BadRequestException, ForbiddenError } from \"@/exceptions/runtime.exceptions\";\nimport { ROLES } from \"@/constants/authorization.constants\";\nimport { SettingsStore } from \"@/state/settings.store\";\nimport type { Request, Response } from \"express\";\nimport type { IUserService } from \"@/services/interfaces/user-service.interface\";\nimport type { IRoleService } from \"@/services/interfaces/role-service.interface\";\nimport { YamlService } from \"@/services/core/yaml.service\";\nimport { MulterService } from \"@/services/core/multer.service\";\n\n@route(AppConstants.apiRoute + \"/first-time-setup\")\nexport class FirstTimeSetupController {\n constructor(\n private readonly settingsStore: SettingsStore,\n private readonly roleService: IRoleService,\n private readonly userService: IUserService,\n private readonly yamlService: YamlService,\n private readonly multerService: MulterService,\n ) {}\n\n @POST()\n @route(\"/validate\")\n async validateWizard(req: Request, res: Response) {\n const { rootUsername } = await validateMiddleware(req, wizardSettingsSchema);\n await this.roleService.getSynchronizedRoleByName(ROLES.ADMIN);\n\n if (this.settingsStore.isWizardCompleted()) {\n throw new ForbiddenError(\"Wizard already completed\");\n }\n\n const user = await this.userService.findRawByUsername(rootUsername?.toLowerCase());\n if (user) {\n throw new BadRequestException(\"This user already exists\");\n }\n\n return res.send();\n }\n\n @POST()\n @route(\"/complete\")\n async completeWizard(req: Request, res: Response) {\n const { loginRequired, registration, rootUsername, rootPassword } = await validateMiddleware(\n req,\n wizardSettingsSchema,\n );\n\n if (this.settingsStore.isWizardCompleted()) {\n throw new ForbiddenError(\"Wizard already completed\");\n }\n\n await this.roleService.getSynchronizedRoleByName(ROLES.ADMIN);\n const user = await this.userService.findRawByUsername(rootUsername?.toLowerCase());\n if (user) {\n throw new BadRequestException(\"This user already exists\");\n }\n\n await this.userService.register({\n username: rootUsername,\n password: rootPassword,\n roles: [ROLES.ADMIN],\n isRootUser: true,\n isVerified: true,\n isDemoUser: false,\n needsPasswordChange: false,\n });\n await this.settingsStore.setLoginRequired(loginRequired);\n await this.settingsStore.setRegistrationEnabled(registration);\n await this.settingsStore.setWizardCompleted(AppConstants.currentWizardVersion);\n\n return res.send();\n }\n\n @POST()\n @route(\"/yaml-import\")\n async importYamlFile(req: Request, res: Response) {\n if (this.settingsStore.isWizardCompleted()) {\n throw new ForbiddenError(\n \"Wizard already completed. Cannot import during first-time setup once wizard is complete.\",\n );\n }\n\n const files = await this.multerService.multerLoadFileAsync(req, res, [\".yaml\", \".yml\"], false);\n const firstFile = files[0];\n\n await this.yamlService.importYaml(firstFile.buffer.toString());\n\n return res.send({\n success: true,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAcO,IAAA,2BAAA,MAAM,yBAAyB;CACpC,YACE,eACA,aACA,aACA,aACA,eACA;AALiB,OAAA,gBAAA;AACA,OAAA,cAAA;AACA,OAAA,cAAA;AACA,OAAA,cAAA;AACA,OAAA,gBAAA;;CAGnB,MAEM,eAAe,KAAc,KAAe;EAChD,MAAM,EAAE,iBAAiB,MAAM,mBAAmB,KAAK,qBAAqB;AAC5E,QAAM,KAAK,YAAY,0BAA0B,MAAM,MAAM;AAE7D,MAAI,KAAK,cAAc,mBAAmB,CACxC,OAAM,IAAI,eAAe,2BAA2B;AAItD,MAAI,MADe,KAAK,YAAY,kBAAkB,cAAc,aAAa,CAAC,CAEhF,OAAM,IAAI,oBAAoB,2BAA2B;AAG3D,SAAO,IAAI,MAAM;;CAGnB,MAEM,eAAe,KAAc,KAAe;EAChD,MAAM,EAAE,eAAe,cAAc,cAAc,iBAAiB,MAAM,mBACxE,KACA,qBACD;AAED,MAAI,KAAK,cAAc,mBAAmB,CACxC,OAAM,IAAI,eAAe,2BAA2B;AAGtD,QAAM,KAAK,YAAY,0BAA0B,MAAM,MAAM;AAE7D,MAAI,MADe,KAAK,YAAY,kBAAkB,cAAc,aAAa,CAAC,CAEhF,OAAM,IAAI,oBAAoB,2BAA2B;AAG3D,QAAM,KAAK,YAAY,SAAS;GAC9B,UAAU;GACV,UAAU;GACV,OAAO,CAAC,MAAM,MAAM;GACpB,YAAY;GACZ,YAAY;GACZ,YAAY;GACZ,qBAAqB;GACtB,CAAC;AACF,QAAM,KAAK,cAAc,iBAAiB,cAAc;AACxD,QAAM,KAAK,cAAc,uBAAuB,aAAa;AAC7D,QAAM,KAAK,cAAc,mBAAmB,aAAa,qBAAqB;AAE9E,SAAO,IAAI,MAAM;;CAGnB,MAEM,eAAe,KAAc,KAAe;AAChD,MAAI,KAAK,cAAc,mBAAmB,CACxC,OAAM,IAAI,eACR,2FACD;EAIH,MAAM,aAAY,MADE,KAAK,cAAc,oBAAoB,KAAK,KAAK,CAAC,SAAS,OAAO,EAAE,MAAM,EACtE;AAExB,QAAM,KAAK,YAAY,WAAW,UAAU,OAAO,UAAU,CAAC;AAE9D,SAAO,IAAI,KAAK,EACd,SAAS,MACV,CAAC;;;;CApEH,MAAM;CACN,MAAM,YAAY;;;;;;CAiBlB,MAAM;CACN,MAAM,YAAY;;;;;;CAiClB,MAAM;CACN,MAAM,eAAe;;;;;uCA/DvB,MAAM,aAAa,WAAW,oBAAoB,EAAA,mBAAA,qBAAA"}
@@ -1,186 +1,122 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "FloorController", {
6
- enumerable: true,
7
- get: function() {
8
- return FloorController;
9
- }
10
- });
11
- const _express = require("express");
12
- const _floorstore = require("../state/floor.store");
13
- const _authorizationconstants = require("../constants/authorization.constants");
14
- const _serverconstants = require("../server.constants");
15
- const _awilixexpress = require("awilix-express");
16
- const _authenticate = require("../middleware/authenticate");
17
- const _paramconvertermiddleware = require("../middleware/param-converter.middleware");
18
- function _ts_decorate(decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- 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;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- }
24
- function _ts_metadata(k, v) {
25
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
- }
27
- class FloorController {
28
- floorStore;
29
- constructor(floorStore){
30
- this.floorStore = floorStore;
31
- }
32
- async list(req, res) {
33
- const floors = await this.floorStore.listCache();
34
- res.send(floors);
35
- }
36
- async get(req, res) {
37
- const floor = await this.floorStore.getFloor(req.local.id);
38
- res.send(floor);
39
- }
40
- async delete(req, res) {
41
- await this.floorStore.delete(req.local.id);
42
- res.send();
43
- }
44
- async create(req, res) {
45
- const floor = await this.floorStore.create(req.body);
46
- res.send(floor);
47
- }
48
- async updateName(req, res) {
49
- const floor = await this.floorStore.updateName(req.local.id, req.body.name);
50
- res.send(floor);
51
- }
52
- async updateFloorOrder(req, res) {
53
- const floor = await this.floorStore.updateFloorOrder(req.local.id, req.body.order);
54
- res.send(floor);
55
- }
56
- async addPrinterToFloor(req, res) {
57
- const floor = await this.floorStore.addOrUpdatePrinter(req.local.id, req.body);
58
- res.send(floor);
59
- }
60
- async removePrinterFromFloor(req, res) {
61
- const floor = await this.floorStore.removePrinter(req.local.id, req.body.printerId);
62
- res.send(floor);
63
- }
64
- }
65
- _ts_decorate([
66
- (0, _awilixexpress.GET)(),
67
- (0, _awilixexpress.route)("/"),
68
- (0, _awilixexpress.before)([
69
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.List)
70
- ]),
71
- _ts_metadata("design:type", Function),
72
- _ts_metadata("design:paramtypes", [
73
- typeof _express.Request === "undefined" ? Object : _express.Request,
74
- typeof _express.Response === "undefined" ? Object : _express.Response
75
- ]),
76
- _ts_metadata("design:returntype", Promise)
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorateMetadata.js";
3
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js";
4
+ import { AppConstants } from "../server.constants.js";
5
+ import { PERMS } from "../constants/authorization.constants.js";
6
+ import { authenticate, permission } from "../middleware/authenticate.js";
7
+ import { ParamId } from "../middleware/param-converter.middleware.js";
8
+ import { FloorStore } from "../state/floor.store.js";
9
+ import { DELETE, GET, PATCH, POST, before, route } from "awilix-express";
10
+ //#region src/controllers/floor.controller.ts
11
+ var floor_controller_exports = /* @__PURE__ */ __exportAll({ FloorController: () => FloorController });
12
+ var _ref;
13
+ let FloorController = class FloorController {
14
+ constructor(floorStore) {
15
+ this.floorStore = floorStore;
16
+ }
17
+ async list(req, res) {
18
+ const floors = await this.floorStore.listCache();
19
+ res.send(floors);
20
+ }
21
+ async get(req, res) {
22
+ const floor = await this.floorStore.getFloor(req.local.id);
23
+ res.send(floor);
24
+ }
25
+ async delete(req, res) {
26
+ await this.floorStore.delete(req.local.id);
27
+ res.send();
28
+ }
29
+ async create(req, res) {
30
+ const floor = await this.floorStore.create(req.body);
31
+ res.send(floor);
32
+ }
33
+ async updateName(req, res) {
34
+ const floor = await this.floorStore.updateName(req.local.id, req.body.name);
35
+ res.send(floor);
36
+ }
37
+ async updateFloorOrder(req, res) {
38
+ const floor = await this.floorStore.updateFloorOrder(req.local.id, req.body.order);
39
+ res.send(floor);
40
+ }
41
+ async addPrinterToFloor(req, res) {
42
+ const floor = await this.floorStore.addOrUpdatePrinter(req.local.id, req.body);
43
+ res.send(floor);
44
+ }
45
+ async removePrinterFromFloor(req, res) {
46
+ const floor = await this.floorStore.removePrinter(req.local.id, req.body.printerId);
47
+ res.send(floor);
48
+ }
49
+ };
50
+ __decorate([
51
+ GET(),
52
+ route("/"),
53
+ before([permission(PERMS.Floors.List)]),
54
+ __decorateMetadata("design:type", Function),
55
+ __decorateMetadata("design:paramtypes", [Object, Object]),
56
+ __decorateMetadata("design:returntype", Promise)
77
57
  ], FloorController.prototype, "list", null);
78
- _ts_decorate([
79
- (0, _awilixexpress.GET)(),
80
- (0, _awilixexpress.route)("/:id"),
81
- (0, _awilixexpress.before)([
82
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Get),
83
- (0, _paramconvertermiddleware.ParamId)("id")
84
- ]),
85
- _ts_metadata("design:type", Function),
86
- _ts_metadata("design:paramtypes", [
87
- typeof _express.Request === "undefined" ? Object : _express.Request,
88
- typeof _express.Response === "undefined" ? Object : _express.Response
89
- ]),
90
- _ts_metadata("design:returntype", Promise)
58
+ __decorate([
59
+ GET(),
60
+ route("/:id"),
61
+ before([permission(PERMS.Floors.Get), ParamId("id")]),
62
+ __decorateMetadata("design:type", Function),
63
+ __decorateMetadata("design:paramtypes", [Object, Object]),
64
+ __decorateMetadata("design:returntype", Promise)
91
65
  ], FloorController.prototype, "get", null);
92
- _ts_decorate([
93
- (0, _awilixexpress.DELETE)(),
94
- (0, _awilixexpress.route)("/:id"),
95
- (0, _awilixexpress.before)([
96
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Delete),
97
- (0, _paramconvertermiddleware.ParamId)("id")
98
- ]),
99
- _ts_metadata("design:type", Function),
100
- _ts_metadata("design:paramtypes", [
101
- typeof _express.Request === "undefined" ? Object : _express.Request,
102
- typeof _express.Response === "undefined" ? Object : _express.Response
103
- ]),
104
- _ts_metadata("design:returntype", Promise)
66
+ __decorate([
67
+ DELETE(),
68
+ route("/:id"),
69
+ before([permission(PERMS.Floors.Delete), ParamId("id")]),
70
+ __decorateMetadata("design:type", Function),
71
+ __decorateMetadata("design:paramtypes", [Object, Object]),
72
+ __decorateMetadata("design:returntype", Promise)
105
73
  ], FloorController.prototype, "delete", null);
106
- _ts_decorate([
107
- (0, _awilixexpress.POST)(),
108
- (0, _awilixexpress.route)("/"),
109
- (0, _awilixexpress.before)([
110
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Create)
111
- ]),
112
- _ts_metadata("design:type", Function),
113
- _ts_metadata("design:paramtypes", [
114
- typeof _express.Request === "undefined" ? Object : _express.Request,
115
- typeof _express.Response === "undefined" ? Object : _express.Response
116
- ]),
117
- _ts_metadata("design:returntype", Promise)
74
+ __decorate([
75
+ POST(),
76
+ route("/"),
77
+ before([permission(PERMS.Floors.Create)]),
78
+ __decorateMetadata("design:type", Function),
79
+ __decorateMetadata("design:paramtypes", [Object, Object]),
80
+ __decorateMetadata("design:returntype", Promise)
118
81
  ], FloorController.prototype, "create", null);
119
- _ts_decorate([
120
- (0, _awilixexpress.PATCH)(),
121
- (0, _awilixexpress.route)("/:id/name"),
122
- (0, _awilixexpress.before)([
123
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
124
- (0, _paramconvertermiddleware.ParamId)("id")
125
- ]),
126
- _ts_metadata("design:type", Function),
127
- _ts_metadata("design:paramtypes", [
128
- typeof _express.Request === "undefined" ? Object : _express.Request,
129
- typeof _express.Response === "undefined" ? Object : _express.Response
130
- ]),
131
- _ts_metadata("design:returntype", Promise)
82
+ __decorate([
83
+ PATCH(),
84
+ route("/:id/name"),
85
+ before([permission(PERMS.Floors.Update), ParamId("id")]),
86
+ __decorateMetadata("design:type", Function),
87
+ __decorateMetadata("design:paramtypes", [Object, Object]),
88
+ __decorateMetadata("design:returntype", Promise)
132
89
  ], FloorController.prototype, "updateName", null);
133
- _ts_decorate([
134
- (0, _awilixexpress.PATCH)(),
135
- (0, _awilixexpress.route)("/:id/floor-order"),
136
- (0, _awilixexpress.before)([
137
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
138
- (0, _paramconvertermiddleware.ParamId)("id")
139
- ]),
140
- _ts_metadata("design:type", Function),
141
- _ts_metadata("design:paramtypes", [
142
- typeof _express.Request === "undefined" ? Object : _express.Request,
143
- typeof _express.Response === "undefined" ? Object : _express.Response
144
- ]),
145
- _ts_metadata("design:returntype", Promise)
90
+ __decorate([
91
+ PATCH(),
92
+ route("/:id/floor-order"),
93
+ before([permission(PERMS.Floors.Update), ParamId("id")]),
94
+ __decorateMetadata("design:type", Function),
95
+ __decorateMetadata("design:paramtypes", [Object, Object]),
96
+ __decorateMetadata("design:returntype", Promise)
146
97
  ], FloorController.prototype, "updateFloorOrder", null);
147
- _ts_decorate([
148
- (0, _awilixexpress.POST)(),
149
- (0, _awilixexpress.route)("/:id/printer"),
150
- (0, _awilixexpress.before)([
151
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
152
- (0, _paramconvertermiddleware.ParamId)("id")
153
- ]),
154
- _ts_metadata("design:type", Function),
155
- _ts_metadata("design:paramtypes", [
156
- typeof _express.Request === "undefined" ? Object : _express.Request,
157
- typeof _express.Response === "undefined" ? Object : _express.Response
158
- ]),
159
- _ts_metadata("design:returntype", Promise)
98
+ __decorate([
99
+ POST(),
100
+ route("/:id/printer"),
101
+ before([permission(PERMS.Floors.Update), ParamId("id")]),
102
+ __decorateMetadata("design:type", Function),
103
+ __decorateMetadata("design:paramtypes", [Object, Object]),
104
+ __decorateMetadata("design:returntype", Promise)
160
105
  ], FloorController.prototype, "addPrinterToFloor", null);
161
- _ts_decorate([
162
- (0, _awilixexpress.DELETE)(),
163
- (0, _awilixexpress.route)("/:id/printer"),
164
- (0, _awilixexpress.before)([
165
- (0, _authenticate.permission)(_authorizationconstants.PERMS.Floors.Update),
166
- (0, _paramconvertermiddleware.ParamId)("id")
167
- ]),
168
- _ts_metadata("design:type", Function),
169
- _ts_metadata("design:paramtypes", [
170
- typeof _express.Request === "undefined" ? Object : _express.Request,
171
- typeof _express.Response === "undefined" ? Object : _express.Response
172
- ]),
173
- _ts_metadata("design:returntype", Promise)
106
+ __decorate([
107
+ DELETE(),
108
+ route("/:id/printer"),
109
+ before([permission(PERMS.Floors.Update), ParamId("id")]),
110
+ __decorateMetadata("design:type", Function),
111
+ __decorateMetadata("design:paramtypes", [Object, Object]),
112
+ __decorateMetadata("design:returntype", Promise)
174
113
  ], FloorController.prototype, "removePrinterFromFloor", null);
175
- FloorController = _ts_decorate([
176
- (0, _awilixexpress.route)(_serverconstants.AppConstants.apiRoute + "/floor"),
177
- (0, _awilixexpress.before)([
178
- (0, _authenticate.authenticate)()
179
- ]),
180
- _ts_metadata("design:type", Function),
181
- _ts_metadata("design:paramtypes", [
182
- typeof _floorstore.FloorStore === "undefined" ? Object : _floorstore.FloorStore
183
- ])
114
+ FloorController = __decorate([
115
+ route(AppConstants.apiRoute + "/floor"),
116
+ before([authenticate()]),
117
+ __decorateMetadata("design:paramtypes", [typeof (_ref = typeof FloorStore !== "undefined" && FloorStore) === "function" ? _ref : Object])
184
118
  ], FloorController);
119
+ //#endregion
120
+ export { FloorController, floor_controller_exports };
185
121
 
186
122
  //# sourceMappingURL=floor.controller.js.map