@fdm-monster/server 1.8.2 → 1.9.0-rc1

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 (460) hide show
  1. package/.env.template +5 -3
  2. package/.gitattributes +4 -2
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.9.1.cjs +948 -0
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +25 -26
  7. package/RELEASE_NOTES.MD +69 -7
  8. package/biome.json +33 -0
  9. package/dist/consoles/download-github-releases.js.map +1 -1
  10. package/dist/consoles/launch-http-servers.js +31 -0
  11. package/dist/consoles/launch-http-servers.js.map +1 -0
  12. package/dist/consoles/mock-octoprint.server.js +291 -0
  13. package/dist/consoles/mock-octoprint.server.js.map +1 -0
  14. package/dist/consoles/mock-prusalink.server.js +57 -0
  15. package/dist/consoles/mock-prusalink.server.js.map +1 -0
  16. package/dist/consoles/utils/api-messages.js +856 -0
  17. package/dist/consoles/utils/api-messages.js.map +1 -0
  18. package/dist/consoles/utils/delayed-memory.storage.js +42 -0
  19. package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
  20. package/dist/consoles/utils/ws-messages.js +88 -0
  21. package/dist/consoles/utils/ws-messages.js.map +1 -0
  22. package/dist/constants/event.constants.js +11 -19
  23. package/dist/constants/event.constants.js.map +1 -1
  24. package/dist/constants/server-settings.constants.js +6 -11
  25. package/dist/constants/server-settings.constants.js.map +1 -1
  26. package/dist/container.js +15 -24
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.tokens.js +4 -5
  29. package/dist/container.tokens.js.map +1 -1
  30. package/dist/controllers/auth.controller.js +114 -24
  31. package/dist/controllers/auth.controller.js.map +1 -1
  32. package/dist/controllers/batch-call.controller.js +95 -24
  33. package/dist/controllers/batch-call.controller.js.map +1 -1
  34. package/dist/controllers/camera-stream.controller.js +16 -12
  35. package/dist/controllers/camera-stream.controller.js.map +1 -1
  36. package/dist/controllers/custom-gcode.controller.js +116 -40
  37. package/dist/controllers/custom-gcode.controller.js.map +1 -1
  38. package/dist/controllers/dto/update-client-dist.dto.js +0 -21
  39. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
  40. package/dist/controllers/first-time-setup.controller.js +54 -18
  41. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  42. package/dist/controllers/floor.controller.js +154 -43
  43. package/dist/controllers/floor.controller.js.map +1 -1
  44. package/dist/controllers/metrics.controller.js +56 -0
  45. package/dist/controllers/metrics.controller.js.map +1 -0
  46. package/dist/controllers/print-completion.controller.js +81 -18
  47. package/dist/controllers/print-completion.controller.js.map +1 -1
  48. package/dist/controllers/printer-files.controller.js +61 -50
  49. package/dist/controllers/printer-files.controller.js.map +1 -1
  50. package/dist/controllers/printer-group.controller.js +123 -33
  51. package/dist/controllers/printer-group.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +76 -29
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/printer.controller.js +62 -197
  55. package/dist/controllers/printer.controller.js.map +1 -1
  56. package/dist/controllers/server-private.controller.js +153 -39
  57. package/dist/controllers/server-private.controller.js.map +1 -1
  58. package/dist/controllers/server-public.controller.js +79 -84
  59. package/dist/controllers/server-public.controller.js.map +1 -1
  60. package/dist/controllers/settings.controller.js +222 -79
  61. package/dist/controllers/settings.controller.js.map +1 -1
  62. package/dist/controllers/user.controller.js +67 -57
  63. package/dist/controllers/user.controller.js.map +1 -1
  64. package/dist/controllers/validation/auth-controller.validation.js +6 -5
  65. package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
  66. package/dist/controllers/validation/batch-controller.validation.js +17 -18
  67. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  68. package/dist/controllers/validation/generic.validation.js +8 -3
  69. package/dist/controllers/validation/generic.validation.js.map +1 -1
  70. package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
  71. package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
  72. package/dist/controllers/validation/printer-controller.validation.js +31 -50
  73. package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
  74. package/dist/controllers/validation/printer-files-controller.validation.js +16 -15
  75. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  76. package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
  77. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
  78. package/dist/controllers/validation/server-private.validation.js +17 -0
  79. package/dist/controllers/validation/server-private.validation.js.map +1 -0
  80. package/dist/controllers/validation/setting.validation.js +28 -10
  81. package/dist/controllers/validation/setting.validation.js.map +1 -1
  82. package/dist/controllers/validation/user-controller.validation.js +44 -13
  83. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  84. package/dist/data-source.js +10 -6
  85. package/dist/data-source.js.map +1 -1
  86. package/dist/entities/camera-stream.entity.js +2 -3
  87. package/dist/entities/camera-stream.entity.js.map +1 -1
  88. package/dist/entities/custom-gcode.entity.js +1 -2
  89. package/dist/entities/custom-gcode.entity.js.map +1 -1
  90. package/dist/entities/floor-position.entity.js.map +1 -1
  91. package/dist/entities/floor.entity.js +1 -2
  92. package/dist/entities/floor.entity.js.map +1 -1
  93. package/dist/entities/group.entity.js +6 -2
  94. package/dist/entities/group.entity.js.map +1 -1
  95. package/dist/entities/permission.entity.js +1 -2
  96. package/dist/entities/permission.entity.js.map +1 -1
  97. package/dist/entities/print-completion.entity.js +1 -2
  98. package/dist/entities/print-completion.entity.js.map +1 -1
  99. package/dist/entities/printer-group.entity.js +6 -2
  100. package/dist/entities/printer-group.entity.js.map +1 -1
  101. package/dist/entities/printer.entity.js +22 -4
  102. package/dist/entities/printer.entity.js.map +1 -1
  103. package/dist/entities/refresh-token.entity.js +1 -2
  104. package/dist/entities/refresh-token.entity.js.map +1 -1
  105. package/dist/entities/role.entity.js +1 -2
  106. package/dist/entities/role.entity.js.map +1 -1
  107. package/dist/entities/settings.entity.js +1 -2
  108. package/dist/entities/settings.entity.js.map +1 -1
  109. package/dist/entities/user-role.entity.js +1 -2
  110. package/dist/entities/user-role.entity.js.map +1 -1
  111. package/dist/entities/user.entity.js +1 -2
  112. package/dist/entities/user.entity.js.map +1 -1
  113. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  114. package/dist/handlers/logger.js +131 -36
  115. package/dist/handlers/logger.js.map +1 -1
  116. package/dist/handlers/validators.js +7 -113
  117. package/dist/handlers/validators.js.map +1 -1
  118. package/dist/index.js.map +1 -1
  119. package/dist/middleware/authenticate.js +11 -22
  120. package/dist/middleware/authenticate.js.map +1 -1
  121. package/dist/middleware/database.js.map +1 -1
  122. package/dist/middleware/demo.middleware.js +4 -17
  123. package/dist/middleware/demo.middleware.js.map +1 -1
  124. package/dist/middleware/exception.filter.js +23 -23
  125. package/dist/middleware/exception.filter.js.map +1 -1
  126. package/dist/middleware/global.middleware.js +4 -4
  127. package/dist/middleware/global.middleware.js.map +1 -1
  128. package/dist/middleware/param-converter.middleware.js +81 -0
  129. package/dist/middleware/param-converter.middleware.js.map +1 -0
  130. package/dist/middleware/passport.js +3 -5
  131. package/dist/middleware/passport.js.map +1 -1
  132. package/dist/middleware/printer-resolver.js +37 -0
  133. package/dist/middleware/printer-resolver.js.map +1 -0
  134. package/dist/middleware/printer.js +22 -10
  135. package/dist/middleware/printer.js.map +1 -1
  136. package/dist/middleware/socketio.middleware.js +27 -0
  137. package/dist/middleware/socketio.middleware.js.map +1 -0
  138. package/dist/migrations/1706829146617-InitSqlite.js +1 -1
  139. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  140. package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
  141. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  142. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
  143. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  144. package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
  145. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  146. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
  147. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
  148. package/dist/models/Auth/Permission.js.map +1 -1
  149. package/dist/models/Auth/RefreshToken.js +1 -1
  150. package/dist/models/Auth/RefreshToken.js.map +1 -1
  151. package/dist/models/Auth/Role.js.map +1 -1
  152. package/dist/models/Auth/User.js.map +1 -1
  153. package/dist/models/CameraStream.js +20 -0
  154. package/dist/models/CameraStream.js.map +1 -1
  155. package/dist/models/CustomGcode.js.map +1 -1
  156. package/dist/models/Floor.js.map +1 -1
  157. package/dist/models/FloorPrinter.js +10 -1
  158. package/dist/models/FloorPrinter.js.map +1 -1
  159. package/dist/models/PrintCompletion.js.map +1 -1
  160. package/dist/models/Printer.js +12 -5
  161. package/dist/models/Printer.js.map +1 -1
  162. package/dist/models/Settings.js +5 -42
  163. package/dist/models/Settings.js.map +1 -1
  164. package/dist/models/index.js +0 -4
  165. package/dist/models/index.js.map +1 -1
  166. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
  167. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
  168. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
  169. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
  170. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
  171. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
  172. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
  173. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
  174. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
  175. package/dist/server.constants.js +7 -4
  176. package/dist/server.constants.js.map +1 -1
  177. package/dist/server.core.js +29 -2
  178. package/dist/server.core.js.map +1 -1
  179. package/dist/server.env.js +13 -8
  180. package/dist/server.env.js.map +1 -1
  181. package/dist/server.host.js +24 -31
  182. package/dist/server.host.js.map +1 -1
  183. package/dist/services/authentication/auth.service.js +15 -20
  184. package/dist/services/authentication/auth.service.js.map +1 -1
  185. package/dist/services/authentication/jwt.service.js +1 -1
  186. package/dist/services/authentication/jwt.service.js.map +1 -1
  187. package/dist/services/core/batch-call.service.js +23 -25
  188. package/dist/services/core/batch-call.service.js.map +1 -1
  189. package/dist/services/core/client-bundle.service.js +78 -136
  190. package/dist/services/core/client-bundle.service.js.map +1 -1
  191. package/dist/services/core/config.service.js.map +1 -1
  192. package/dist/services/core/cradle.service.js +21 -0
  193. package/dist/services/core/cradle.service.js.map +1 -0
  194. package/dist/services/core/github.service.js +2 -2
  195. package/dist/services/core/github.service.js.map +1 -1
  196. package/dist/services/core/http-client.factory.js +40 -0
  197. package/dist/services/core/http-client.factory.js.map +1 -0
  198. package/dist/services/core/logs-manager.service.js +7 -6
  199. package/dist/services/core/logs-manager.service.js.map +1 -1
  200. package/dist/services/core/monsterpi.service.js +1 -1
  201. package/dist/services/core/monsterpi.service.js.map +1 -1
  202. package/dist/services/core/multer.service.js +79 -28
  203. package/dist/services/core/multer.service.js.map +1 -1
  204. package/dist/services/core/server-release.service.js +14 -8
  205. package/dist/services/core/server-release.service.js.map +1 -1
  206. package/dist/services/core/yaml.service.js +16 -17
  207. package/dist/services/core/yaml.service.js.map +1 -1
  208. package/dist/services/interfaces/camera-stream.dto.js +4 -34
  209. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  210. package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
  211. package/dist/services/interfaces/file-upload-tracker.interface.js +6 -0
  212. package/dist/services/interfaces/file-upload-tracker.interface.js.map +1 -0
  213. package/dist/services/interfaces/floor.dto.js +5 -47
  214. package/dist/services/interfaces/floor.dto.js.map +1 -1
  215. package/dist/services/interfaces/login.dto.js +2 -0
  216. package/dist/services/interfaces/login.dto.js.map +1 -1
  217. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  218. package/dist/services/interfaces/printer-group.dto.js +0 -14
  219. package/dist/services/interfaces/printer-group.dto.js.map +1 -1
  220. package/dist/services/interfaces/printer.dto.js +11 -5
  221. package/dist/services/interfaces/printer.dto.js.map +1 -1
  222. package/dist/services/interfaces/settings.dto.js.map +1 -1
  223. package/dist/services/interfaces/task.interfaces.js +6 -0
  224. package/dist/services/interfaces/task.interfaces.js.map +1 -0
  225. package/dist/services/mongoose/camera-stream.service.js +17 -15
  226. package/dist/services/mongoose/camera-stream.service.js.map +1 -1
  227. package/dist/services/mongoose/custom-gcode.service.js +4 -2
  228. package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
  229. package/dist/services/mongoose/floor.service.js +37 -30
  230. package/dist/services/mongoose/floor.service.js.map +1 -1
  231. package/dist/services/mongoose/permission.service.js +1 -1
  232. package/dist/services/mongoose/permission.service.js.map +1 -1
  233. package/dist/services/mongoose/print-completion.service.js +2 -2
  234. package/dist/services/mongoose/print-completion.service.js.map +1 -1
  235. package/dist/services/mongoose/print-completion.shared.js +2 -2
  236. package/dist/services/mongoose/print-completion.shared.js.map +1 -1
  237. package/dist/services/mongoose/printer.service.js +40 -45
  238. package/dist/services/mongoose/printer.service.js.map +1 -1
  239. package/dist/services/mongoose/refresh-token.service.js +5 -8
  240. package/dist/services/mongoose/refresh-token.service.js.map +1 -1
  241. package/dist/services/mongoose/role.service.js +14 -5
  242. package/dist/services/mongoose/role.service.js.map +1 -1
  243. package/dist/services/mongoose/settings.service.js +35 -62
  244. package/dist/services/mongoose/settings.service.js.map +1 -1
  245. package/dist/services/mongoose/user.service.js +8 -7
  246. package/dist/services/mongoose/user.service.js.map +1 -1
  247. package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
  248. package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
  249. package/dist/services/moonraker/moonraker-websocket.adapter.js +108 -96
  250. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  251. package/dist/services/moonraker/moonraker.client.js +212 -167
  252. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  253. package/dist/services/moonraker.api.js +3 -5
  254. package/dist/services/moonraker.api.js.map +1 -1
  255. package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
  256. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  257. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
  258. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  259. package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
  260. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  261. package/dist/services/octoprint/octoprint-api.routes.js +0 -98
  262. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  263. package/dist/services/octoprint/octoprint-websocket.adapter.js +72 -72
  264. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  265. package/dist/services/octoprint/octoprint.client.js +87 -343
  266. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  267. package/dist/services/octoprint/utils/octoprint-http-client.builder.js +31 -0
  268. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -0
  269. package/dist/services/octoprint.api.js +14 -18
  270. package/dist/services/octoprint.api.js.map +1 -1
  271. package/dist/services/orm/base.service.js +11 -12
  272. package/dist/services/orm/base.service.js.map +1 -1
  273. package/dist/services/orm/camera-stream.service.js +5 -1
  274. package/dist/services/orm/camera-stream.service.js.map +1 -1
  275. package/dist/services/orm/custom-gcode.service.js +2 -2
  276. package/dist/services/orm/custom-gcode.service.js.map +1 -1
  277. package/dist/services/orm/floor-position.service.js +0 -5
  278. package/dist/services/orm/floor-position.service.js.map +1 -1
  279. package/dist/services/orm/floor.service.js +43 -39
  280. package/dist/services/orm/floor.service.js.map +1 -1
  281. package/dist/services/orm/permission.service.js +3 -4
  282. package/dist/services/orm/permission.service.js.map +1 -1
  283. package/dist/services/orm/print-completion.service.js +2 -4
  284. package/dist/services/orm/print-completion.service.js.map +1 -1
  285. package/dist/services/orm/printer-group.service.js +2 -7
  286. package/dist/services/orm/printer-group.service.js.map +1 -1
  287. package/dist/services/orm/printer.service.js +29 -39
  288. package/dist/services/orm/printer.service.js.map +1 -1
  289. package/dist/services/orm/refresh-token.service.js +5 -11
  290. package/dist/services/orm/refresh-token.service.js.map +1 -1
  291. package/dist/services/orm/role.service.js +11 -10
  292. package/dist/services/orm/role.service.js.map +1 -1
  293. package/dist/services/orm/settings.service.js +37 -133
  294. package/dist/services/orm/settings.service.js.map +1 -1
  295. package/dist/services/orm/user.service.js +13 -15
  296. package/dist/services/orm/user.service.js.map +1 -1
  297. package/dist/services/printer-api.factory.js +9 -6
  298. package/dist/services/printer-api.factory.js.map +1 -1
  299. package/dist/services/printer-api.interface.js +13 -6
  300. package/dist/services/printer-api.interface.js.map +1 -1
  301. package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
  302. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
  303. package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
  304. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
  305. package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
  306. package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
  307. package/dist/services/prusa-link/dto/file.dto.js +6 -0
  308. package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
  309. package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
  310. package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
  311. package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
  312. package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
  313. package/dist/services/prusa-link/dto/status.dto.js +6 -0
  314. package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
  315. package/dist/services/prusa-link/dto/version.dto.js +6 -0
  316. package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
  317. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
  318. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
  319. package/dist/services/prusa-link/prusa-link.api.js +233 -0
  320. package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
  321. package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
  322. package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
  323. package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
  324. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
  325. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
  326. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
  327. package/dist/services/socket.factory.js +9 -6
  328. package/dist/services/socket.factory.js.map +1 -1
  329. package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
  330. package/dist/services/task-manager.service.js.map +1 -0
  331. package/dist/services/validators/camera-service.validation.js +19 -0
  332. package/dist/services/validators/camera-service.validation.js.map +1 -0
  333. package/dist/services/validators/floor-service.validation.js +47 -36
  334. package/dist/services/validators/floor-service.validation.js.map +1 -1
  335. package/dist/services/validators/print-completion-service.validation.js +22 -9
  336. package/dist/services/validators/print-completion-service.validation.js.map +1 -1
  337. package/dist/services/validators/printer-service.validation.js +112 -29
  338. package/dist/services/validators/printer-service.validation.js.map +1 -1
  339. package/dist/services/validators/settings-service.validation.js +78 -66
  340. package/dist/services/validators/settings-service.validation.js.map +1 -1
  341. package/dist/services/validators/user-service.validation.js +17 -16
  342. package/dist/services/validators/user-service.validation.js.map +1 -1
  343. package/dist/services/validators/yaml-service.validation.js +94 -51
  344. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  345. package/dist/shared/default-http-client.builder.js +94 -0
  346. package/dist/shared/default-http-client.builder.js.map +1 -0
  347. package/dist/shared/load-controllers.js +20 -0
  348. package/dist/shared/load-controllers.js.map +1 -0
  349. package/dist/shared/runtime-settings.migration.js +46 -0
  350. package/dist/shared/runtime-settings.migration.js.map +1 -0
  351. package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
  352. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  353. package/dist/shared/websocket.adapter.js +4 -5
  354. package/dist/shared/websocket.adapter.js.map +1 -1
  355. package/dist/state/file-upload-tracker.cache.js +33 -42
  356. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  357. package/dist/state/file.cache.js +1 -1
  358. package/dist/state/file.cache.js.map +1 -1
  359. package/dist/state/floor.store.js +6 -6
  360. package/dist/state/floor.store.js.map +1 -1
  361. package/dist/state/printer-events.cache.js +21 -22
  362. package/dist/state/printer-events.cache.js.map +1 -1
  363. package/dist/state/printer-files.store.js +6 -8
  364. package/dist/state/printer-files.store.js.map +1 -1
  365. package/dist/state/printer-socket.store.js +27 -50
  366. package/dist/state/printer-socket.store.js.map +1 -1
  367. package/dist/state/printer-thumbnail.cache.js +5 -9
  368. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  369. package/dist/state/printer.cache.js +14 -12
  370. package/dist/state/printer.cache.js.map +1 -1
  371. package/dist/state/settings.store.js +78 -51
  372. package/dist/state/settings.store.js.map +1 -1
  373. package/dist/state/socket-io.gateway.js +39 -36
  374. package/dist/state/socket-io.gateway.js.map +1 -1
  375. package/dist/state/test-printer-socket.store.js +20 -15
  376. package/dist/state/test-printer-socket.store.js.map +1 -1
  377. package/dist/state/validation/create-test-printer.validation.js +13 -10
  378. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  379. package/dist/task.presets.js.map +1 -1
  380. package/dist/tasks/boot.task.js +14 -19
  381. package/dist/tasks/boot.task.js.map +1 -1
  382. package/dist/tasks/client-bundle.task.js +1 -3
  383. package/dist/tasks/client-bundle.task.js.map +1 -1
  384. package/dist/tasks/print-completion.socketio.task.js +27 -28
  385. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  386. package/dist/tasks/printer-file-clean.task.js +6 -10
  387. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  388. package/dist/tasks/printer-websocket-restore.task.js +4 -15
  389. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  390. package/dist/tasks/printer-websocket.task.js +2 -14
  391. package/dist/tasks/printer-websocket.task.js.map +1 -1
  392. package/dist/tasks/socketio.task.js +8 -35
  393. package/dist/tasks/socketio.task.js.map +1 -1
  394. package/dist/tasks/software-update.task.js +1 -1
  395. package/dist/tasks/software-update.task.js.map +1 -1
  396. package/dist/tasks.js +3 -3
  397. package/dist/tasks.js.map +1 -1
  398. package/dist/utils/array.util.js.map +1 -1
  399. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  400. package/dist/utils/env.utils.js +0 -2
  401. package/dist/utils/env.utils.js.map +1 -1
  402. package/dist/utils/normalize-url.js +6 -3
  403. package/dist/utils/normalize-url.js.map +1 -1
  404. package/dist/utils/pretty-print.utils.js +1 -1
  405. package/dist/utils/pretty-print.utils.js.map +1 -1
  406. package/dist/utils/printer-type.utils.js.map +1 -1
  407. package/dist/utils/time.utils.js +7 -17
  408. package/dist/utils/time.utils.js.map +1 -1
  409. package/dist/utils/url.utils.js +11 -14
  410. package/dist/utils/url.utils.js.map +1 -1
  411. package/package.json +53 -55
  412. package/tsconfig.json +2 -1
  413. package/.yarn/releases/yarn-4.6.0.cjs +0 -934
  414. package/dist/consoles/check-ports.js +0 -170
  415. package/dist/consoles/check-ports.js.map +0 -1
  416. package/dist/consoles/sqlite-torm.js +0 -31
  417. package/dist/consoles/sqlite-torm.js.map +0 -1
  418. package/dist/consoles/upload-test.js +0 -52
  419. package/dist/consoles/upload-test.js.map +0 -1
  420. package/dist/controllers/plugin-firmware-update.controller.js +0 -236
  421. package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
  422. package/dist/entities/base.entity.js +0 -29
  423. package/dist/entities/base.entity.js.map +0 -1
  424. package/dist/entities/printer-file.entity.js +0 -140
  425. package/dist/entities/printer-file.entity.js.map +0 -1
  426. package/dist/handlers/cache-manager.js +0 -18
  427. package/dist/handlers/cache-manager.js.map +0 -1
  428. package/dist/models/PrinterFile.js +0 -44
  429. package/dist/models/PrinterFile.js.map +0 -1
  430. package/dist/services/core/task-manager.service.js.map +0 -1
  431. package/dist/services/octoprint/plugin-base.service.js +0 -101
  432. package/dist/services/octoprint/plugin-base.service.js.map +0 -1
  433. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
  434. package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
  435. package/dist/services/octoprint/plugin-repository.cache.js +0 -45
  436. package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
  437. package/dist/utils/benchmark.util.js +0 -39
  438. package/dist/utils/benchmark.util.js.map +0 -1
  439. package/dist/utils/is-docker.js +0 -40
  440. package/dist/utils/is-docker.js.map +0 -1
  441. package/dist/utils/metric.utils.js +0 -35
  442. package/dist/utils/metric.utils.js.map +0 -1
  443. package/requests/moonraker/api_job.http +0 -5
  444. package/requests/moonraker/api_printer.http +0 -5
  445. package/requests/moonraker/api_settings.http +0 -5
  446. package/requests/moonraker/printer_info.http +0 -5
  447. package/requests/moonraker/printer_objects_list.http +0 -6
  448. package/requests/moonraker/printer_objects_pause_resume.http +0 -6
  449. package/requests/moonraker/printer_objects_print_stats.http +0 -6
  450. package/requests/moonraker/printer_objects_webhooks.http +0 -6
  451. package/requests/moonraker/server_info.http +0 -5
  452. package/requests/octoprint/octoprint-api-printer-current.http +0 -7
  453. package/requests/octoprint/octoprint-pluginmanager-plugins.http +0 -7
  454. package/requests/printer-file/get-partial-file-moonraker.http +0 -5
  455. package/requests/printer-file/get-thumbnails.http +0 -5
  456. package/requests/printer-file/reload-printer-thumbnails.http +0 -10
  457. package/requests/printer-file/testfile.gcode +0 -5665
  458. package/requests/printer-file/upload-file.http +0 -11
  459. package/requests/printer-file/upload-slicer-file.http +0 -11
  460. package/requests/printers/list.http +0 -5
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "MetricsController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return MetricsController;
9
+ }
10
+ });
11
+ const _awilixexpress = require("awilix-express");
12
+ const _promclient = require("prom-client");
13
+ const _express = require("express");
14
+ const _configservice = require("../services/core/config.service");
15
+ const _serverconstants = require("../server.constants");
16
+ function _ts_decorate(decorators, target, key, desc) {
17
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19
+ 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;
20
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
21
+ }
22
+ function _ts_metadata(k, v) {
23
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
24
+ }
25
+ class MetricsController {
26
+ configService;
27
+ constructor(configService){
28
+ this.configService = configService;
29
+ }
30
+ async getMetrics(req, res) {
31
+ if (this.configService.get(_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS) !== "true") {
32
+ return res.status(404).send("Metrics disabled");
33
+ }
34
+ res.setHeader("Content-Type", _promclient.register.contentType);
35
+ res.end(await _promclient.register.metrics());
36
+ }
37
+ }
38
+ _ts_decorate([
39
+ (0, _awilixexpress.GET)(),
40
+ (0, _awilixexpress.route)(""),
41
+ _ts_metadata("design:type", Function),
42
+ _ts_metadata("design:paramtypes", [
43
+ typeof _express.Request === "undefined" ? Object : _express.Request,
44
+ typeof _express.Response === "undefined" ? Object : _express.Response
45
+ ]),
46
+ _ts_metadata("design:returntype", Promise)
47
+ ], MetricsController.prototype, "getMetrics", null);
48
+ MetricsController = _ts_decorate([
49
+ (0, _awilixexpress.route)("/metrics"),
50
+ _ts_metadata("design:type", Function),
51
+ _ts_metadata("design:paramtypes", [
52
+ typeof _configservice.IConfigService === "undefined" ? Object : _configservice.IConfigService
53
+ ])
54
+ ], MetricsController);
55
+
56
+ //# sourceMappingURL=metrics.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/metrics.controller.ts"],"names":["MetricsController","constructor","configService","getMetrics","req","res","get","AppConstants","ENABLE_PROMETHEUS_METRICS","status","send","setHeader","register","contentType","end","metrics"],"mappings":";;;;+BAOaA;;;eAAAA;;;+BAPc;4BACF;yBACS;+BACH;iCACF;;;;;;;;;;AAGtB,MAAMA;;IACXC,YAAY,AAAiBC,aAA6B,CAAE;aAA/BA,gBAAAA;IAC7B;IAEA,MAEMC,WAAWC,GAAY,EAAEC,GAAa,EAAE;QAC5C,IAAI,IAAI,CAACH,aAAa,CAACI,GAAG,CAASC,6BAAY,CAACC,yBAAyB,MAAM,QAAQ;YACrF,OAAOH,IAAII,MAAM,CAAC,KAAKC,IAAI,CAAC;QAC9B;QACAL,IAAIM,SAAS,CAAC,gBAAgBC,oBAAQ,CAACC,WAAW;QAClDR,IAAIS,GAAG,CAAC,MAAMF,oBAAQ,CAACG,OAAO;IAChC;AACF"}
@@ -2,18 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- PrintCompletionController: function() {
5
+ Object.defineProperty(exports, "PrintCompletionController", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return PrintCompletionController;
14
- },
15
- default: function() {
16
- return _default;
17
9
  }
18
10
  });
