@fdm-monster/server 1.5.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 (377) hide show
  1. package/.env +19 -0
  2. package/.env.template +43 -0
  3. package/.gitattributes +1 -0
  4. package/.idea/codeStyles/Project.xml +85 -0
  5. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  6. package/.idea/dbnavigator.xml +574 -0
  7. package/.idea/fdm-monster.iml +16 -0
  8. package/.idea/inspectionProfiles/Project_Default.xml +22 -0
  9. package/.idea/jsLibraryMappings.xml +6 -0
  10. package/.idea/modules.xml +12 -0
  11. package/.idea/prettier.xml +6 -0
  12. package/.idea/vcs.xml +17 -0
  13. package/.swcrc +33 -0
  14. package/CODE_OF_CONDUCT.md +46 -0
  15. package/CONTRIBUTING.md +134 -0
  16. package/LICENSE +661 -0
  17. package/README.md +149 -0
  18. package/SECURITY.md +16 -0
  19. package/dist/@type/express/index.d.js +7 -0
  20. package/dist/@type/express/index.d.js.map +1 -0
  21. package/dist/constants/authorization.constants.js +99 -0
  22. package/dist/constants/authorization.constants.js.map +1 -0
  23. package/dist/constants/event.constants.js +55 -0
  24. package/dist/constants/event.constants.js.map +1 -0
  25. package/dist/constants/http-status-codes.constants.js +268 -0
  26. package/dist/constants/http-status-codes.constants.js.map +1 -0
  27. package/dist/constants/server-settings.constants.js +119 -0
  28. package/dist/constants/server-settings.constants.js.map +1 -0
  29. package/dist/constants/service.constants.js +48 -0
  30. package/dist/constants/service.constants.js.map +1 -0
  31. package/dist/container.js +161 -0
  32. package/dist/container.js.map +1 -0
  33. package/dist/container.tokens.js +83 -0
  34. package/dist/container.tokens.js.map +1 -0
  35. package/dist/controllers/auth.controller.js +143 -0
  36. package/dist/controllers/auth.controller.js.map +1 -0
  37. package/dist/controllers/batch-call.controller.js +59 -0
  38. package/dist/controllers/batch-call.controller.js.map +1 -0
  39. package/dist/controllers/camera-stream.controller.js +57 -0
  40. package/dist/controllers/camera-stream.controller.js.map +1 -0
  41. package/dist/controllers/custom-gcode.controller.js +76 -0
  42. package/dist/controllers/custom-gcode.controller.js.map +1 -0
  43. package/dist/controllers/first-time-setup.controller.js +65 -0
  44. package/dist/controllers/first-time-setup.controller.js.map +1 -0
  45. package/dist/controllers/floor.controller.js +78 -0
  46. package/dist/controllers/floor.controller.js.map +1 -0
  47. package/dist/controllers/plugin-firmware-update.controller.js +140 -0
  48. package/dist/controllers/plugin-firmware-update.controller.js.map +1 -0
  49. package/dist/controllers/print-completion.controller.js +58 -0
  50. package/dist/controllers/print-completion.controller.js.map +1 -0
  51. package/dist/controllers/printer-files.controller.js +208 -0
  52. package/dist/controllers/printer-files.controller.js.map +1 -0
  53. package/dist/controllers/printer-settings.controller.js +58 -0
  54. package/dist/controllers/printer-settings.controller.js.map +1 -0
  55. package/dist/controllers/printer.controller.js +287 -0
  56. package/dist/controllers/printer.controller.js.map +1 -0
  57. package/dist/controllers/server-private.controller.js +122 -0
  58. package/dist/controllers/server-private.controller.js.map +1 -0
  59. package/dist/controllers/server-public.controller.js +140 -0
  60. package/dist/controllers/server-public.controller.js.map +1 -0
  61. package/dist/controllers/settings.controller.js +89 -0
  62. package/dist/controllers/settings.controller.js.map +1 -0
  63. package/dist/controllers/user.controller.js +137 -0
  64. package/dist/controllers/user.controller.js.map +1 -0
  65. package/dist/controllers/validation/auth-controller.validation.js +15 -0
  66. package/dist/controllers/validation/auth-controller.validation.js.map +1 -0
  67. package/dist/controllers/validation/batch-controller.validation.js +29 -0
  68. package/dist/controllers/validation/batch-controller.validation.js.map +1 -0
  69. package/dist/controllers/validation/generic.validation.js +15 -0
  70. package/dist/controllers/validation/generic.validation.js.map +1 -0
  71. package/dist/controllers/validation/printer-controller.validation.js +66 -0
  72. package/dist/controllers/validation/printer-controller.validation.js.map +1 -0
  73. package/dist/controllers/validation/printer-files-controller.validation.js +66 -0
  74. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -0
  75. package/dist/controllers/validation/printer-settings-controller.validation.js +15 -0
  76. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -0
  77. package/dist/controllers/validation/setting.validation.js +19 -0
  78. package/dist/controllers/validation/setting.validation.js.map +1 -0
  79. package/dist/controllers/validation/user-controller.validation.js +16 -0
  80. package/dist/controllers/validation/user-controller.validation.js.map +1 -0
  81. package/dist/exceptions/job.exceptions.js +18 -0
  82. package/dist/exceptions/job.exceptions.js.map +1 -0
  83. package/dist/exceptions/runtime.exceptions.js +108 -0
  84. package/dist/exceptions/runtime.exceptions.js.map +1 -0
  85. package/dist/handlers/cache-manager.js +25 -0
  86. package/dist/handlers/cache-manager.js.map +1 -0
  87. package/dist/handlers/event-emitter.js +31 -0
  88. package/dist/handlers/event-emitter.js.map +1 -0
  89. package/dist/handlers/logger-factory.js +18 -0
  90. package/dist/handlers/logger-factory.js.map +1 -0
  91. package/dist/handlers/logger.js +85 -0
  92. package/dist/handlers/logger.js.map +1 -0
  93. package/dist/handlers/validators.js +131 -0
  94. package/dist/handlers/validators.js.map +1 -0
  95. package/dist/index.js +19 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/middleware/authenticate.js +83 -0
  98. package/dist/middleware/authenticate.js.map +1 -0
  99. package/dist/middleware/database.js +26 -0
  100. package/dist/middleware/database.js.map +1 -0
  101. package/dist/middleware/exception.handler.js +96 -0
  102. package/dist/middleware/exception.handler.js.map +1 -0
  103. package/dist/middleware/global.middleware.js +58 -0
  104. package/dist/middleware/global.middleware.js.map +1 -0
  105. package/dist/middleware/passport.js +44 -0
  106. package/dist/middleware/passport.js.map +1 -0
  107. package/dist/middleware/printer.js +49 -0
  108. package/dist/middleware/printer.js.map +1 -0
  109. package/dist/migrations/1696187882312-PrinterFile.js +40 -0
  110. package/dist/migrations/1696187882312-PrinterFile.js.map +1 -0
  111. package/dist/models/Auth/Permission.js +20 -0
  112. package/dist/models/Auth/Permission.js.map +1 -0
  113. package/dist/models/Auth/RefreshToken.js +41 -0
  114. package/dist/models/Auth/RefreshToken.js.map +1 -0
  115. package/dist/models/Auth/Role.js +20 -0
  116. package/dist/models/Auth/Role.js.map +1 -0
  117. package/dist/models/Auth/User.js +51 -0
  118. package/dist/models/Auth/User.js.map +1 -0
  119. package/dist/models/CameraStream.js +59 -0
  120. package/dist/models/CameraStream.js.map +1 -0
  121. package/dist/models/CustomGcode.js +28 -0
  122. package/dist/models/CustomGcode.js.map +1 -0
  123. package/dist/models/Floor.js +33 -0
  124. package/dist/models/Floor.js.map +1 -0
  125. package/dist/models/FloorPrinter.js +29 -0
  126. package/dist/models/FloorPrinter.js.map +1 -0
  127. package/dist/models/PrintCompletion.js +40 -0
  128. package/dist/models/PrintCompletion.js.map +1 -0
  129. package/dist/models/Printer.js +113 -0
  130. package/dist/models/Printer.js.map +1 -0
  131. package/dist/models/ServerSettings.js +168 -0
  132. package/dist/models/ServerSettings.js.map +1 -0
  133. package/dist/models/Settings.js +168 -0
  134. package/dist/models/Settings.js.map +1 -0
  135. package/dist/models/index.js +54 -0
  136. package/dist/models/index.js.map +1 -0
  137. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +49 -0
  138. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -0
  139. package/dist/mongo-migrations/20210907173950-printers-enabled.js +39 -0
  140. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -0
  141. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +39 -0
  142. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -0
  143. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +60 -0
  144. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -0
  145. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +30 -0
  146. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -0
  147. package/dist/mongo-migrations/20230716065316-user-remove-name.js +30 -0
  148. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -0
  149. package/dist/nodemon_restart_trigger.js +4 -0
  150. package/dist/nodemon_restart_trigger.js.map +1 -0
  151. package/dist/server.constants.js +99 -0
  152. package/dist/server.constants.js.map +1 -0
  153. package/dist/server.core.js +91 -0
  154. package/dist/server.core.js.map +1 -0
  155. package/dist/server.env.js +225 -0
  156. package/dist/server.env.js.map +1 -0
  157. package/dist/server.host.js +106 -0
  158. package/dist/server.host.js.map +1 -0
  159. package/dist/services/authentication/auth.service.js +136 -0
  160. package/dist/services/authentication/auth.service.js.map +1 -0
  161. package/dist/services/authentication/jwt.service.js +34 -0
  162. package/dist/services/authentication/jwt.service.js.map +1 -0
  163. package/dist/services/authentication/permission.service.js +73 -0
  164. package/dist/services/authentication/permission.service.js.map +1 -0
  165. package/dist/services/authentication/refresh-token.service.js +99 -0
  166. package/dist/services/authentication/refresh-token.service.js.map +1 -0
  167. package/dist/services/authentication/role.service.js +120 -0
  168. package/dist/services/authentication/role.service.js.map +1 -0
  169. package/dist/services/authentication/user.service.js +154 -0
  170. package/dist/services/authentication/user.service.js.map +1 -0
  171. package/dist/services/batch-call.service.js +148 -0
  172. package/dist/services/batch-call.service.js.map +1 -0
  173. package/dist/services/camera-stream.service.js +80 -0
  174. package/dist/services/camera-stream.service.js.map +1 -0
  175. package/dist/services/core/client-bundle.service.js +156 -0
  176. package/dist/services/core/client-bundle.service.js.map +1 -0
  177. package/dist/services/core/config.service.js +26 -0
  178. package/dist/services/core/config.service.js.map +1 -0
  179. package/dist/services/core/github.service.js +74 -0
  180. package/dist/services/core/github.service.js.map +1 -0
  181. package/dist/services/core/logs-manager.service.js +87 -0
  182. package/dist/services/core/logs-manager.service.js.map +1 -0
  183. package/dist/services/core/monsterpi.service.js +38 -0
  184. package/dist/services/core/monsterpi.service.js.map +1 -0
  185. package/dist/services/core/multer.service.js +122 -0
  186. package/dist/services/core/multer.service.js.map +1 -0
  187. package/dist/services/core/server-release.service.js +116 -0
  188. package/dist/services/core/server-release.service.js.map +1 -0
  189. package/dist/services/core/server-update.service.js +73 -0
  190. package/dist/services/core/server-update.service.js.map +1 -0
  191. package/dist/services/core/task-manager.service.js +196 -0
  192. package/dist/services/core/task-manager.service.js.map +1 -0
  193. package/dist/services/core/yaml.service.js +278 -0
  194. package/dist/services/core/yaml.service.js.map +1 -0
  195. package/dist/services/custom-gcode.service.js +48 -0
  196. package/dist/services/custom-gcode.service.js.map +1 -0
  197. package/dist/services/floor.service.js +183 -0
  198. package/dist/services/floor.service.js.map +1 -0
  199. package/dist/services/influxdb-v2/influx-db-v2-base.service.js +45 -0
  200. package/dist/services/influxdb-v2/influx-db-v2-base.service.js.map +1 -0
  201. package/dist/services/interfaces/auth.service.interface.js +6 -0
  202. package/dist/services/interfaces/auth.service.interface.js.map +1 -0
  203. package/dist/services/interfaces/camera-stream.dto.js +109 -0
  204. package/dist/services/interfaces/camera-stream.dto.js.map +1 -0
  205. package/dist/services/interfaces/camera-stream.service.interface.js +6 -0
  206. package/dist/services/interfaces/camera-stream.service.interface.js.map +1 -0
  207. package/dist/services/interfaces/custom-gcode.dto.js +18 -0
  208. package/dist/services/interfaces/custom-gcode.dto.js.map +1 -0
  209. package/dist/services/interfaces/custom-gcode.service.interface.js +6 -0
  210. package/dist/services/interfaces/custom-gcode.service.interface.js.map +1 -0
  211. package/dist/services/interfaces/floor.dto.js +61 -0
  212. package/dist/services/interfaces/floor.dto.js.map +1 -0
  213. package/dist/services/interfaces/floor.service.interface.js +6 -0
  214. package/dist/services/interfaces/floor.service.interface.js.map +1 -0
  215. package/dist/services/interfaces/gcode-analysis.dto.js +6 -0
  216. package/dist/services/interfaces/gcode-analysis.dto.js.map +1 -0
  217. package/dist/services/interfaces/jwt.service.interface.js +6 -0
  218. package/dist/services/interfaces/jwt.service.interface.js.map +1 -0
  219. package/dist/services/interfaces/login.dto.js +16 -0
  220. package/dist/services/interfaces/login.dto.js.map +1 -0
  221. package/dist/services/interfaces/page.interface.js +16 -0
  222. package/dist/services/interfaces/page.interface.js.map +1 -0
  223. package/dist/services/interfaces/permission.dto.js +16 -0
  224. package/dist/services/interfaces/permission.dto.js.map +1 -0
  225. package/dist/services/interfaces/permission.service.interface.js +6 -0
  226. package/dist/services/interfaces/permission.service.interface.js.map +1 -0
  227. package/dist/services/interfaces/printer-file.dto.js +27 -0
  228. package/dist/services/interfaces/printer-file.dto.js.map +1 -0
  229. package/dist/services/interfaces/printer-files.service.interface.js +6 -0
  230. package/dist/services/interfaces/printer-files.service.interface.js.map +1 -0
  231. package/dist/services/interfaces/printer.dto.js +18 -0
  232. package/dist/services/interfaces/printer.dto.js.map +1 -0
  233. package/dist/services/interfaces/printer.service.interface.js +6 -0
  234. package/dist/services/interfaces/printer.service.interface.js.map +1 -0
  235. package/dist/services/interfaces/role-service.interface.js +6 -0
  236. package/dist/services/interfaces/role-service.interface.js.map +1 -0
  237. package/dist/services/interfaces/settings.dto.js +34 -0
  238. package/dist/services/interfaces/settings.dto.js.map +1 -0
  239. package/dist/services/interfaces/settings.service.interface.js +6 -0
  240. package/dist/services/interfaces/settings.service.interface.js.map +1 -0
  241. package/dist/services/interfaces/user-service.interface.js +6 -0
  242. package/dist/services/interfaces/user-service.interface.js.map +1 -0
  243. package/dist/services/interfaces/user.dto.js +39 -0
  244. package/dist/services/interfaces/user.dto.js.map +1 -0
  245. package/dist/services/octoprint/constants/firmware-update-settings.constants.js +32 -0
  246. package/dist/services/octoprint/constants/firmware-update-settings.constants.js.map +1 -0
  247. package/dist/services/octoprint/constants/octoprint-service.constants.js +101 -0
  248. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -0
  249. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +88 -0
  250. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -0
  251. package/dist/services/octoprint/octoprint-api.routes.js +192 -0
  252. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -0
  253. package/dist/services/octoprint/octoprint-api.service.js +402 -0
  254. package/dist/services/octoprint/octoprint-api.service.js.map +1 -0
  255. package/dist/services/octoprint/octoprint-sockio.adapter.js +309 -0
  256. package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -0
  257. package/dist/services/octoprint/plugin-base.service.js +102 -0
  258. package/dist/services/octoprint/plugin-base.service.js.map +1 -0
  259. package/dist/services/octoprint/plugin-firmware-update.service.js +104 -0
  260. package/dist/services/octoprint/plugin-firmware-update.service.js.map +1 -0
  261. package/dist/services/octoprint/plugin-repository.cache.js +45 -0
  262. package/dist/services/octoprint/plugin-repository.cache.js.map +1 -0
  263. package/dist/services/octoprint/socket.factory.js +22 -0
  264. package/dist/services/octoprint/socket.factory.js.map +1 -0
  265. package/dist/services/octoprint/utils/api.utils.js +72 -0
  266. package/dist/services/octoprint/utils/api.utils.js.map +1 -0
  267. package/dist/services/orm/floor.service.interface.js +73 -0
  268. package/dist/services/orm/floor.service.interface.js.map +1 -0
  269. package/dist/services/orm/printer.service.interface.js +6 -0
  270. package/dist/services/orm/printer.service.interface.js.map +1 -0
  271. package/dist/services/print-completion.service.js +162 -0
  272. package/dist/services/print-completion.service.js.map +1 -0
  273. package/dist/services/printer-files.service.js +91 -0
  274. package/dist/services/printer-files.service.js.map +1 -0
  275. package/dist/services/printer.service.js +230 -0
  276. package/dist/services/printer.service.js.map +1 -0
  277. package/dist/services/settings.service.js +158 -0
  278. package/dist/services/settings.service.js.map +1 -0
  279. package/dist/services/validators/floor-service.validation.js +60 -0
  280. package/dist/services/validators/floor-service.validation.js.map +1 -0
  281. package/dist/services/validators/print-completion-service.validation.js +20 -0
  282. package/dist/services/validators/print-completion-service.validation.js.map +1 -0
  283. package/dist/services/validators/printer-service.validation.js +48 -0
  284. package/dist/services/validators/printer-service.validation.js.map +1 -0
  285. package/dist/services/validators/settings-service.validation.js +71 -0
  286. package/dist/services/validators/settings-service.validation.js.map +1 -0
  287. package/dist/services/validators/user-service.validation.js +33 -0
  288. package/dist/services/validators/user-service.validation.js.map +1 -0
  289. package/dist/services/validators/yaml-service.validation.js +63 -0
  290. package/dist/services/validators/yaml-service.validation.js.map +1 -0
  291. package/dist/services/yaml.service.js +278 -0
  292. package/dist/services/yaml.service.js.map +1 -0
  293. package/dist/shared.constants.js +15 -0
  294. package/dist/shared.constants.js.map +1 -0
  295. package/dist/state/file-upload-tracker.cache.js +88 -0
  296. package/dist/state/file-upload-tracker.cache.js.map +1 -0
  297. package/dist/state/file.cache.js +99 -0
  298. package/dist/state/file.cache.js.map +1 -0
  299. package/dist/state/files.store.js +132 -0
  300. package/dist/state/files.store.js.map +1 -0
  301. package/dist/state/floor.store.js +99 -0
  302. package/dist/state/floor.store.js.map +1 -0
  303. package/dist/state/printer-events.cache.js +97 -0
  304. package/dist/state/printer-events.cache.js.map +1 -0
  305. package/dist/state/printer-socket.store.js +217 -0
  306. package/dist/state/printer-socket.store.js.map +1 -0
  307. package/dist/state/printer.cache.js +112 -0
  308. package/dist/state/printer.cache.js.map +1 -0
  309. package/dist/state/settings.store.js +154 -0
  310. package/dist/state/settings.store.js.map +1 -0
  311. package/dist/state/socket-io.gateway.js +66 -0
  312. package/dist/state/socket-io.gateway.js.map +1 -0
  313. package/dist/state/test-printer-socket.store.js +91 -0
  314. package/dist/state/test-printer-socket.store.js.map +1 -0
  315. package/dist/state/validation/create-test-printer.validation.js +18 -0
  316. package/dist/state/validation/create-test-printer.validation.js.map +1 -0
  317. package/dist/task.presets.js +50 -0
  318. package/dist/task.presets.js.map +1 -0
  319. package/dist/tasks/boot.task.js +198 -0
  320. package/dist/tasks/boot.task.js.map +1 -0
  321. package/dist/tasks/client-bundle.task.js +32 -0
  322. package/dist/tasks/client-bundle.task.js.map +1 -0
  323. package/dist/tasks/print-completion.socketio.task.js +85 -0
  324. package/dist/tasks/print-completion.socketio.task.js.map +1 -0
  325. package/dist/tasks/printer-file-clean.task.js +72 -0
  326. package/dist/tasks/printer-file-clean.task.js.map +1 -0
  327. package/dist/tasks/printer-websocket-restore.task.js +64 -0
  328. package/dist/tasks/printer-websocket-restore.task.js.map +1 -0
  329. package/dist/tasks/printer-websocket.task.js +43 -0
  330. package/dist/tasks/printer-websocket.task.js.map +1 -0
  331. package/dist/tasks/socketio.task.js +83 -0
  332. package/dist/tasks/socketio.task.js.map +1 -0
  333. package/dist/tasks/software-update.task.js +22 -0
  334. package/dist/tasks/software-update.task.js.map +1 -0
  335. package/dist/tasks.js +48 -0
  336. package/dist/tasks.js.map +1 -0
  337. package/dist/types/express/index.d.js +7 -0
  338. package/dist/types/express/index.d.js.map +1 -0
  339. package/dist/utils/array.util.js +27 -0
  340. package/dist/utils/array.util.js.map +1 -0
  341. package/dist/utils/benchmark.util.js +39 -0
  342. package/dist/utils/benchmark.util.js.map +1 -0
  343. package/dist/utils/cache/key-diff.cache.js +128 -0
  344. package/dist/utils/cache/key-diff.cache.js.map +1 -0
  345. package/dist/utils/correlation-token.util.js +15 -0
  346. package/dist/utils/correlation-token.util.js.map +1 -0
  347. package/dist/utils/crypto.utils.js +29 -0
  348. package/dist/utils/crypto.utils.js.map +1 -0
  349. package/dist/utils/env.utils.js +98 -0
  350. package/dist/utils/env.utils.js.map +1 -0
  351. package/dist/utils/error.utils.js +15 -0
  352. package/dist/utils/error.utils.js.map +1 -0
  353. package/dist/utils/find-predicate.utils.js +18 -0
  354. package/dist/utils/find-predicate.utils.js.map +1 -0
  355. package/dist/utils/fs.utils.js +38 -0
  356. package/dist/utils/fs.utils.js.map +1 -0
  357. package/dist/utils/is-docker.js +40 -0
  358. package/dist/utils/is-docker.js.map +1 -0
  359. package/dist/utils/mapper.utils.js +33 -0
  360. package/dist/utils/mapper.utils.js.map +1 -0
  361. package/dist/utils/metric.utils.js +35 -0
  362. package/dist/utils/metric.utils.js.map +1 -0
  363. package/dist/utils/normalize-url.js +245 -0
  364. package/dist/utils/normalize-url.js.map +1 -0
  365. package/dist/utils/semver.utils.js +18 -0
  366. package/dist/utils/semver.utils.js.map +1 -0
  367. package/dist/utils/time.utils.js +26 -0
  368. package/dist/utils/time.utils.js.map +1 -0
  369. package/dist/utils/url.utils.js +33 -0
  370. package/dist/utils/url.utils.js.map +1 -0
  371. package/dist/utils/websocket.adapter.js +105 -0
  372. package/dist/utils/websocket.adapter.js.map +1 -0
  373. package/migrate-mongo-config.js +45 -0
  374. package/nodemon_restart_trigger.js +1 -0
  375. package/package.json +149 -0
  376. package/src/index.ts +19 -0
  377. package/tsconfig.json +28 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ BatchCallController: function() {
13
+ return BatchCallController;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _awilixexpress = require("awilix-express");
20
+ const _validators = require("../handlers/validators");
21
+ const _batchcontrollervalidation = require("./validation/batch-controller.validation");
22
+ const _serverconstants = require("../server.constants");
23
+ const _authenticate = require("../middleware/authenticate");
24
+ const _authorizationconstants = require("../constants/authorization.constants");
25
+ class BatchCallController {
26
+ batchCallService;
27
+ constructor({ batchCallService }){
28
+ this.batchCallService = batchCallService;
29
+ }
30
+ async batchConnectUsb(req, res) {
31
+ const { printerIds } = await (0, _validators.validateInput)(req.body, _batchcontrollervalidation.batchPrinterRules);
32
+ const results = await this.batchCallService.batchConnectUsb(printerIds);
33
+ res.send(results);
34
+ }
35
+ async batchConnectSocket(req, res) {
36
+ const { printerIds } = await (0, _validators.validateInput)(req.body, _batchcontrollervalidation.batchPrinterRules);
37
+ await this.batchCallService.batchConnectSocket(printerIds);
38
+ res.send({});
39
+ }
40
+ async batchReprintFiles(req, res) {
41
+ const { printerIds } = await (0, _validators.validateInput)(req.body, _batchcontrollervalidation.batchPrinterRules);
42
+ const results = await this.batchCallService.batchReprintCalls(printerIds);
43
+ res.send(results);
44
+ }
45
+ async batchTogglePrintersEnabled(req, res) {
46
+ const { printerIds, enabled } = await (0, _validators.validateInput)(req.body, _batchcontrollervalidation.batchPrintersEnabledRules);
47
+ const results = await this.batchCallService.batchTogglePrintersEnabled(printerIds, enabled);
48
+ res.send(results);
49
+ }
50
+ }
51
+ const _default = (0, _awilixexpress.createController)(BatchCallController).prefix(_serverconstants.AppConstants.apiRoute + "/batch").before([
52
+ (0, _authenticate.authenticate)(),
53
+ (0, _authenticate.authorizeRoles)([
54
+ _authorizationconstants.ROLES.ADMIN,
55
+ _authorizationconstants.ROLES.OPERATOR
56
+ ])
57
+ ]).post("/connect/usb", "batchConnectUsb").post("/connect/socket", "batchConnectSocket").post("/reprint", "batchReprintFiles").post("/toggle-enabled", "batchTogglePrintersEnabled");
58
+
59
+ //# sourceMappingURL=batch-call.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/batch-call.controller.ts"],"names":["BatchCallController","batchCallService","constructor","batchConnectUsb","req","res","printerIds","validateInput","body","batchPrinterRules","results","send","batchConnectSocket","batchReprintFiles","batchReprintCalls","batchTogglePrintersEnabled","enabled","batchPrintersEnabledRules","createController","prefix","AppConstants","apiRoute","before","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","post"],"mappings":";;;;;;;;;;;IASaA,mBAAmB;eAAnBA;;IAgCb,OAMyD;eANzD;;;+BAzCiC;4BACH;2CAC+B;iCAChC;8BACgB;wCACvB;AAIf,MAAMA;IACXC,iBAAmC;IAEnCC,YAAY,EAAED,gBAAgB,EAA0C,CAAE;QACxE,IAAI,CAACA,gBAAgB,GAAGA;IAC1B;IAEA,MAAME,gBAAgBC,GAAY,EAAEC,GAAa,EAAE;QACjD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,4CAAiB;QACtE,MAAMC,UAAU,MAAM,IAAI,CAACT,gBAAgB,CAACE,eAAe,CAACG;QAC5DD,IAAIM,IAAI,CAACD;IACX;IAEA,MAAME,mBAAmBR,GAAY,EAAEC,GAAa,EAAE;QACpD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,4CAAiB;QACtE,MAAM,IAAI,CAACR,gBAAgB,CAACW,kBAAkB,CAACN;QAC/CD,IAAIM,IAAI,CAAC,CAAC;IACZ;IAEA,MAAME,kBAAkBT,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,EAAEC,UAAU,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAEC,4CAAiB;QACtE,MAAMC,UAAU,MAAM,IAAI,CAACT,gBAAgB,CAACa,iBAAiB,CAACR;QAC9DD,IAAIM,IAAI,CAACD;IACX;IAEA,MAAMK,2BAA2BX,GAAY,EAAEC,GAAa,EAAE;QAC5D,MAAM,EAAEC,UAAU,EAAEU,OAAO,EAAE,GAAG,MAAMT,IAAAA,yBAAa,EAACH,IAAII,IAAI,EAAES,oDAAyB;QACvF,MAAMP,UAAU,MAAM,IAAI,CAACT,gBAAgB,CAACc,0BAA0B,CAACT,YAAYU;QACnFX,IAAIM,IAAI,CAACD;IACX;AACF;MAEA,WAAeQ,IAAAA,+BAAgB,EAAClB,qBAC7BmB,MAAM,CAACC,6BAAY,CAACC,QAAQ,GAAG,UAC/BC,MAAM,CAAC;IAACC,IAAAA,0BAAY;IAAIC,IAAAA,4BAAc,EAAC;QAACC,6BAAK,CAACC,KAAK;QAAED,6BAAK,CAACE,QAAQ;KAAC;CAAE,EACtEC,IAAI,CAAC,gBAAgB,mBACrBA,IAAI,CAAC,mBAAmB,sBACxBA,IAAI,CAAC,YAAY,qBACjBA,IAAI,CAAC,mBAAmB"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ CameraStreamController: function() {
13
+ return CameraStreamController;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _awilixexpress = require("awilix-express");
20
+ const _serverconstants = require("../server.constants");
21
+ const _validators = require("../handlers/validators");
22
+ const _genericvalidation = require("./validation/generic.validation");
23
+ const _authenticate = require("../middleware/authenticate");
24
+ class CameraStreamController {
25
+ cameraStreamService;
26
+ constructor({ cameraStreamService }){
27
+ this.cameraStreamService = cameraStreamService;
28
+ }
29
+ async list(req, res) {
30
+ const result = await this.cameraStreamService.list();
31
+ res.send(result.map((item)=>this.cameraStreamService.toDto(item)));
32
+ }
33
+ async get(req, res) {
34
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
35
+ const result = await this.cameraStreamService.get(id);
36
+ res.send(this.cameraStreamService.toDto(result));
37
+ }
38
+ async create(req, res) {
39
+ const result = await this.cameraStreamService.create(req.body);
40
+ res.send(this.cameraStreamService.toDto(result));
41
+ }
42
+ async update(req, res) {
43
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
44
+ const result = await this.cameraStreamService.update(id, req.body);
45
+ res.send(this.cameraStreamService.toDto(result));
46
+ }
47
+ async delete(req, res) {
48
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
49
+ await this.cameraStreamService.delete(id);
50
+ res.send();
51
+ }
52
+ }
53
+ const _default = (0, _awilixexpress.createController)(CameraStreamController).prefix(_serverconstants.AppConstants.apiRoute + "/camera-stream").before([
54
+ (0, _authenticate.authenticate)()
55
+ ]).get("/", "list").get("/:id", "get").post("/", "create").delete("/:id", "delete").put("/:id", "update");
56
+
57
+ //# sourceMappingURL=camera-stream.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/camera-stream.controller.ts"],"names":["CameraStreamController","cameraStreamService","constructor","list","req","res","result","send","map","item","toDto","get","id","validateInput","params","idRules","create","body","update","delete","createController","prefix","AppConstants","apiRoute","before","authenticate","post","put"],"mappings":";;;;;;;;;;;IAQaA,sBAAsB;eAAtBA;;IAoCb,OAOyB;eAPzB;;;+BA5CiC;iCACJ;4BACC;mCACN;8BACK;AAItB,MAAMA;IACXC,oBAA0C;IAE1CC,YAAY,EAAED,mBAAmB,EAAiD,CAAE;QAClF,IAAI,CAACA,mBAAmB,GAAGA;IAC7B;IAEA,MAAME,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,SAAS,MAAM,IAAI,CAACL,mBAAmB,CAACE,IAAI;QAClDE,IAAIE,IAAI,CAACD,OAAOE,GAAG,CAAC,CAACC,OAAS,IAAI,CAACR,mBAAmB,CAACS,KAAK,CAACD;IAC/D;IAEA,MAAME,IAAIP,GAAY,EAAEC,GAAa,EAAE;QACrC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,0BAAO;QACtD,MAAMT,SAAS,MAAM,IAAI,CAACL,mBAAmB,CAACU,GAAG,CAACC;QAClDP,IAAIE,IAAI,CAAC,IAAI,CAACN,mBAAmB,CAACS,KAAK,CAACJ;IAC1C;IAEA,MAAMU,OAAOZ,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAMC,SAAS,MAAM,IAAI,CAACL,mBAAmB,CAACe,MAAM,CAACZ,IAAIa,IAAI;QAC7DZ,IAAIE,IAAI,CAAC,IAAI,CAACN,mBAAmB,CAACS,KAAK,CAACJ;IAC1C;IAEA,MAAMY,OAAOd,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,0BAAO;QACtD,MAAMT,SAAS,MAAM,IAAI,CAACL,mBAAmB,CAACiB,MAAM,CAACN,IAAIR,IAAIa,IAAI;QACjEZ,IAAIE,IAAI,CAAC,IAAI,CAACN,mBAAmB,CAACS,KAAK,CAACJ;IAC1C;IAEA,MAAMa,OAAOf,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,0BAAO;QACtD,MAAM,IAAI,CAACd,mBAAmB,CAACkB,MAAM,CAACP;QACtCP,IAAIE,IAAI;IACV;AACF;MAEA,WAAea,IAAAA,+BAAgB,EAACpB,wBAC7BqB,MAAM,CAACC,6BAAY,CAACC,QAAQ,GAAG,kBAC/BC,MAAM,CAAC;IAACC,IAAAA,0BAAY;CAAG,EACvBd,GAAG,CAAC,KAAK,QACTA,GAAG,CAAC,QAAQ,OACZe,IAAI,CAAC,KAAK,UACVP,MAAM,CAAC,QAAQ,UACfQ,GAAG,CAAC,QAAQ"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ CustomGCodeController: function() {
13
+ return CustomGCodeController;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _awilixexpress = require("awilix-express");
20
+ const _authenticate = require("../middleware/authenticate");
21
+ const _serverconstants = require("../server.constants");
22
+ const _authorizationconstants = require("../constants/authorization.constants");
23
+ const _validators = require("../handlers/validators");
24
+ const _genericvalidation = require("./validation/generic.validation");
25
+ const _printer = require("../middleware/printer");
26
+ class CustomGCodeController {
27
+ octoPrintApiService;
28
+ customGCodeService;
29
+ constructor({ customGCodeService, octoPrintApiService }){
30
+ this.customGCodeService = customGCodeService;
31
+ this.octoPrintApiService = octoPrintApiService;
32
+ }
33
+ async list(req, res) {
34
+ const entities = await this.customGCodeService.list();
35
+ res.send(entities.map((e)=>this.customGCodeService.toDto(e)));
36
+ }
37
+ async get(req, res) {
38
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
39
+ const entity = await this.customGCodeService.get(id);
40
+ res.send(this.customGCodeService.toDto(entity));
41
+ }
42
+ /**
43
+ * Sends gcode according to https://docs.octoprint.org/en/master/api/printer.html#send-an-arbitrary-command-to-the-printer
44
+ */ async sendEmergencyM112(req, res) {
45
+ const { printerLogin } = (0, _validators.getScopedPrinter)(req);
46
+ const response = await this.octoPrintApiService.sendCustomGCodeCommand(printerLogin, "M112");
47
+ res.send(response);
48
+ }
49
+ async create(req, res) {
50
+ const entity = await this.customGCodeService.create(req.body);
51
+ res.send(this.customGCodeService.toDto(entity));
52
+ }
53
+ async delete(req, res) {
54
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
55
+ await this.customGCodeService.delete(id);
56
+ res.send();
57
+ }
58
+ async update(req, res) {
59
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
60
+ const updatedScript = await this.customGCodeService.update(id, req.body);
61
+ res.send(this.customGCodeService.toDto(updatedScript));
62
+ }
63
+ }
64
+ const _default = (0, _awilixexpress.createController)(CustomGCodeController).prefix(`${_serverconstants.AppConstants.apiRoute}/custom-gcode`).before([
65
+ (0, _authenticate.authenticate)(),
66
+ (0, _authenticate.authorizeRoles)([
67
+ _authorizationconstants.ROLES.ADMIN,
68
+ _authorizationconstants.ROLES.OPERATOR
69
+ ])
70
+ ]).get("/", "list").get("/:id", "get").post("/", "create").post("/send-emergency-m112/:printerId", "sendEmergencyM112", {
71
+ before: [
72
+ (0, _printer.printerResolveMiddleware)("printerId")
73
+ ]
74
+ }).delete("/:id", "delete").put("/:id", "update");
75
+
76
+ //# sourceMappingURL=custom-gcode.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/custom-gcode.controller.ts"],"names":["CustomGCodeController","octoPrintApiService","customGCodeService","constructor","list","req","res","entities","send","map","e","toDto","get","id","validateInput","params","idRules","entity","sendEmergencyM112","printerLogin","getScopedPrinter","response","sendCustomGCodeCommand","create","body","delete","update","updatedScript","createController","prefix","AppConstants","apiRoute","before","authenticate","authorizeRoles","ROLES","ADMIN","OPERATOR","post","printerResolveMiddleware","put"],"mappings":";;;;;;;;;;;IAWaA,qBAAqB;eAArBA;;IAqDb,OAQyB;eARzB;;;+BAhEiC;8BACY;iCAChB;wCACP;4BAC0B;mCACxB;yBACiB;AAKlC,MAAMA;IACHC,oBAAyC;IACzCC,mBAAwC;IAEhDC,YAAY,EACVD,kBAAkB,EAClBD,mBAAmB,EAIpB,CAAE;QACD,IAAI,CAACC,kBAAkB,GAAGA;QAC1B,IAAI,CAACD,mBAAmB,GAAGA;IAC7B;IAEA,MAAMG,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,WAAW,MAAM,IAAI,CAACL,kBAAkB,CAACE,IAAI;QACnDE,IAAIE,IAAI,CAACD,SAASE,GAAG,CAAC,CAACC,IAAM,IAAI,CAACR,kBAAkB,CAACS,KAAK,CAACD;IAC7D;IAEA,MAAME,IAAIP,GAAY,EAAEC,GAAa,EAAE;QACrC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,0BAAO;QACtD,MAAMC,SAAS,MAAM,IAAI,CAACf,kBAAkB,CAACU,GAAG,CAACC;QACjDP,IAAIE,IAAI,CAAC,IAAI,CAACN,kBAAkB,CAACS,KAAK,CAACM;IACzC;IAEA;;GAEC,GACD,MAAMC,kBAAkBb,GAAY,EAAEC,GAAa,EAAE;QACnD,MAAM,EAAEa,YAAY,EAAE,GAAGC,IAAAA,4BAAgB,EAACf;QAC1C,MAAMgB,WAAW,MAAM,IAAI,CAACpB,mBAAmB,CAACqB,sBAAsB,CAACH,cAAc;QACrFb,IAAIE,IAAI,CAACa;IACX;IAEA,MAAME,OAAOlB,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAMW,SAAS,MAAM,IAAI,CAACf,kBAAkB,CAACqB,MAAM,CAAClB,IAAImB,IAAI;QAC5DlB,IAAIE,IAAI,CAAC,IAAI,CAACN,kBAAkB,CAACS,KAAK,CAACM;IACzC;IAEA,MAAMQ,OAAOpB,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,0BAAO;QACtD,MAAM,IAAI,CAACd,kBAAkB,CAACuB,MAAM,CAACZ;QACrCP,IAAIE,IAAI;IACV;IAEA,MAAMkB,OAAOrB,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,0BAAO;QACtD,MAAMW,gBAAgB,MAAM,IAAI,CAACzB,kBAAkB,CAACwB,MAAM,CAACb,IAAIR,IAAImB,IAAI;QACvElB,IAAIE,IAAI,CAAC,IAAI,CAACN,kBAAkB,CAACS,KAAK,CAACgB;IACzC;AACF;MAEA,WAAeC,IAAAA,+BAAgB,EAAC5B,uBAC7B6B,MAAM,CAAC,CAAC,EAAEC,6BAAY,CAACC,QAAQ,CAAC,aAAa,CAAC,EAC9CC,MAAM,CAAC;IAACC,IAAAA,0BAAY;IAAIC,IAAAA,4BAAc,EAAC;QAACC,6BAAK,CAACC,KAAK;QAAED,6BAAK,CAACE,QAAQ;KAAC;CAAE,EACtEzB,GAAG,CAAC,KAAK,QACTA,GAAG,CAAC,QAAQ,OACZ0B,IAAI,CAAC,KAAK,UACVA,IAAI,CAAC,mCAAmC,qBAAqB;IAAEN,QAAQ;QAACO,IAAAA,iCAAwB,EAAC;KAAa;AAAC,GAC/Gd,MAAM,CAAC,QAAQ,UACfe,GAAG,CAAC,QAAQ"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ FirstTimeSetupController: function() {
13
+ return FirstTimeSetupController;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _awilixexpress = require("awilix-express");
20
+ const _serverconstants = require("../server.constants");
21
+ const _validators = require("../handlers/validators");
22
+ const _settingvalidation = require("./validation/setting.validation");
23
+ const _runtimeexceptions = require("../exceptions/runtime.exceptions");
24
+ const _authorizationconstants = require("../constants/authorization.constants");
25
+ class FirstTimeSetupController {
26
+ userService;
27
+ roleService;
28
+ settingsStore;
29
+ constructor({ settingsStore, roleService, userService }){
30
+ this.settingsStore = settingsStore;
31
+ this.roleService = roleService;
32
+ this.userService = userService;
33
+ }
34
+ async completeWizard(req, res) {
35
+ const { loginRequired, registration, rootUsername, rootPassword } = await (0, _validators.validateMiddleware)(req, _settingvalidation.wizardSettingsRules);
36
+ if (this.settingsStore.isWizardCompleted()) {
37
+ throw new _runtimeexceptions.AuthorizationError({
38
+ reason: "Wizard already completed"
39
+ });
40
+ }
41
+ const role = await this.roleService.getSynchronizedRoleByName(_authorizationconstants.ROLES.ADMIN);
42
+ const user = await this.userService.findRawByUsername(rootUsername?.toLowerCase());
43
+ if (!!user) {
44
+ throw new _runtimeexceptions.BadRequestException("This user already exists");
45
+ }
46
+ await this.userService.register({
47
+ username: rootUsername,
48
+ password: rootPassword,
49
+ roles: [
50
+ role.id
51
+ ],
52
+ isRootUser: true,
53
+ isVerified: true,
54
+ isDemoUser: false,
55
+ needsPasswordChange: false
56
+ });
57
+ await this.settingsStore.setLoginRequired(loginRequired);
58
+ await this.settingsStore.setRegistrationEnabled(registration);
59
+ await this.settingsStore.setWizardCompleted(_serverconstants.AppConstants.currentWizardVersion);
60
+ return res.send();
61
+ }
62
+ }
63
+ const _default = (0, _awilixexpress.createController)(FirstTimeSetupController).prefix(_serverconstants.AppConstants.apiRoute + "/first-time-setup").post("/complete", "completeWizard");
64
+
65
+ //# sourceMappingURL=first-time-setup.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/first-time-setup.controller.ts"],"names":["FirstTimeSetupController","userService","roleService","settingsStore","constructor","completeWizard","req","res","loginRequired","registration","rootUsername","rootPassword","validateMiddleware","wizardSettingsRules","isWizardCompleted","AuthorizationError","reason","role","getSynchronizedRoleByName","ROLES","ADMIN","user","findRawByUsername","toLowerCase","BadRequestException","register","username","password","roles","id","isRootUser","isVerified","isDemoUser","needsPasswordChange","setLoginRequired","setRegistrationEnabled","setWizardCompleted","AppConstants","currentWizardVersion","send","createController","prefix","apiRoute","post"],"mappings":";;;;;;;;;;;IAWaA,wBAAwB;eAAxBA;;IAkDb,OAEuC;eAFvC;;;+BA7DiC;iCACJ;4BACM;mCACC;mCACoB;wCAClC;AAMf,MAAMA;IACXC,YAA0B;IAC1BC,YAA0B;IAC1BC,cAA6B;IAE7BC,YAAY,EACVD,aAAa,EACbD,WAAW,EACXD,WAAW,EAKZ,CAAE;QACD,IAAI,CAACE,aAAa,GAAGA;QACrB,IAAI,CAACD,WAAW,GAAGA;QACnB,IAAI,CAACD,WAAW,GAAGA;IACrB;IAEA,MAAMI,eAAeC,GAAY,EAAEC,GAAa,EAAE;QAChD,MAAM,EAAEC,aAAa,EAAEC,YAAY,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAG,MAAMC,IAAAA,8BAAkB,EAACN,KAAKO,sCAAmB;QAErH,IAAI,IAAI,CAACV,aAAa,CAACW,iBAAiB,IAAI;YAC1C,MAAM,IAAIC,qCAAkB,CAAC;gBAAEC,QAAQ;YAA2B;QACpE;QAEA,MAAMC,OAAO,MAAM,IAAI,CAACf,WAAW,CAACgB,yBAAyB,CAACC,6BAAK,CAACC,KAAK;QAEzE,MAAMC,OAAO,MAAM,IAAI,CAACpB,WAAW,CAACqB,iBAAiB,CAACZ,cAAca;QACpE,IAAI,CAAC,CAACF,MAAM;YACV,MAAM,IAAIG,sCAAmB,CAAC;QAChC;QAEA,MAAM,IAAI,CAACvB,WAAW,CAACwB,QAAQ,CAAC;YAC9BC,UAAUhB;YACViB,UAAUhB;YACViB,OAAO;gBAACX,KAAKY,EAAE;aAAC;YAChBC,YAAY;YACZC,YAAY;YACZC,YAAY;YACZC,qBAAqB;QACvB;QACA,MAAM,IAAI,CAAC9B,aAAa,CAAC+B,gBAAgB,CAAC1B;QAC1C,MAAM,IAAI,CAACL,aAAa,CAACgC,sBAAsB,CAAC1B;QAChD,MAAM,IAAI,CAACN,aAAa,CAACiC,kBAAkB,CAACC,6BAAY,CAACC,oBAAoB;QAE7E,OAAO/B,IAAIgC,IAAI;IACjB;AACF;MAEA,WAAeC,IAAAA,+BAAgB,EAACxC,0BAC7ByC,MAAM,CAACJ,6BAAY,CAACK,QAAQ,GAAG,qBAC/BC,IAAI,CAAC,aAAa"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ FloorController: function() {
13
+ return FloorController;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _awilixexpress = require("awilix-express");
20
+ const _authenticate = require("../middleware/authenticate");
21
+ const _serverconstants = require("../server.constants");
22
+ const _validators = require("../handlers/validators");
23
+ const _genericvalidation = require("./validation/generic.validation");
24
+ const _authorizationconstants = require("../constants/authorization.constants");
25
+ class FloorController {
26
+ floorStore;
27
+ constructor({ floorStore }){
28
+ this.floorStore = floorStore;
29
+ }
30
+ async create(req, res) {
31
+ // Has internal validation
32
+ const floor = await this.floorStore.create(req.body);
33
+ res.send(floor);
34
+ }
35
+ async updateName(req, res) {
36
+ const { id: floorId } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
37
+ // Has internal validation
38
+ const floor = await this.floorStore.updateName(floorId, req.body.name);
39
+ res.send(floor);
40
+ }
41
+ async updateFloorNumber(req, res) {
42
+ const { id: floorId } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
43
+ // Has internal validation
44
+ const floor = await this.floorStore.updateFloorNumber(floorId, req.body.floor);
45
+ res.send(floor);
46
+ }
47
+ async addPrinterToFloor(req, res) {
48
+ const { id: floorId } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
49
+ // Has internal validation
50
+ const floor = await this.floorStore.addOrUpdatePrinter(floorId, req.body);
51
+ res.send(floor);
52
+ }
53
+ async removePrinterFromFloor(req, res) {
54
+ const { id: floorId } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
55
+ // Has internal validation
56
+ const floor = await this.floorStore.removePrinter(floorId, req.body.printerId);
57
+ res.send(floor);
58
+ }
59
+ async list(req, res) {
60
+ const floors = await this.floorStore.listCache();
61
+ res.send(floors);
62
+ }
63
+ async get(req, res) {
64
+ const { id: floorId } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
65
+ const floor = await this.floorStore.getFloor(floorId);
66
+ res.send(floor);
67
+ }
68
+ async delete(req, res) {
69
+ const { id: floorId } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
70
+ await this.floorStore.delete(floorId);
71
+ res.send();
72
+ }
73
+ }
74
+ const _default = (0, _awilixexpress.createController)(FloorController).prefix(_serverconstants.AppConstants.apiRoute + "/floor").before([
75
+ (0, _authenticate.authenticate)()
76
+ ]).get("/", "list", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.List)).get("/:id", "get", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Get)).patch("/:id/name", "updateName", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Update)).patch("/:id/floor-number", "updateFloorNumber", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Update)).post("/:id/printer", "addPrinterToFloor", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Update)).delete("/:id/printer", "removePrinterFromFloor", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Update)).delete("/:id", "delete", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Delete)).post("/", "create", (0, _authenticate.withPermission)(_authorizationconstants.PERMS.PrinterFloors.Create));
77
+
78
+ //# sourceMappingURL=floor.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/floor.controller.ts"],"names":["FloorController","floorStore","constructor","create","req","res","floor","body","send","updateName","id","floorId","validateInput","params","idRules","name","updateFloorNumber","addPrinterToFloor","addOrUpdatePrinter","removePrinterFromFloor","removePrinter","printerId","list","floors","listCache","get","getFloor","delete","createController","prefix","AppConstants","apiRoute","before","authenticate","withPermission","PERMS","PrinterFloors","List","Get","patch","Update","post","Delete","Create"],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ PluginFirmwareUpdateController: function() {
13
+ return PluginFirmwareUpdateController;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _awilixexpress = require("awilix-express");
20
+ const _serverconstants = require("../server.constants");
21
+ const _authenticate = require("../middleware/authenticate");
22
+ const _authorizationconstants = require("../constants/authorization.constants");
23
+ const _printer = require("../middleware/printer");
24
+ const _validators = require("../handlers/validators");
25
+ const cacheKey = "firmware-state";
26
+ class PluginFirmwareUpdateController {
27
+ cacheManager;
28
+ printerCache;
29
+ pluginFirmwareUpdateService;
30
+ logger;
31
+ constructor({ cacheManager, printerCache, pluginFirmwareUpdateService, loggerFactory }){
32
+ this.cacheManager = cacheManager;
33
+ this.printerCache = printerCache;
34
+ this.pluginFirmwareUpdateService = pluginFirmwareUpdateService;
35
+ this.logger = loggerFactory(PluginFirmwareUpdateController.name);
36
+ }
37
+ async listUpdateState(req, res) {
38
+ const result = await this.performScanOnPrinters();
39
+ res.send(result);
40
+ }
41
+ /**
42
+ * Explicit query, use with care (to prevent Github rate limit)
43
+ */ async syncFirmwareReleasesCache(req, res) {
44
+ const releases = await this.pluginFirmwareUpdateService.queryGithubPrusaFirmwareReleasesCache();
45
+ res.send(releases);
46
+ }
47
+ async downloadFirmware(req, res) {
48
+ await this.pluginFirmwareUpdateService.downloadFirmware();
49
+ res.send({});
50
+ }
51
+ async scanPrinterFirmwareVersions(req, res) {
52
+ const result = await this.performScanOnPrinters();
53
+ res.send(result);
54
+ }
55
+ async isPluginInstalled(req, res) {
56
+ const { printerLogin } = (0, _validators.getScopedPrinter)(req);
57
+ const isInstalled = await this.pluginFirmwareUpdateService.isPluginInstalled(printerLogin);
58
+ res.send({
59
+ isInstalled
60
+ });
61
+ }
62
+ async installFirmwareUpdatePlugin(req, res) {
63
+ const { printerLogin } = (0, _validators.getScopedPrinter)(req);
64
+ const isInstalled = await this.pluginFirmwareUpdateService.isPluginInstalled(printerLogin);
65
+ if (!isInstalled) {
66
+ this.logger.log("Installing firmware-update plugin");
67
+ await this.pluginFirmwareUpdateService.installPlugin(printerLogin);
68
+ res.send({
69
+ isInstalled,
70
+ installing: true
71
+ });
72
+ return;
73
+ }
74
+ res.send({
75
+ isInstalled,
76
+ installing: false
77
+ });
78
+ }
79
+ async getFirmwareUpdaterStatus(req, res) {
80
+ const { printerLogin } = (0, _validators.getScopedPrinter)(req);
81
+ const status = await this.pluginFirmwareUpdateService.getPluginFirmwareStatus(printerLogin);
82
+ res.send(status);
83
+ }
84
+ async configurePluginSettings(req, res) {
85
+ const { printerLogin } = (0, _validators.getScopedPrinter)(req);
86
+ const response = await this.pluginFirmwareUpdateService.configureFirmwareUpdaterSettings(printerLogin);
87
+ res.send(response);
88
+ }
89
+ async flashFirmware(req, res) {
90
+ const { printerLogin, currentPrinterId } = (0, _validators.getScopedPrinter)(req);
91
+ await this.pluginFirmwareUpdateService.flashPrusaFirmware(currentPrinterId, printerLogin);
92
+ res.send({});
93
+ }
94
+ async performScanOnPrinters() {
95
+ const printers = await this.printerCache.listCachedPrinters();
96
+ const printerFirmwareStates = [];
97
+ const failureStates = [];
98
+ for (let printer of printers){
99
+ try {
100
+ const loginDto = await this.printerCache.getLoginDtoAsync(printer.id);
101
+ const isInstalled = await this.pluginFirmwareUpdateService.isPluginInstalled(loginDto);
102
+ let version;
103
+ if (isInstalled) {
104
+ version = await this.pluginFirmwareUpdateService.getPrinterFirmwareVersion(loginDto);
105
+ }
106
+ printerFirmwareStates.push({
107
+ id: printer.id,
108
+ firmware: version,
109
+ printerName: printer.name,
110
+ pluginInstalled: isInstalled
111
+ });
112
+ } catch (e) {
113
+ this.logger.warn("Firmware updater plugin scan failed", e);
114
+ failureStates.push({
115
+ id: printer.id,
116
+ printerName: printer.name,
117
+ error: e
118
+ });
119
+ }
120
+ }
121
+ const result = {
122
+ firmwareStates: printerFirmwareStates,
123
+ failures: failureStates
124
+ };
125
+ await this.cacheManager.set(cacheKey, result, {
126
+ ttl: 3600 * 4
127
+ });
128
+ return result;
129
+ }
130
+ }
131
+ const _default = (0, _awilixexpress.createController)(PluginFirmwareUpdateController).prefix(_serverconstants.AppConstants.apiRoute + "/plugin/firmware-update").before([
132
+ (0, _authenticate.authenticate)(),
133
+ (0, _authenticate.authorizeRoles)([
134
+ _authorizationconstants.ROLES.OPERATOR,
135
+ _authorizationconstants.ROLES.ADMIN
136
+ ]),
137
+ (0, _printer.printerResolveMiddleware)()
138
+ ]).get("/", "listUpdateState").post("/releases/sync", "syncFirmwareReleasesCache").post("/scan", "scanPrinterFirmwareVersions").post("/download-firmware", "downloadFirmware").post("/:id/install-firmware-update-plugin", "installFirmwareUpdatePlugin").get("/:id/is-plugin-installed", "isPluginInstalled").post("/:id/configure-plugin-settings", "configurePluginSettings").get("/:id/status", "getFirmwareUpdaterStatus").post("/:id/flash-firmware", "flashFirmware");
139
+
140
+ //# sourceMappingURL=plugin-firmware-update.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/controllers/plugin-firmware-update.controller.ts"],"names":["PluginFirmwareUpdateController","cacheKey","cacheManager","printerCache","pluginFirmwareUpdateService","logger","constructor","loggerFactory","name","listUpdateState","req","res","result","performScanOnPrinters","send","syncFirmwareReleasesCache","releases","queryGithubPrusaFirmwareReleasesCache","downloadFirmware","scanPrinterFirmwareVersions","isPluginInstalled","printerLogin","getScopedPrinter","isInstalled","installFirmwareUpdatePlugin","log","installPlugin","installing","getFirmwareUpdaterStatus","status","getPluginFirmwareStatus","configurePluginSettings","response","configureFirmwareUpdaterSettings","flashFirmware","currentPrinterId","flashPrusaFirmware","printers","listCachedPrinters","printerFirmwareStates","failureStates","printer","loginDto","getLoginDtoAsync","id","version","getPrinterFirmwareVersion","push","firmware","printerName","pluginInstalled","e","warn","error","firmwareStates","failures","set","ttl","createController","prefix","AppConstants","apiRoute","before","authenticate","authorizeRoles","ROLES","OPERATOR","ADMIN","printerResolveMiddleware","get","post"],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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() {
13
+ return PrintCompletionController;
14
+ },
15
+ // prettier-ignore
16
+ default: function() {
17
+ return _default;
18
+ }
19
+ });
20
+ const _authenticate = require("../middleware/authenticate");
21
+ const _awilixexpress = require("awilix-express");
22
+ const _serverconstants = require("../server.constants");
23
+ const _authorizationconstants = require("../constants/authorization.constants");
24
+ const _validators = require("../handlers/validators");
25
+ class PrintCompletionController {
26
+ printCompletionService;
27
+ printCompletionSocketIoTask;
28
+ constructor({ printCompletionService, printCompletionSocketIoTask }){
29
+ this.printCompletionService = printCompletionService;
30
+ this.printCompletionSocketIoTask = printCompletionSocketIoTask;
31
+ }
32
+ /**
33
+ * Not a production ready call, just for testing.
34
+ */ async test(req, res) {
35
+ const result = await this.printCompletionService.loadPrintContexts();
36
+ res.send(result);
37
+ }
38
+ contexts(req, res) {
39
+ const contexts = this.printCompletionSocketIoTask.contexts;
40
+ res.send(contexts);
41
+ }
42
+ async findCorrelatedEntries(req, res) {
43
+ const { correlationId } = await (0, _validators.validateInput)(req.params, {
44
+ correlationId: "required|string"
45
+ });
46
+ const result = await this.printCompletionService.findPrintCompletion(correlationId);
47
+ res.send(result);
48
+ }
49
+ async list(req, res) {
50
+ const completions = await this.printCompletionService.listGroupByPrinterStatus();
51
+ res.send(completions);
52
+ }
53
+ }
54
+ const _default = (0, _awilixexpress.createController)(PrintCompletionController).prefix(_serverconstants.AppConstants.apiRoute + "/print-completion").before([
55
+ (0, _authenticate.authenticate)()
56
+ ]).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));
57
+
58
+ //# sourceMappingURL=print-completion.controller.js.map
@@ -0,0 +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,kBAAkB;IAClB,OAMkG;eANlG;;;8BAlD6C;+BACZ;iCACJ;wCACP;4BACQ;AAKvB,MAAMA;IACHC,uBAA+C;IAC/CC,4BAAyD;IAEjEC,YAAY,EACVF,sBAAsB,EACtBC,2BAA2B,EAI5B,CAAE;QACD,IAAI,CAACD,sBAAsB,GAAGA;QAC9B,IAAI,CAACC,2BAA2B,GAAGA;IACrC;IAEA;;GAEC,GACD,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;MAGA,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"}