19
11
  const _authenticate = require("../middleware/authenticate");
@@ -21,10 +13,23 @@ const _awilixexpress = require("awilix-express");
21
13
  const _serverconstants = require("../server.constants");
22
14
  const _authorizationconstants = require("../constants/authorization.constants");
23
15
  const _validators = require("../handlers/validators");
16
+ const _printcompletionsocketiotask = require("../tasks/print-completion.socketio.task");
17
+ const _express = require("express");
18
+ const _printcompletioninterface = require("../services/interfaces/print-completion.interface");
19
+ const _printercompletioncontrollervalidation = require("./validation/printer-completion-controller.validation");
20
+ function _ts_decorate(decorators, target, key, desc) {
21
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
23
+ 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;
24
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
25
+ }
26
+ function _ts_metadata(k, v) {
27
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
28
+ }
24
29
  class PrintCompletionController {
25
30
  printCompletionService;
26
31
  printCompletionSocketIoTask;
27
- constructor({ printCompletionService, printCompletionSocketIoTask }){
32
+ constructor(printCompletionService, printCompletionSocketIoTask){
28
33
  this.printCompletionService = printCompletionService;
29
34
  this.printCompletionSocketIoTask = printCompletionSocketIoTask;
30
35
  }
@@ -37,9 +42,7 @@ class PrintCompletionController {
37
42
  res.send(contexts);
38
43
  }
39
44
  async findCorrelatedEntries(req, res) {
40
- const { correlationId } = await (0, _validators.validateInput)(req.params, {
41
- correlationId: "required|string"
42
- });
45
+ const { correlationId } = await (0, _validators.validateInput)(req.params, _printercompletioncontrollervalidation.findPrinterCompletionSchema);
43
46
  const result = await this.printCompletionService.findPrintCompletion(correlationId);
44
47
  res.send(result);
45
48
  }
@@ -48,8 +51,68 @@ class PrintCompletionController {
48
51
  res.send(completions);
49
52
  }
50
53
  }
51
- const _default = (0, _awilixexpress.createController)(PrintCompletionController).prefix(_serverconstants.AppConstants.apiRoute + "/print-completion").before([
52
- (0, _authenticate.authenticate)()
53
- ]).get("/", "list", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrintCompletion.List)).get("/test", "test", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrintCompletion.List)).get("/contexts", "contexts", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrintCompletion.List)).get("/:correlationId", "findCorrelatedEntries", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrintCompletion.Default));
54
+ _ts_decorate([
55
+ (0, _awilixexpress.GET)(),
56
+ (0, _awilixexpress.route)("/test"),
57
+ (0, _awilixexpress.before)([
58
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.PrintCompletion.List)
59
+ ]),
60
+ _ts_metadata("design:type", Function),
61
+ _ts_metadata("design:paramtypes", [
62
+ typeof _express.Request === "undefined" ? Object : _express.Request,
63
+ typeof _express.Response === "undefined" ? Object : _express.Response
64
+ ]),
65
+ _ts_metadata("design:returntype", Promise)
66
+ ], PrintCompletionController.prototype, "test", null);
67
+ _ts_decorate([
68
+ (0, _awilixexpress.GET)(),
69
+ (0, _awilixexpress.route)("/contexts"),
70
+ (0, _awilixexpress.before)([
71
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.PrintCompletion.List)
72
+ ]),
73
+ _ts_metadata("design:type", Function),
74
+ _ts_metadata("design:paramtypes", [
75
+ typeof _express.Request === "undefined" ? Object : _express.Request,
76
+ typeof _express.Response === "undefined" ? Object : _express.Response
77
+ ]),
78
+ _ts_metadata("design:returntype", void 0)
79
+ ], PrintCompletionController.prototype, "contexts", null);
80
+ _ts_decorate([
81
+ (0, _awilixexpress.GET)(),
82
+ (0, _awilixexpress.route)("/:correlationId"),
83
+ (0, _awilixexpress.before)([
84
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.PrintCompletion.Default)
85
+ ]),
86
+ _ts_metadata("design:type", Function),
87
+ _ts_metadata("design:paramtypes", [
88
+ typeof _express.Request === "undefined" ? Object : _express.Request,
89
+ typeof _express.Response === "undefined" ? Object : _express.Response
90
+ ]),
91
+ _ts_metadata("design:returntype", Promise)
92
+ ], PrintCompletionController.prototype, "findCorrelatedEntries", null);
93
+ _ts_decorate([
94
+ (0, _awilixexpress.GET)(),
95
+ (0, _awilixexpress.route)("/"),
96
+ (0, _awilixexpress.before)([
97
+ (0, _authenticate.permission)(_authorizationconstants.PERMS.PrintCompletion.List)
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)
105
+ ], PrintCompletionController.prototype, "list", null);
106
+ PrintCompletionController = _ts_decorate([
107
+ (0, _awilixexpress.route)(_serverconstants.AppConstants.apiRoute + "/print-completion"),
108
+ (0, _awilixexpress.before)([
109
+ (0, _authenticate.authenticate)()
110
+ ]),
111
+ _ts_metadata("design:type", Function),
112
+ _ts_metadata("design:paramtypes", [
113
+ typeof _printcompletioninterface.IPrintCompletionService === "undefined" ? Object : _printcompletioninterface.IPrintCompletionService,
114
+ typeof _printcompletionsocketiotask.PrintCompletionSocketIoTask === "undefined" ? Object : _printcompletionsocketiotask.PrintCompletionSocketIoTask
115
+ ])
116
+ ], PrintCompletionController);
54
117
 
55
118
  //# sourceMappingURL=print-completion.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/print-completion.controller.ts"],"names":["PrintCompletionController","printCompletionService","printCompletionSocketIoTask","constructor","test","req","res","result","loadPrintContexts","send","contexts","findCorrelatedEntries","correlationId","validateInput","params","findPrintCompletion","list","completions","listGroupByPrinterStatus","createController","prefix","AppConstants","apiRoute","before","authenticate","get","withPermission","PERMS","PrintCompletion","List","Default"],"mappings":";;;;;;;;;;;IASaA,yBAAyB;eAAzBA;;IAwCb,OAMkG;eANlG;;;8BAjD6C;+BACZ;iCACJ;wCACP;4BACQ;AAKvB,MAAMA;IACHC,uBAAgD;IAChDC,4BAAyD;IAEjEC,YAAY,EACVF,sBAAsB,EACtBC,2BAA2B,EAI5B,CAAE;QACD,IAAI,CAACD,sBAAsB,GAAGA;QAC9B,IAAI,CAACC,2BAA2B,GAAGA;IACrC;IAKA,MAAME,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,SAAS,MAAM,IAAI,CAACN,sBAAsB,CAACO,iBAAiB;QAClEF,IAAIG,IAAI,CAACF;IACX;IAEAG,SAASL,GAAY,EAAEC,GAAa,EAAE;QACpC,MAAMI,WAAW,IAAI,CAACR,2BAA2B,CAACQ,QAAQ;QAC1DJ,IAAIG,IAAI,CAACC;IACX;IAEA,MAAMC,sBAAsBN,GAAY,EAAEC,GAAa,EAAE;QACvD,MAAM,EAAEM,aAAa,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACR,IAAIS,MAAM,EAAE;YAAEF,eAAe;QAAkB;QAC7F,MAAML,SAAS,MAAM,IAAI,CAACN,sBAAsB,CAACc,mBAAmB,CAACH;QACrEN,IAAIG,IAAI,CAACF;IACX;IAEA,MAAMS,KAAKX,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMW,cAAc,MAAM,IAAI,CAAChB,sBAAsB,CAACiB,wBAAwB;QAC9EZ,IAAIG,IAAI,CAACQ;IACX;AACF;MAEA,WAAeE,IAAAA,+BAAgB,EAACnB,2BAC7BoB,MAAM,CAACC,6BAAY,CAACC,QAAQ,GAAG,qBAC/BC,MAAM,CAAC;IAACC,IAAAA,0BAAY;CAAG,EACvBC,GAAG,CAAC,KAAK,QAAQC,IAAAA,4BAAc,EAACC,6BAAK,CAACC,eAAe,CAACC,IAAI,GAC1DJ,GAAG,CAAC,SAAS,QAAQC,IAAAA,4BAAc,EAACC,6BAAK,CAACC,eAAe,CAACC,IAAI,GAC9DJ,GAAG,CAAC,aAAa,YAAYC,IAAAA,4BAAc,EAACC,6BAAK,CAACC,eAAe,CAACC,IAAI,GACtEJ,GAAG,CAAC,mBAAmB,yBAAyBC,IAAAA,4BAAc,EAACC,6BAAK,CAACC,eAAe,CAACE,OAAO"}
1
+ {"version":3,"sources":["../../src/controllers/print-completion.controller.ts"],"names":["PrintCompletionController","constructor","printCompletionService","printCompletionSocketIoTask","test","req","res","result","loadPrintContexts","send","contexts","findCorrelatedEntries","correlationId","validateInput","params","findPrinterCompletionSchema","findPrintCompletion","list","completions","listGroupByPrinterStatus","permission","PERMS","PrintCompletion","List","Default","AppConstants","apiRoute","authenticate"],"mappings":";;;;+BAYaA;;;eAAAA;;;8BAZ4B;+BACN;iCACN;wCACP;4BACQ;6CACc;yBACV;0CACM;uDACI;;;;;;;;;;AAIrC,MAAMA;;;IACXC,YACE,AAAiBC,sBAA+C,EAChE,AAAiBC,2BAAwD,CACzE;aAFiBD,yBAAAA;aACAC,8BAAAA;IAChB;IAKH,MAGMC,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,SAAS,MAAM,IAAI,CAACL,sBAAsB,CAACM,iBAAiB;QAClEF,IAAIG,IAAI,CAACF;IACX;IAKAG,SAASL,GAAY,EAAEC,GAAa,EAAE;QACpC,MAAMI,WAAW,IAAI,CAACP,2BAA2B,CAACO,QAAQ;QAC1DJ,IAAIG,IAAI,CAACC;IACX;IAEA,MAGMC,sBAAsBN,GAAY,EAAEC,GAAa,EAAE;QACvD,MAAM,EAAEM,aAAa,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACR,IAAIS,MAAM,EAAEC,kEAA2B;QACrF,MAAMR,SAAS,MAAM,IAAI,CAACL,sBAAsB,CAACc,mBAAmB,CAACJ;QACrEN,IAAIG,IAAI,CAACF;IACX;IAEA,MAGMU,KAAKZ,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMY,cAAc,MAAM,IAAI,CAAChB,sBAAsB,CAACiB,wBAAwB;QAC9Eb,IAAIG,IAAI,CAACS;IACX;AACF;;;;;QA9BWE,IAAAA,wBAAU,EAACC,6BAAK,CAACC,eAAe,CAACC,IAAI;;;;;;;;;;;;;QAQrCH,IAAAA,wBAAU,EAACC,6BAAK,CAACC,eAAe,CAACC,IAAI;;;;;;;;;;;;;QAQrCH,IAAAA,wBAAU,EAACC,6BAAK,CAACC,eAAe,CAACE,OAAO;;;;;;;;;;;;;QASxCJ,IAAAA,wBAAU,EAACC,6BAAK,CAACC,eAAe,CAACC,IAAI;;;;;;;;;;8BAtCzCE,6BAAY,CAACC,QAAQ,GAAG;;QACtBC,IAAAA,0BAAY"}
@@ -16,9 +16,18 @@ const _printerfilescontrollervalidation = require("./validation/printer-files-co
16
16
  const _runtimeexceptions = require("../exceptions/runtime.exceptions");
17
17
  const _printer = require("../middleware/printer");
18
18
  const _authorizationconstants = require("../constants/authorization.constants");
19
+ const _printerfilesstore = require("../state/printer-files.store");
20
+ const _settingsstore = require("../state/settings.store");
21
+ const _multerservice = require("../services/core/multer.service");
22
+ const _printerfilecleantask = require("../tasks/printer-file-clean.task");
23
+ const _loggerfactory = require("../handlers/logger-factory");
19
24
  const _express = require("express");
25
+ const _printerapiinterface = require("../services/printer-api.interface");
26
+ const _printerthumbnailcache = require("../state/printer-thumbnail.cache");
20
27
  const _node = require("@sentry/node");
21
28
  const _errorutils = require("../utils/error.utils");
29
+ const _logindto = require("../services/interfaces/login.dto");
30
+ const _printerresolver = require("../middleware/printer-resolver");
22
31
  function _ts_decorate(decorators, target, key, desc) {
23
32
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
24
33
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -31,28 +40,22 @@ function _ts_metadata(k, v) {
31
40
  class PrinterFilesController {
32
41
  printerApi;
33
42
  printerLogin;
34
- printerThumbnailCache;
35
43
  printerFilesStore;
44
+ printerFileCleanTask;
36
45
  settingsStore;
37
- batchCallService;
38
46
  multerService;
39
- printerFileCleanTask;
47
+ printerThumbnailCache;
40
48
  logger;
41
- constructor({ printerApi, printerLogin, printerFilesStore, batchCallService, printerFileCleanTask, settingsStore, loggerFactory, multerService, printerThumbnailCache }){
49
+ constructor(loggerFactory, printerApi, printerLogin, printerFilesStore, printerFileCleanTask, settingsStore, multerService, printerThumbnailCache){
42
50
  this.printerApi = printerApi;
43
51
  this.printerLogin = printerLogin;
44
52
  this.printerFilesStore = printerFilesStore;
45
- this.settingsStore = settingsStore;
46
53
  this.printerFileCleanTask = printerFileCleanTask;
47
- this.batchCallService = batchCallService;
54
+ this.settingsStore = settingsStore;
48
55
  this.multerService = multerService;
49
56
  this.printerThumbnailCache = printerThumbnailCache;
50
57
  this.logger = loggerFactory(PrinterFilesController.name);
51
58
  }
52
- getTrackedUploads(req, res) {
53
- const sessions = this.multerService.getSessions();
54
- res.send(sessions);
55
- }
56
59
  async purgeIndexedFiles(req, res) {
57
60
  await this.printerFilesStore.purgeFiles();
58
61
  res.send();
@@ -62,13 +65,13 @@ class PrinterFilesController {
62
65
  res.send(thumbnails);
63
66
  }
64
67
  async getFiles(req, res) {
65
- const { currentPrinterId } = (0, _validators.getScopedPrinter)(req);
68
+ const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
66
69
  this.logger.log("Refreshing file storage (eager load)");
67
70
  const files = await this.printerFilesStore.loadFiles(currentPrinterId);
68
71
  res.send(files);
69
72
  }
70
73
  async reloadThumbnail(req, res) {
71
- const { filePath } = await (0, _validators.validateInput)(req.body, _printerfilescontrollervalidation.startPrintFileRules);
74
+ const { filePath } = await (0, _validators.validateInput)(req.body, _printerfilescontrollervalidation.startPrintFileSchema);
72
75
  try {
73
76
  if (this.settingsStore.isThumbnailSupportEnabled()) {
74
77
  await this.printerThumbnailCache.loadPrinterThumbnailRemote(this.printerLogin, req.params.id, filePath);
@@ -80,7 +83,7 @@ class PrinterFilesController {
80
83
  res.send();
81
84
  }
82
85
  async startPrintFile(req, res) {
83
- const { filePath } = await (0, _validators.validateInput)(req.body, _printerfilescontrollervalidation.startPrintFileRules);
86
+ const { filePath } = await (0, _validators.validateInput)(req.body, _printerfilescontrollervalidation.startPrintFileSchema);
84
87
  const encodedFilePath = encodeURIComponent(filePath);
85
88
  await this.printerApi.startPrint(encodedFilePath);
86
89
  try {
@@ -94,12 +97,12 @@ class PrinterFilesController {
94
97
  res.send();
95
98
  }
96
99
  async getFilesCache(req, res) {
97
- const { currentPrinter } = (0, _validators.getScopedPrinter)(req);
100
+ const { currentPrinter } = (0, _printerresolver.getScopedPrinter)(req);
98
101
  res.send(this.printerFilesStore.getFiles(currentPrinter.id));
99
102
  }
100
103
  async downloadFile(req, res) {
101
104
  this.logger.log(`Downloading file ${req.params.path}`);
102
- const { path } = await (0, _validators.validateInput)(req.params, _printerfilescontrollervalidation.downloadFileRules);
105
+ const { path } = await (0, _validators.validateInput)(req.params, _printerfilescontrollervalidation.downloadFileSchema);
103
106
  const encodedFilePath = encodeURIComponent(path);
104
107
  const response = await this.printerApi.downloadFile(encodedFilePath);
105
108
  res.setHeader("Content-Type", response.headers["content-type"]);
@@ -111,15 +114,15 @@ class PrinterFilesController {
111
114
  response.data.pipe(res);
112
115
  }
113
116
  async deleteFileOrFolder(req, res) {
114
- const { currentPrinterId } = (0, _validators.getScopedPrinter)(req);
115
- const { path } = await (0, _validators.validateInput)(req.query, _printerfilescontrollervalidation.getFileRules);
117
+ const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
118
+ const { path } = await (0, _validators.validateInput)(req.query, _printerfilescontrollervalidation.getFileSchema);
116
119
  const encodedFilePath = encodeURIComponent(path);
117
120
  const result = await this.printerApi.deleteFile(encodedFilePath);
118
121
  await this.printerFilesStore.deleteFile(currentPrinterId, path);
119
122
  res.send(result);
120
123
  }
121
124
  async clearPrinterFiles(req, res) {
122
- const { currentPrinterId } = (0, _validators.getScopedPrinter)(req);
125
+ const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
123
126
  const failedFiles = [];
124
127
  const succeededFiles = [];
125
128
  const nonRecursiveFiles = await this.printerApi.getFiles();
@@ -139,12 +142,12 @@ class PrinterFilesController {
139
142
  });
140
143
  }
141
144
  async getPrinterThumbnail(req, res) {
142
- const { currentPrinterId } = (0, _validators.getScopedPrinter)(req);
145
+ const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
143
146
  const printerThumbnail = await this.printerThumbnailCache.getValue(currentPrinterId.toString());
144
147
  res.send(printerThumbnail);
145
148
  }
146
149
  async uploadPrinterFile(req, res) {
147
- const { currentPrinterId } = (0, _validators.getScopedPrinter)(req);
150
+ const { currentPrinterId } = (0, _printerresolver.getScopedPrinter)(req);
148
151
  const files = await this.multerService.multerLoadFileAsync(req, res, _serverconstants.AppConstants.defaultAcceptedGcodeExtensions, true);
149
152
  if (!files?.length) {
150
153
  throw new _runtimeexceptions.ValidationException({
@@ -156,6 +159,21 @@ class PrinterFilesController {
156
159
  error: "Only 1 .gcode file can be uploaded at a time"
157
160
  });
158
161
  }
162
+ const fileCleanEnabled = this.settingsStore.isPreUploadFileCleanEnabled();
163
+ if (fileCleanEnabled) {
164
+ await this.printerFileCleanTask.cleanPrinterFiles(currentPrinterId);
165
+ }
166
+ const uploadedFile = files[0];
167
+ const token = this.multerService.startTrackingSession(uploadedFile, currentPrinterId);
168
+ await this.printerApi.uploadFile(uploadedFile, token).catch((e)=>{
169
+ try {
170
+ this.multerService.clearUploadedFile(uploadedFile);
171
+ } catch (e) {
172
+ this.logger.error(`Could not remove uploaded file from temporary storage ${(0, _errorutils.errorSummary)(e)}`);
173
+ }
174
+ throw e;
175
+ });
176
+ await this.printerFilesStore.loadFiles(currentPrinterId);
159
177
  try {
160
178
  if (this.settingsStore.isThumbnailSupportEnabled()) {
161
179
  await this.printerThumbnailCache.loadPrinterThumbnailLocal(currentPrinterId, files[0].path);
@@ -164,32 +182,18 @@ class PrinterFilesController {
164
182
  this.logger.error(`Unexpected error processing thumbnail ${(0, _errorutils.errorSummary)(e)}`);
165
183
  (0, _node.captureException)(e);
166
184
  }
167
- const fileCleanEnabled = this.settingsStore.isPreUploadFileCleanEnabled();
168
- if (fileCleanEnabled) {
169
- await this.printerFileCleanTask.cleanPrinterFiles(currentPrinterId);
185
+ try {
186
+ this.multerService.clearUploadedFile(uploadedFile);
187
+ } catch (e) {
188
+ this.logger.error(`Could not remove uploaded file from temporary storage ${(0, _errorutils.errorSummary)(e)}`);
170
189
  }
171
- const uploadedFile = files[0];
172
- const token = this.multerService.startTrackingSession(uploadedFile);
173
- await this.printerApi.uploadFile(uploadedFile, token);
174
- await this.printerFilesStore.loadFiles(currentPrinterId);
175
190
  res.send();
176
191
  }
177
192
  }
178
- _ts_decorate([
179
- (0, _awilixexpress.GET)(),
180
- (0, _awilixexpress.route)("/tracked-uploads"),
181
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Upload)),
182
- _ts_metadata("design:type", Function),
183
- _ts_metadata("design:paramtypes", [
184
- typeof _express.Request === "undefined" ? Object : _express.Request,
185
- typeof _express.Response === "undefined" ? Object : _express.Response
186
- ]),
187
- _ts_metadata("design:returntype", void 0)
188
- ], PrinterFilesController.prototype, "getTrackedUploads", null);
189
193
  _ts_decorate([
190
194
  (0, _awilixexpress.POST)(),
191
195
  (0, _awilixexpress.route)("/purge"),
192
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Clear)),
196
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Clear)),
193
197
  _ts_metadata("design:type", Function),
194
198
  _ts_metadata("design:paramtypes", [
195
199
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -200,7 +204,7 @@ _ts_decorate([
200
204
  _ts_decorate([
201
205
  (0, _awilixexpress.GET)(),
202
206
  (0, _awilixexpress.route)("/thumbnails"),
203
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
207
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
204
208
  _ts_metadata("design:type", Function),
205
209
  _ts_metadata("design:paramtypes", [
206
210
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -211,7 +215,7 @@ _ts_decorate([
211
215
  _ts_decorate([
212
216
  (0, _awilixexpress.GET)(),
213
217
  (0, _awilixexpress.route)("/:id"),
214
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
218
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
215
219
  _ts_metadata("design:type", Function),
216
220
  _ts_metadata("design:paramtypes", [
217
221
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -222,7 +226,7 @@ _ts_decorate([
222
226
  _ts_decorate([
223
227
  (0, _awilixexpress.POST)(),
224
228
  (0, _awilixexpress.route)("/:id/reload-thumbnail"),
225
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Actions)),
229
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Actions)),
226
230
  _ts_metadata("design:type", Function),
227
231
  _ts_metadata("design:paramtypes", [
228
232
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -234,7 +238,7 @@ _ts_decorate([
234
238
  (0, _awilixexpress.POST)(),
235
239
  (0, _awilixexpress.route)("/:id/select"),
236
240
  (0, _awilixexpress.route)("/:id/print"),
237
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Actions)),
241
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Actions)),
238
242
  _ts_metadata("design:type", Function),
239
243
  _ts_metadata("design:paramtypes", [
240
244
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -245,7 +249,7 @@ _ts_decorate([
245
249
  _ts_decorate([
246
250
  (0, _awilixexpress.GET)(),
247
251
  (0, _awilixexpress.route)("/:id/cache"),
248
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
252
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
249
253
  _ts_metadata("design:type", Function),
250
254
  _ts_metadata("design:paramtypes", [
251
255
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -256,7 +260,7 @@ _ts_decorate([
256
260
  _ts_decorate([
257
261
  (0, _awilixexpress.GET)(),
258
262
  (0, _awilixexpress.route)("/:id/download/:path"),
259
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
263
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
260
264
  _ts_metadata("design:type", Function),
261
265
  _ts_metadata("design:paramtypes", [
262
266
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -267,7 +271,7 @@ _ts_decorate([
267
271
  _ts_decorate([
268
272
  (0, _awilixexpress.DELETE)(),
269
273
  (0, _awilixexpress.route)("/:id"),
270
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Delete)),
274
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Delete)),
271
275
  _ts_metadata("design:type", Function),
272
276
  _ts_metadata("design:paramtypes", [
273
277
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -278,7 +282,7 @@ _ts_decorate([
278
282
  _ts_decorate([
279
283
  (0, _awilixexpress.DELETE)(),
280
284
  (0, _awilixexpress.route)("/:id/clear"),
281
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Clear)),
285
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Clear)),
282
286
  _ts_metadata("design:type", Function),
283
287
  _ts_metadata("design:paramtypes", [
284
288
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -289,7 +293,7 @@ _ts_decorate([
289
293
  _ts_decorate([
290
294
  (0, _awilixexpress.GET)(),
291
295
  (0, _awilixexpress.route)("/:id/thumbnail"),
292
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
296
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Get)),
293
297
  _ts_metadata("design:type", Function),
294
298
  _ts_metadata("design:paramtypes", [
295
299
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -300,7 +304,7 @@ _ts_decorate([
300
304
  _ts_decorate([
301
305
  (0, _awilixexpress.POST)(),
302
306
  (0, _awilixexpress.route)("/:id/upload"),
303
- (0, _awilixexpress.before)((0, _authenticate.authorizePermission)(_authorizationconstants.PERMS.PrinterFiles.Upload)),
307
+ (0, _awilixexpress.before)((0, _authenticate.permission)(_authorizationconstants.PERMS.PrinterFiles.Upload)),
304
308
  _ts_metadata("design:type", Function),
305
309
  _ts_metadata("design:paramtypes", [
306
310
  typeof _express.Request === "undefined" ? Object : _express.Request,
@@ -320,7 +324,14 @@ PrinterFilesController = _ts_decorate([
320
324
  ]),
321
325
  _ts_metadata("design:type", Function),
322
326
  _ts_metadata("design:paramtypes", [
323
- Object
327
+ typeof _loggerfactory.ILoggerFactory === "undefined" ? Object : _loggerfactory.ILoggerFactory,
328
+ typeof _printerapiinterface.IPrinterApi === "undefined" ? Object : _printerapiinterface.IPrinterApi,
329
+ typeof _logindto.LoginDto === "undefined" ? Object : _logindto.LoginDto,
330
+ typeof _printerfilesstore.PrinterFilesStore === "undefined" ? Object : _printerfilesstore.PrinterFilesStore,
331
+ typeof _printerfilecleantask.PrinterFileCleanTask === "undefined" ? Object : _printerfilecleantask.PrinterFileCleanTask,
332
+ typeof _settingsstore.SettingsStore === "undefined" ? Object : _settingsstore.SettingsStore,
333
+ typeof _multerservice.MulterService === "undefined" ? Object : _multerservice.MulterService,
334
+ typeof _printerthumbnailcache.PrinterThumbnailCache === "undefined" ? Object : _printerthumbnailcache.PrinterThumbnailCache
324
335
  ])
325
336
  ], PrinterFilesController);
326
337
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/printer-files.controller.ts"],"names":["PrinterFilesController","printerApi","printerLogin","printerThumbnailCache","printerFilesStore","settingsStore","batchCallService","multerService","printerFileCleanTask","logger","constructor","loggerFactory","name","getTrackedUploads","req","res","sessions","getSessions","send","purgeIndexedFiles","purgeFiles","getThumbnails","thumbnails","getAllValues","getFiles","currentPrinterId","getScopedPrinter","log","files","loadFiles","reloadThumbnail","filePath","validateInput","body","startPrintFileRules","isThumbnailSupportEnabled","loadPrinterThumbnailRemote","params","id","e","error","errorSummary","captureException","startPrintFile","encodedFilePath","encodeURIComponent","startPrint","getFilesCache","currentPrinter","downloadFile","path","downloadFileRules","response","setHeader","headers","length","data","pipe","deleteFileOrFolder","query","getFileRules","result","deleteFile","clearPrinterFiles","failedFiles","succeededFiles","nonRecursiveFiles","file","push","purgePrinterFiles","getPrinterThumbnail","printerThumbnail","getValue","toString","uploadPrinterFile","multerLoadFileAsync","AppConstants","defaultAcceptedGcodeExtensions","ValidationException","join","loadPrinterThumbnailLocal","fileCleanEnabled","isPreUploadFileCleanEnabled","cleanPrinterFiles","uploadedFile","token","startTrackingSession","uploadFile","PrinterFiles","Upload","Clear","Get","Actions","Delete","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","printerResolveMiddleware"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/controllers/printer-files.controller.ts"],"names":["PrinterFilesController","logger","constructor","loggerFactory","printerApi","printerLogin","printerFilesStore","printerFileCleanTask","settingsStore","multerService","printerThumbnailCache","name","purgeIndexedFiles","req","res","purgeFiles","send","getThumbnails","thumbnails","getAllValues","getFiles","currentPrinterId","getScopedPrinter","log","files","loadFiles","reloadThumbnail","filePath","validateInput","body","startPrintFileSchema","isThumbnailSupportEnabled","loadPrinterThumbnailRemote","params","id","e","error","errorSummary","captureException","startPrintFile","encodedFilePath","encodeURIComponent","startPrint","getFilesCache","currentPrinter","downloadFile","path","downloadFileSchema","response","setHeader","headers","length","data","pipe","deleteFileOrFolder","query","getFileSchema","result","deleteFile","clearPrinterFiles","failedFiles","succeededFiles","nonRecursiveFiles","file","push","purgePrinterFiles","getPrinterThumbnail","printerThumbnail","getValue","toString","uploadPrinterFile","multerLoadFileAsync","AppConstants","defaultAcceptedGcodeExtensions","ValidationException","join","fileCleanEnabled","isPreUploadFileCleanEnabled","cleanPrinterFiles","uploadedFile","token","startTrackingSession","uploadFile","catch","clearUploadedFile","loadPrinterThumbnailLocal","PrinterFiles","Clear","Get","Actions","Delete","Upload","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","printerResolveMiddleware"],"mappings":"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"}