@fdm-monster/server 1.9.4 → 2.0.0

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 (393) hide show
  1. package/.env.template +8 -7
  2. package/.yarn/install-state.gz +0 -0
  3. package/CONTRIBUTING.md +5 -5
  4. package/README.md +9 -8
  5. package/RELEASE_NOTES.MD +52 -0
  6. package/SECURITY.md +1 -1
  7. package/biome.json +8 -5
  8. package/dist/consoles/download-github-releases.js +3 -3
  9. package/dist/consoles/launch-http-servers.js +4 -4
  10. package/dist/consoles/launch-http-servers.js.map +1 -1
  11. package/dist/consoles/mock-bambu.server.js +50 -30
  12. package/dist/consoles/mock-bambu.server.js.map +1 -1
  13. package/dist/consoles/mock-camera/default-image.js +13 -0
  14. package/dist/consoles/mock-camera/default-image.js.map +1 -0
  15. package/dist/consoles/mock-camera/mock-camera.server.js +160 -0
  16. package/dist/consoles/mock-camera/mock-camera.server.js.map +1 -0
  17. package/dist/consoles/mock-octoprint.server.js +281 -73
  18. package/dist/consoles/mock-octoprint.server.js.map +1 -1
  19. package/dist/consoles/mock-prusalink.server.js +17 -17
  20. package/dist/consoles/mock-prusalink.server.js.map +1 -1
  21. package/dist/consoles/typeorm-create.js +135 -0
  22. package/dist/consoles/typeorm-create.js.map +1 -0
  23. package/dist/consoles/typeorm-generate.js +8 -8
  24. package/dist/consoles/typeorm-generate.js.map +1 -1
  25. package/dist/consoles/utils/api-messages.js.map +1 -1
  26. package/dist/constants/authorization.constants.js +25 -31
  27. package/dist/constants/authorization.constants.js.map +1 -1
  28. package/dist/constants/event.constants.js.map +1 -1
  29. package/dist/constants/server-settings.constants.js +3 -19
  30. package/dist/constants/server-settings.constants.js.map +1 -1
  31. package/dist/container.js +43 -59
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.tokens.js +9 -6
  34. package/dist/container.tokens.js.map +1 -1
  35. package/dist/controllers/auth.controller.js +1 -1
  36. package/dist/controllers/auth.controller.js.map +1 -1
  37. package/dist/controllers/batch-call.controller.js +7 -25
  38. package/dist/controllers/batch-call.controller.js.map +1 -1
  39. package/dist/controllers/file-storage.controller.js +248 -0
  40. package/dist/controllers/file-storage.controller.js.map +1 -0
  41. package/dist/controllers/first-time-setup.controller.js +6 -5
  42. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  43. package/dist/controllers/floor.controller.js +12 -12
  44. package/dist/controllers/floor.controller.js.map +1 -1
  45. package/dist/controllers/metrics.controller.js.map +1 -1
  46. package/dist/controllers/print-job.controller.js +666 -0
  47. package/dist/controllers/print-job.controller.js.map +1 -0
  48. package/dist/controllers/print-queue.controller.js +375 -0
  49. package/dist/controllers/print-queue.controller.js.map +1 -0
  50. package/dist/controllers/printer-files.controller.js +88 -59
  51. package/dist/controllers/printer-files.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +0 -21
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/{printer-group.controller.js → printer-tag.controller.js} +51 -34
  55. package/dist/controllers/printer-tag.controller.js.map +1 -0
  56. package/dist/controllers/printer.controller.js +21 -7
  57. package/dist/controllers/printer.controller.js.map +1 -1
  58. package/dist/controllers/server-private.controller.js +2 -1
  59. package/dist/controllers/server-private.controller.js.map +1 -1
  60. package/dist/controllers/server-public.controller.js +11 -15
  61. package/dist/controllers/server-public.controller.js.map +1 -1
  62. package/dist/controllers/settings.controller.js +0 -68
  63. package/dist/controllers/settings.controller.js.map +1 -1
  64. package/dist/controllers/slicer-compat.controller.js +216 -0
  65. package/dist/controllers/slicer-compat.controller.js.map +1 -0
  66. package/dist/controllers/user.controller.js +8 -12
  67. package/dist/controllers/user.controller.js.map +1 -1
  68. package/dist/controllers/validation/batch-controller.validation.js +13 -13
  69. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  70. package/dist/controllers/validation/generic.validation.js +4 -8
  71. package/dist/controllers/validation/generic.validation.js.map +1 -1
  72. package/dist/controllers/validation/printer-files-controller.validation.js +2 -2
  73. package/dist/controllers/validation/user-controller.validation.js +14 -9
  74. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  75. package/dist/data-source.js +25 -12
  76. package/dist/data-source.js.map +1 -1
  77. package/dist/entities/camera-stream.entity.js +2 -1
  78. package/dist/entities/camera-stream.entity.js.map +1 -1
  79. package/dist/entities/floor.entity.js +3 -5
  80. package/dist/entities/floor.entity.js.map +1 -1
  81. package/dist/entities/index.js +15 -11
  82. package/dist/entities/index.js.map +1 -1
  83. package/dist/entities/print-job.entity.js +195 -0
  84. package/dist/entities/print-job.entity.js.map +1 -0
  85. package/dist/entities/{printer-group.entity.js → printer-tag.entity.js} +17 -17
  86. package/dist/entities/printer-tag.entity.js.map +1 -0
  87. package/dist/entities/printer.entity.js +4 -10
  88. package/dist/entities/printer.entity.js.map +1 -1
  89. package/dist/entities/settings.entity.js +3 -12
  90. package/dist/entities/settings.entity.js.map +1 -1
  91. package/dist/entities/{group.entity.js → tag.entity.js} +15 -8
  92. package/dist/entities/tag.entity.js.map +1 -0
  93. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  94. package/dist/handlers/logging/static.logger.js.map +1 -1
  95. package/dist/index.js +8 -2
  96. package/dist/index.js.map +1 -1
  97. package/dist/middleware/authenticate.js +4 -4
  98. package/dist/middleware/authenticate.js.map +1 -1
  99. package/dist/middleware/database.js +1 -1
  100. package/dist/middleware/exception.filter.js +114 -90
  101. package/dist/middleware/exception.filter.js.map +1 -1
  102. package/dist/middleware/global.middleware.js +10 -18
  103. package/dist/middleware/global.middleware.js.map +1 -1
  104. package/dist/middleware/param-converter.middleware.js +5 -13
  105. package/dist/middleware/param-converter.middleware.js.map +1 -1
  106. package/dist/middleware/passport.js +2 -2
  107. package/dist/middleware/passport.js.map +1 -1
  108. package/dist/middleware/printer-resolver.js.map +1 -1
  109. package/dist/middleware/printer.js +3 -2
  110. package/dist/middleware/printer.js.map +1 -1
  111. package/dist/middleware/socketio.middleware.js.map +1 -1
  112. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +1 -1
  113. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
  114. package/dist/migrations/1766576698569-DropPermissions.js +28 -0
  115. package/dist/migrations/1766576698569-DropPermissions.js.map +1 -0
  116. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +186 -0
  117. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -0
  118. package/dist/migrations/1767279607392-DropCustomGcode.js +31 -0
  119. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -0
  120. package/dist/migrations/1767291804417-DropPrintCompletions.js +37 -0
  121. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -0
  122. package/dist/migrations/1767352862576-DropSettingsFileClean.js +88 -0
  123. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -0
  124. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +107 -0
  125. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -0
  126. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +62 -0
  127. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -0
  128. package/dist/migrations/1767432108916-RenameGroupToTag.js +86 -0
  129. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -0
  130. package/dist/migrations/1767451444137-AddPrintJob.js +207 -0
  131. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -0
  132. package/dist/server.constants.js +9 -17
  133. package/dist/server.constants.js.map +1 -1
  134. package/dist/server.core.js +3 -7
  135. package/dist/server.core.js.map +1 -1
  136. package/dist/server.env.js +4 -49
  137. package/dist/server.env.js.map +1 -1
  138. package/dist/server.host.js +26 -44
  139. package/dist/server.host.js.map +1 -1
  140. package/dist/services/authentication/auth.service.js.map +1 -1
  141. package/dist/services/authentication/jwt.service.js.map +1 -1
  142. package/dist/services/bambu/bambu-ftp.adapter.js +3 -3
  143. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  144. package/dist/services/bambu/bambu-mqtt.adapter.js +74 -77
  145. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  146. package/dist/services/bambu/bambu.client.js.map +1 -1
  147. package/dist/services/bambu.api.js +11 -0
  148. package/dist/services/bambu.api.js.map +1 -1
  149. package/dist/services/core/batch-call.service.js +0 -25
  150. package/dist/services/core/batch-call.service.js.map +1 -1
  151. package/dist/services/core/multer.service.js +5 -9
  152. package/dist/services/core/multer.service.js.map +1 -1
  153. package/dist/services/core/yaml.service.js +219 -187
  154. package/dist/services/core/yaml.service.js.map +1 -1
  155. package/dist/services/file-analysis.service.js +146 -0
  156. package/dist/services/file-analysis.service.js.map +1 -0
  157. package/dist/services/file-storage.service.js +386 -0
  158. package/dist/services/file-storage.service.js.map +1 -0
  159. package/dist/services/interfaces/camera-stream.dto.js +2 -2
  160. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  161. package/dist/services/interfaces/floor.dto.js +3 -3
  162. package/dist/services/interfaces/floor.dto.js.map +1 -1
  163. package/dist/services/interfaces/{printer-group.dto.js → printer-tag.dto.js} +9 -8
  164. package/dist/services/interfaces/printer-tag.dto.js.map +1 -0
  165. package/dist/services/interfaces/{print-completion.interface.js → printer-tag.service.interface.js} +1 -1
  166. package/dist/services/interfaces/{printer-group.service.interface.js.map → printer-tag.service.interface.js.map} +1 -1
  167. package/dist/services/interfaces/printer.dto.js +2 -2
  168. package/dist/services/interfaces/printer.dto.js.map +1 -1
  169. package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
  170. package/dist/services/interfaces/role.dto.js.map +1 -1
  171. package/dist/services/interfaces/settings.dto.js +0 -1
  172. package/dist/services/interfaces/settings.dto.js.map +1 -1
  173. package/dist/services/interfaces/{group.dto.js → tag.dto.js} +1 -1
  174. package/dist/services/interfaces/tag.dto.js.map +1 -0
  175. package/dist/services/interfaces/user.dto.js.map +1 -1
  176. package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
  177. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  178. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  179. package/dist/services/moonraker.api.js +3 -0
  180. package/dist/services/moonraker.api.js.map +1 -1
  181. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +1 -0
  182. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  183. package/dist/services/octoprint/octoprint-api.routes.js +0 -7
  184. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  185. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  186. package/dist/services/octoprint/octoprint.client.js +0 -4
  187. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  188. package/dist/services/octoprint.api.js +3 -0
  189. package/dist/services/octoprint.api.js.map +1 -1
  190. package/dist/services/orm/base.service.js.map +1 -1
  191. package/dist/services/orm/camera-stream.service.js.map +1 -1
  192. package/dist/services/orm/floor-position.service.js.map +1 -1
  193. package/dist/services/orm/floor.service.js +12 -19
  194. package/dist/services/orm/floor.service.js.map +1 -1
  195. package/dist/services/orm/permission.service.js +3 -54
  196. package/dist/services/orm/permission.service.js.map +1 -1
  197. package/dist/services/orm/print-job.service.js +539 -0
  198. package/dist/services/orm/print-job.service.js.map +1 -0
  199. package/dist/services/orm/printer-tag.service.js +120 -0
  200. package/dist/services/orm/printer-tag.service.js.map +1 -0
  201. package/dist/services/orm/printer.service.js.map +1 -1
  202. package/dist/services/orm/refresh-token.service.js.map +1 -1
  203. package/dist/services/orm/role.service.js +25 -39
  204. package/dist/services/orm/role.service.js.map +1 -1
  205. package/dist/services/orm/settings.service.js +4 -15
  206. package/dist/services/orm/settings.service.js.map +1 -1
  207. package/dist/services/orm/user.service.js +17 -13
  208. package/dist/services/orm/user.service.js.map +1 -1
  209. package/dist/services/print-file-downloader.service.js +169 -0
  210. package/dist/services/print-file-downloader.service.js.map +1 -0
  211. package/dist/services/print-queue.service.js +268 -0
  212. package/dist/services/print-queue.service.js.map +1 -0
  213. package/dist/services/printer-api.factory.js +1 -1
  214. package/dist/services/printer-api.factory.js.map +1 -1
  215. package/dist/services/printer-api.interface.js.map +1 -1
  216. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
  217. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +1 -3
  218. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  219. package/dist/services/prusa-link/prusa-link.api.js +4 -1
  220. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  221. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
  222. package/dist/services/validators/floor-service.validation.js +25 -31
  223. package/dist/services/validators/floor-service.validation.js.map +1 -1
  224. package/dist/services/validators/print-job.validation.js +31 -0
  225. package/dist/services/validators/print-job.validation.js.map +1 -0
  226. package/dist/services/validators/settings-service.validation.js +0 -22
  227. package/dist/services/validators/settings-service.validation.js.map +1 -1
  228. package/dist/services/validators/user-service.validation.js +15 -10
  229. package/dist/services/validators/user-service.validation.js.map +1 -1
  230. package/dist/services/validators/yaml-service.validation.js +8 -14
  231. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  232. package/dist/shared/load-controllers.js +2 -1
  233. package/dist/shared/load-controllers.js.map +1 -1
  234. package/dist/shared/runtime-settings.migration.js +1 -11
  235. package/dist/shared/runtime-settings.migration.js.map +1 -1
  236. package/dist/shared/websocket-rpc-extended.adapter.js +13 -4
  237. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  238. package/dist/shared/websocket.adapter.js.map +1 -1
  239. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  240. package/dist/state/file.cache.js +6 -6
  241. package/dist/state/file.cache.js.map +1 -1
  242. package/dist/state/floor.store.js +3 -10
  243. package/dist/state/floor.store.js.map +1 -1
  244. package/dist/state/printer-events.cache.js +180 -20
  245. package/dist/state/printer-events.cache.js.map +1 -1
  246. package/dist/state/printer-files.store.js.map +1 -1
  247. package/dist/state/printer-socket.store.js +25 -20
  248. package/dist/state/printer-socket.store.js.map +1 -1
  249. package/dist/state/printer-thumbnail.cache.js +98 -188
  250. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  251. package/dist/state/printer.cache.js +3 -13
  252. package/dist/state/printer.cache.js.map +1 -1
  253. package/dist/state/settings.store.js +4 -42
  254. package/dist/state/settings.store.js.map +1 -1
  255. package/dist/state/socket-io.gateway.js +1 -1
  256. package/dist/state/socket-io.gateway.js.map +1 -1
  257. package/dist/state/test-printer-socket.store.js +6 -3
  258. package/dist/state/test-printer-socket.store.js.map +1 -1
  259. package/dist/tasks/boot.task.js +11 -91
  260. package/dist/tasks/boot.task.js.map +1 -1
  261. package/dist/tasks/print-job-analysis.task.js +116 -0
  262. package/dist/tasks/print-job-analysis.task.js.map +1 -0
  263. package/dist/tasks/printer-files-load.task.js +29 -0
  264. package/dist/tasks/printer-files-load.task.js.map +1 -0
  265. package/dist/tasks/socketio.task.js +1 -1
  266. package/dist/tasks/socketio.task.js.map +1 -1
  267. package/dist/tasks.js +3 -2
  268. package/dist/tasks.js.map +1 -1
  269. package/dist/utils/cache/key-diff.cache.js +20 -61
  270. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  271. package/dist/utils/parsers/3mf.parser.js +337 -0
  272. package/dist/utils/parsers/3mf.parser.js.map +1 -0
  273. package/dist/utils/parsers/bgcode.parser.js +223 -0
  274. package/dist/utils/parsers/bgcode.parser.js.map +1 -0
  275. package/dist/utils/parsers/gcode.parser.js +254 -0
  276. package/dist/utils/parsers/gcode.parser.js.map +1 -0
  277. package/dist/utils/swagger/decorators.js +39 -0
  278. package/dist/utils/swagger/decorators.js.map +1 -0
  279. package/dist/utils/swagger/generator.js +196 -0
  280. package/dist/utils/swagger/generator.js.map +1 -0
  281. package/dist/utils/swagger/swagger.js +93 -0
  282. package/dist/utils/swagger/swagger.js.map +1 -0
  283. package/package.json +24 -30
  284. package/dist/controllers/custom-gcode.controller.js +0 -150
  285. package/dist/controllers/custom-gcode.controller.js.map +0 -1
  286. package/dist/controllers/print-completion.controller.js +0 -118
  287. package/dist/controllers/print-completion.controller.js.map +0 -1
  288. package/dist/controllers/printer-group.controller.js.map +0 -1
  289. package/dist/entities/custom-gcode.entity.js +0 -49
  290. package/dist/entities/custom-gcode.entity.js.map +0 -1
  291. package/dist/entities/group.entity.js.map +0 -1
  292. package/dist/entities/permission.entity.js +0 -37
  293. package/dist/entities/permission.entity.js.map +0 -1
  294. package/dist/entities/print-completion.entity.js +0 -90
  295. package/dist/entities/print-completion.entity.js.map +0 -1
  296. package/dist/entities/printer-group.entity.js.map +0 -1
  297. package/dist/models/Auth/Permission.js +0 -20
  298. package/dist/models/Auth/Permission.js.map +0 -1
  299. package/dist/models/Auth/RefreshToken.js +0 -41
  300. package/dist/models/Auth/RefreshToken.js.map +0 -1
  301. package/dist/models/Auth/Role.js +0 -20
  302. package/dist/models/Auth/Role.js.map +0 -1
  303. package/dist/models/Auth/User.js +0 -49
  304. package/dist/models/Auth/User.js.map +0 -1
  305. package/dist/models/CameraStream.js +0 -49
  306. package/dist/models/CameraStream.js.map +0 -1
  307. package/dist/models/CustomGcode.js +0 -28
  308. package/dist/models/CustomGcode.js.map +0 -1
  309. package/dist/models/Floor.js +0 -33
  310. package/dist/models/Floor.js.map +0 -1
  311. package/dist/models/FloorPrinter.js +0 -38
  312. package/dist/models/FloorPrinter.js.map +0 -1
  313. package/dist/models/PrintCompletion.js +0 -40
  314. package/dist/models/PrintCompletion.js.map +0 -1
  315. package/dist/models/Printer.js +0 -78
  316. package/dist/models/Printer.js.map +0 -1
  317. package/dist/models/Settings.js +0 -150
  318. package/dist/models/Settings.js.map +0 -1
  319. package/dist/models/index.js +0 -54
  320. package/dist/models/index.js.map +0 -1
  321. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -45
  322. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +0 -1
  323. package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -35
  324. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +0 -1
  325. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -35
  326. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +0 -1
  327. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +0 -60
  328. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +0 -1
  329. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +0 -30
  330. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +0 -1
  331. package/dist/mongo-migrations/20230716065316-user-remove-name.js +0 -30
  332. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +0 -1
  333. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js +0 -35
  334. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +0 -1
  335. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js +0 -41
  336. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +0 -1
  337. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +0 -41
  338. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +0 -1
  339. package/dist/services/interfaces/custom-gcode.dto.js +0 -18
  340. package/dist/services/interfaces/custom-gcode.dto.js.map +0 -1
  341. package/dist/services/interfaces/custom-gcode.service.interface.js +0 -6
  342. package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -1
  343. package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -1
  344. package/dist/services/interfaces/group.dto.js.map +0 -1
  345. package/dist/services/interfaces/permission.dto.js +0 -16
  346. package/dist/services/interfaces/permission.dto.js.map +0 -1
  347. package/dist/services/interfaces/print-completion-context.dto.js +0 -6
  348. package/dist/services/interfaces/print-completion-context.dto.js.map +0 -1
  349. package/dist/services/interfaces/print-completion.dto.js +0 -38
  350. package/dist/services/interfaces/print-completion.dto.js.map +0 -1
  351. package/dist/services/interfaces/print-completion.interface.js.map +0 -1
  352. package/dist/services/interfaces/printer-group.dto.js.map +0 -1
  353. package/dist/services/interfaces/printer-group.service.interface.js +0 -6
  354. package/dist/services/mongoose/camera-stream.service.js +0 -67
  355. package/dist/services/mongoose/camera-stream.service.js.map +0 -1
  356. package/dist/services/mongoose/custom-gcode.service.js +0 -50
  357. package/dist/services/mongoose/custom-gcode.service.js.map +0 -1
  358. package/dist/services/mongoose/floor.service.js +0 -139
  359. package/dist/services/mongoose/floor.service.js.map +0 -1
  360. package/dist/services/mongoose/permission.service.js +0 -73
  361. package/dist/services/mongoose/permission.service.js.map +0 -1
  362. package/dist/services/mongoose/print-completion.service.js +0 -134
  363. package/dist/services/mongoose/print-completion.service.js.map +0 -1
  364. package/dist/services/mongoose/print-completion.shared.js +0 -59
  365. package/dist/services/mongoose/print-completion.shared.js.map +0 -1
  366. package/dist/services/mongoose/printer.service.js +0 -216
  367. package/dist/services/mongoose/printer.service.js.map +0 -1
  368. package/dist/services/mongoose/refresh-token.service.js +0 -104
  369. package/dist/services/mongoose/refresh-token.service.js.map +0 -1
  370. package/dist/services/mongoose/role.service.js +0 -132
  371. package/dist/services/mongoose/role.service.js.map +0 -1
  372. package/dist/services/mongoose/settings.service.js +0 -124
  373. package/dist/services/mongoose/settings.service.js.map +0 -1
  374. package/dist/services/mongoose/user.service.js +0 -180
  375. package/dist/services/mongoose/user.service.js.map +0 -1
  376. package/dist/services/orm/custom-gcode.service.js +0 -42
  377. package/dist/services/orm/custom-gcode.service.js.map +0 -1
  378. package/dist/services/orm/print-completion.service.js +0 -87
  379. package/dist/services/orm/print-completion.service.js.map +0 -1
  380. package/dist/services/orm/printer-group.service.js +0 -109
  381. package/dist/services/orm/printer-group.service.js.map +0 -1
  382. package/dist/services/validators/camera-service.validation.js +0 -19
  383. package/dist/services/validators/camera-service.validation.js.map +0 -1
  384. package/dist/services/validators/print-completion-service.validation.js +0 -33
  385. package/dist/services/validators/print-completion-service.validation.js.map +0 -1
  386. package/dist/shared.constants.js +0 -15
  387. package/dist/shared.constants.js.map +0 -1
  388. package/dist/tasks/print-completion.socketio.task.js +0 -91
  389. package/dist/tasks/print-completion.socketio.task.js.map +0 -1
  390. package/dist/tasks/printer-file-clean.task.js +0 -74
  391. package/dist/tasks/printer-file-clean.task.js.map +0 -1
  392. package/migrate-mongo-config.js +0 -45
  393. /package/dist/services/{interfaces → octoprint/dto/files}/gcode-analysis.dto.js +0 -0
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "PrintCompletionService", {
6
- enumerable: true,
7
- get: function() {
8
- return PrintCompletionService;
9
- }
10
- });
11
- const _baseservice = require("./base.service");
12
- const _entities = require("../../entities");
13
- const _printcompletiondto = require("../interfaces/print-completion.dto");
14
- const _typeorm = require("typeorm");
15
- const _octoprintwebsocketconstants = require("../octoprint/constants/octoprint-websocket.constants");
16
- const _arrayutil = require("../../utils/array.util");
17
- const _printcompletionshared = require("../mongoose/print-completion.shared");
18
- class PrintCompletionService extends (0, _baseservice.BaseService)(_entities.PrintCompletion, _printcompletiondto.PrintCompletionDto) {
19
- logger;
20
- constructor(typeormService, loggerFactory){
21
- super(typeormService);
22
- this.logger = loggerFactory(PrintCompletionService.name);
23
- }
24
- toDto(entity) {
25
- return {
26
- id: entity.id,
27
- completionLog: entity.completionLog,
28
- context: entity.context,
29
- fileName: entity.fileName,
30
- createdAt: entity.createdAt,
31
- printerReference: entity.printerReference,
32
- status: entity.status,
33
- printerId: entity.printerId
34
- };
35
- }
36
- async create(input) {
37
- return await super.create(input);
38
- }
39
- async findPrintCompletion(correlationId) {
40
- const completions = await this.repository.findBy({});
41
- return completions.filter((c)=>c.context?.correlationId === correlationId);
42
- }
43
- async updateContext(correlationId, context) {
44
- if (!correlationId?.length) {
45
- this.logger.warn("Ignoring undefined correlationId, cant update print completion context");
46
- return;
47
- }
48
- const completionEntry = await this.repository.findOneBy({
49
- context: {
50
- correlationId
51
- },
52
- status: _octoprintwebsocketconstants.EVENT_TYPES.PrintStarted
53
- });
54
- if (!completionEntry) {
55
- this.logger.warn(`Print with correlationId ${correlationId} could not be updated with new context as it was not found`);
56
- return;
57
- }
58
- completionEntry.context = context;
59
- await this.update(completionEntry.id, completionEntry);
60
- }
61
- async listGroupByPrinterStatus() {
62
- const limitedCompletions = await this.listPaged();
63
- const printCompletionsAggr = (0, _arrayutil.groupArrayBy)(limitedCompletions, (val)=>val.printerId.toString());
64
- const completions = Object.entries(printCompletionsAggr).map(([pc, val])=>({
65
- printerId: parseInt(pc),
66
- printEvents: val
67
- }));
68
- return (0, _printcompletionshared.processCompletions)(completions);
69
- }
70
- async loadPrintContexts() {
71
- const completions = await this.repository.find({
72
- where: {
73
- status: (0, _typeorm.Not)((0, _typeorm.In)([
74
- _octoprintwebsocketconstants.EVENT_TYPES.PrintDone,
75
- _octoprintwebsocketconstants.EVENT_TYPES.PrintFailed
76
- ]))
77
- },
78
- order: {
79
- printerId: 1,
80
- createdAt: -1
81
- }
82
- });
83
- return (0, _arrayutil.groupArrayBy)(completions, (val)=>val.id.toString());
84
- }
85
- }
86
-
87
- //# sourceMappingURL=print-completion.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/orm/print-completion.service.ts"],"names":["PrintCompletionService","BaseService","PrintCompletion","PrintCompletionDto","logger","typeormService","loggerFactory","name","toDto","entity","id","completionLog","context","fileName","createdAt","printerReference","status","printerId","create","input","findPrintCompletion","correlationId","completions","repository","findBy","filter","c","updateContext","length","warn","completionEntry","findOneBy","EVENT_TYPES","PrintStarted","update","listGroupByPrinterStatus","limitedCompletions","listPaged","printCompletionsAggr","groupArrayBy","val","toString","Object","entries","map","pc","parseInt","printEvents","processCompletions","loadPrintContexts","find","where","Not","In","PrintDone","PrintFailed","order"],"mappings":";;;;+BAkBaA;;;eAAAA;;;6BAlBe;0BACI;oCAKzB;yBAGiB;6CACI;2BACC;uCAI2B;AAGjD,MAAMA,+BACHC,IAAAA,wBAAW,EAACC,yBAAe,EAAEC,sCAAkB;IAGtCC,OAAsB;IAEvC,YAAYC,cAA8B,EAAEC,aAA6B,CAAE;QACzE,KAAK,CAACD;QACN,IAAI,CAACD,MAAM,GAAGE,cAAcN,uBAAuBO,IAAI;IACzD;IAEAC,MAAMC,MAAuB,EAAoC;QAC/D,OAAO;YACLC,IAAID,OAAOC,EAAE;YACbC,eAAeF,OAAOE,aAAa;YACnCC,SAASH,OAAOG,OAAO;YACvBC,UAAUJ,OAAOI,QAAQ;YACzBC,WAAWL,OAAOK,SAAS;YAC3BC,kBAAkBN,OAAOM,gBAAgB;YACzCC,QAAQP,OAAOO,MAAM;YACrBC,WAAWR,OAAOQ,SAAS;QAC7B;IACF;IAEA,MAAMC,OAAOC,KAA6C,EAAE;QAC1D,OAAO,MAAM,KAAK,CAACD,OAAOC;IAC5B;IAEA,MAAMC,oBAAoBC,aAAqB,EAAE;QAC/C,MAAMC,cAAc,MAAM,IAAI,CAACC,UAAU,CAACC,MAAM,CAAC,CAAC;QAClD,OAAOF,YAAYG,MAAM,CAAC,CAACC,IAAMA,EAAEd,OAAO,EAAES,kBAAkBA;IAChE;IAEA,MAAMM,cAAcN,aAAiC,EAAET,OAA+B,EAAiB;QACrG,IAAI,CAACS,eAAeO,QAAQ;YAC1B,IAAI,CAACxB,MAAM,CAACyB,IAAI,CAAC;YACjB;QACF;QAEA,MAAMC,kBAAkB,MAAM,IAAI,CAACP,UAAU,CAACQ,SAAS,CAAC;YACtDnB,SAAS;gBAAES;YAAc;YACzBL,QAAQgB,wCAAW,CAACC,YAAY;QAClC;QACA,IAAI,CAACH,iBAAiB;YACpB,IAAI,CAAC1B,MAAM,CAACyB,IAAI,CACd,CAAC,yBAAyB,EAAER,cAAc,0DAA0D,CAAC;YAEvG;QACF;QACAS,gBAAgBlB,OAAO,GAAGA;QAC1B,MAAM,IAAI,CAACsB,MAAM,CAACJ,gBAAgBpB,EAAE,EAAEoB;IACxC;IAEA,MAAMK,2BAA2D;QAC/D,MAAMC,qBAAqB,MAAM,IAAI,CAACC,SAAS;QAC/C,MAAMC,uBAAuBC,IAAAA,uBAAY,EAACH,oBAAoB,CAACI,MAAQA,IAAIvB,SAAS,CAACwB,QAAQ;QAC7F,MAAMnB,cAAcoB,OAAOC,OAAO,CAACL,sBAAsBM,GAAG,CAAC,CAAC,CAACC,IAAIL,IAAI,GAAM,CAAA;gBAC3EvB,WAAW6B,SAASD;gBACpBE,aAAaP;YACf,CAAA;QACA,OAAOQ,IAAAA,yCAAkB,EAAC1B;IAC5B;IAEA,MAAM2B,oBAAiF;QACrF,MAAM3B,cAAc,MAAM,IAAI,CAACC,UAAU,CAAC2B,IAAI,CAAC;YAC7CC,OAAO;gBACLnC,QAAQoC,IAAAA,YAAG,EAACC,IAAAA,WAAE,EAAC;oBAACrB,wCAAW,CAACsB,SAAS;oBAAEtB,wCAAW,CAACuB,WAAW;iBAAC;YACjE;YACAC,OAAO;gBACLvC,WAAW;gBACXH,WAAW,CAAC;YACd;QACF;QAEA,OAAOyB,IAAAA,uBAAY,EAACjB,aAAa,CAACkB,MAAQA,IAAI9B,EAAE,CAAC+B,QAAQ;IAC3D;AACF"}
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "PrinterGroupService", {
6
- enumerable: true,
7
- get: function() {
8
- return PrinterGroupService;
9
- }
10
- });
11
- const _baseservice = require("./base.service");
12
- const _printergroupentity = require("../../entities/printer-group.entity");
13
- const _printergroupdto = require("../interfaces/printer-group.dto");
14
- const _groupentity = require("../../entities/group.entity");
15
- const _classvalidator = require("class-validator");
16
- const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
17
- class PrinterGroupService extends (0, _baseservice.BaseService)(_printergroupentity.PrinterGroup, _printergroupdto.PrinterGroupDto) {
18
- groupRepository;
19
- constructor(typeormService){
20
- super(typeormService);
21
- this.groupRepository = typeormService.getDataSource().getRepository(_groupentity.Group);
22
- }
23
- async listGroups() {
24
- const groups = await this.groupRepository.find();
25
- const groupListing = {};
26
- for (const group of groups){
27
- groupListing[group.id] = {
28
- id: group.id,
29
- name: group.name,
30
- printers: []
31
- };
32
- }
33
- for (const group of groups){
34
- groupListing[group.id].printers = await this.repository.findBy({
35
- groupId: group.id
36
- });
37
- }
38
- return Object.values(groupListing);
39
- }
40
- async getGroup(groupId) {
41
- const group = await this.groupRepository.findOneBy({
42
- id: groupId
43
- });
44
- if (!group) {
45
- throw new _runtimeexceptions.NotFoundException("Group does not exist");
46
- }
47
- return group;
48
- }
49
- async getGroupWithPrinters(groupId) {
50
- const group = await this.getGroup(groupId);
51
- const printerGroups = await this.repository.findBy({
52
- groupId: group.id
53
- });
54
- return {
55
- id: group.id,
56
- name: group.name,
57
- printers: printerGroups
58
- };
59
- }
60
- async createGroup(dto) {
61
- await (0, _classvalidator.validate)(dto);
62
- const entity = this.groupRepository.create(dto);
63
- await (0, _classvalidator.validate)(entity);
64
- const group = await this.groupRepository.save(entity);
65
- return await this.getGroupWithPrinters(group.id);
66
- }
67
- async updateGroupName(groupId, name) {
68
- const entity = await this.getGroup(groupId);
69
- const updateDto = {
70
- name
71
- };
72
- await (0, _classvalidator.validate)(updateDto);
73
- await (0, _classvalidator.validate)(Object.assign(entity, updateDto));
74
- await this.groupRepository.update(entity.id, updateDto);
75
- }
76
- async deleteGroup(groupId) {
77
- const group = await this.getGroup(groupId);
78
- await this.groupRepository.delete({
79
- id: group.id
80
- });
81
- }
82
- async addPrinterToGroup(groupId, printerId) {
83
- const group = await this.getGroup(groupId);
84
- const alreadyExisting = await this.repository.findOneBy({
85
- groupId: group.id,
86
- printerId
87
- });
88
- if (alreadyExisting) return alreadyExisting;
89
- return await this.create({
90
- groupId: group.id,
91
- printerId
92
- });
93
- }
94
- async removePrinterFromGroup(groupId, printerId) {
95
- await this.getGroup(groupId);
96
- await this.repository.delete({
97
- groupId,
98
- printerId
99
- });
100
- }
101
- toDto(entity) {
102
- return {
103
- printerId: entity.printerId,
104
- groupId: entity.groupId
105
- };
106
- }
107
- }
108
-
109
- //# sourceMappingURL=printer-group.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/orm/printer-group.service.ts"],"names":["PrinterGroupService","BaseService","PrinterGroup","PrinterGroupDto","groupRepository","typeormService","getDataSource","getRepository","Group","listGroups","groups","find","groupListing","group","id","name","printers","repository","findBy","groupId","Object","values","getGroup","findOneBy","NotFoundException","getGroupWithPrinters","printerGroups","createGroup","dto","validate","entity","create","save","updateGroupName","updateDto","assign","update","deleteGroup","delete","addPrinterToGroup","printerId","alreadyExisting","removePrinterFromGroup","toDto"],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "createCameraStreamSchema", {
6
- enumerable: true,
7
- get: function() {
8
- return createCameraStreamSchema;
9
- }
10
- });
11
- const _zod = require("zod");
12
- const _genericvalidation = require("../../controllers/validation/generic.validation");
13
- const createCameraStreamSchema = (isSqlite)=>_zod.z.object({
14
- printerId: (0, _genericvalidation.idRuleV2)(isSqlite).nullish(),
15
- streamURL: _zod.z.string().url(),
16
- name: _zod.z.string().min(1).optional()
17
- });
18
-
19
- //# sourceMappingURL=camera-service.validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/validators/camera-service.validation.ts"],"names":["createCameraStreamSchema","isSqlite","z","object","printerId","idRuleV2","nullish","streamURL","string","url","name","min","optional"],"mappings":";;;;+BAGaA;;;eAAAA;;;qBAHK;mCACO;AAElB,MAAMA,2BAA2B,CAACC,WACvCC,MAAC,CAACC,MAAM,CAAC;QACPC,WAAWC,IAAAA,2BAAQ,EAACJ,UAAUK,OAAO;QACrCC,WAAWL,MAAC,CAACM,MAAM,GAAGC,GAAG;QACzBC,MAAMR,MAAC,CAACM,MAAM,GAAGG,GAAG,CAAC,GAAGC,QAAQ;IAClC"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "createPrintCompletionSchema", {
6
- enumerable: true,
7
- get: function() {
8
- return createPrintCompletionSchema;
9
- }
10
- });
11
- const _zod = require("zod");
12
- const _octoprintwebsocketconstants = require("../octoprint/constants/octoprint-websocket.constants");
13
- const _genericvalidation = require("../../controllers/validation/generic.validation");
14
- const createPrintCompletionSchema = (isSqlite)=>_zod.z.object({
15
- fileName: _zod.z.string().min(1, "File name is required"),
16
- status: _zod.z.enum(_octoprintwebsocketconstants.EVENT_TYPES_ARRAY, {
17
- errorMap: (issue)=>{
18
- if (issue.code === "invalid_type") {
19
- return {
20
- message: `Status must be one of: ${Object.values(_octoprintwebsocketconstants.EVENT_TYPES).join(", ")}`
21
- };
22
- }
23
- return {
24
- message: "Invalid status"
25
- };
26
- }
27
- }),
28
- printerId: (0, _genericvalidation.idRuleV2)(isSqlite),
29
- completionLog: _zod.z.string().optional(),
30
- context: _zod.z.any()
31
- });
32
-
33
- //# sourceMappingURL=print-completion-service.validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/validators/print-completion-service.validation.ts"],"names":["createPrintCompletionSchema","isSqlite","z","object","fileName","string","min","status","enum","EVENT_TYPES_ARRAY","errorMap","issue","code","message","Object","values","EVENT_TYPES","join","printerId","idRuleV2","completionLog","optional","context","any"],"mappings":";;;;+BAIaA;;;eAAAA;;;qBAJK;6CAC6B;mCACtB;AAElB,MAAMA,8BAA8B,CAACC,WAC1CC,MAAC,CAACC,MAAM,CAAC;QACPC,UAAUF,MAAC,CAACG,MAAM,GAAGC,GAAG,CAAC,GAAG;QAC5BC,QAAQL,MAAC,CAACM,IAAI,CAACC,8CAAiB,EAA2B;YACzDC,UAAU,CAACC;gBACT,IAAIA,MAAMC,IAAI,KAAK,gBAAgB;oBACjC,OAAO;wBAAEC,SAAS,CAAC,uBAAuB,EAAEC,OAAOC,MAAM,CAACC,wCAAW,EAAEC,IAAI,CAAC,OAAO;oBAAC;gBACtF;gBACA,OAAO;oBAAEJ,SAAS;gBAAiB;YACrC;QACF;QACAK,WAAWC,IAAAA,2BAAQ,EAAClB;QACpBmB,eAAelB,MAAC,CAACG,MAAM,GAAGgB,QAAQ;QAClCC,SAASpB,MAAC,CAACqB,GAAG;IAChB"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "IdDto", {
6
- enumerable: true,
7
- get: function() {
8
- return IdDto;
9
- }
10
- });
11
- class IdDto {
12
- id;
13
- }
14
-
15
- //# sourceMappingURL=shared.constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared.constants.ts"],"names":["IdDto","id"],"mappings":";;;;+BAMaA;;;eAAAA;;;AAAN,MAAMA;IACXC,GAAY;AACd"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "PrintCompletionSocketIoTask", {
6
- enumerable: true,
7
- get: function() {
8
- return PrintCompletionSocketIoTask;
9
- }
10
- });
11
- const _eventconstants = require("../constants/event.constants");
12
- const _octoprintwebsocketconstants = require("../services/octoprint/constants/octoprint-websocket.constants");
13
- const _correlationtokenutil = require("../utils/correlation-token.util");
14
- const _octoprintwebsocketadapter = require("../services/octoprint/octoprint-websocket.adapter");
15
- class PrintCompletionSocketIoTask {
16
- eventEmitter2;
17
- printCompletionService;
18
- printerEventsCache;
19
- contextCache = {};
20
- logger;
21
- constructor(loggerFactory, eventEmitter2, printCompletionService, printerEventsCache){
22
- this.eventEmitter2 = eventEmitter2;
23
- this.printCompletionService = printCompletionService;
24
- this.printerEventsCache = printerEventsCache;
25
- this.logger = loggerFactory(PrintCompletionSocketIoTask.name);
26
- this.eventEmitter2.on((0, _octoprintwebsocketadapter.octoPrintWebsocketEvent)("*"), async (octoPrintEvent)=>{
27
- await this.handleMessage(octoPrintEvent);
28
- });
29
- }
30
- get contexts() {
31
- return this.contextCache;
32
- }
33
- async handleMessage(event) {
34
- const printerId = event.printerId;
35
- if (!printerId) {
36
- this.logger.log(`Skipping print completion log as PrinterId is unset`);
37
- return;
38
- }
39
- if (event.event !== "event") {
40
- return;
41
- }
42
- const completion = {
43
- status: event.payload.type,
44
- fileName: event.payload?.payload?.name,
45
- createdAt: Date.now(),
46
- completionLog: event.payload?.error,
47
- printerId,
48
- context: {
49
- correlationId: null
50
- }
51
- };
52
- if (event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.EStop || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintCancelling || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintCancelled || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Home || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.TransferStarted || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.TransferDone || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnecting || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnected || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.MetadataAnalysisStarted || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.MetadataAnalysisFinished || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Error) {
53
- this.contextCache[printerId] = {
54
- ...this.contextCache[printerId],
55
- [event.payload.type]: completion
56
- };
57
- if (event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnecting || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnected) {
58
- await this.printerEventsCache.setSubState(printerId, "current", "state", {
59
- text: event.payload.type,
60
- flags: {
61
- operational: false,
62
- printing: false,
63
- ready: false,
64
- closedOrError: true,
65
- error: false
66
- }
67
- });
68
- }
69
- const corrId = this.contextCache[printerId].correlationId;
70
- await this.printCompletionService.updateContext(corrId, this.contextCache[printerId]);
71
- return;
72
- }
73
- if (event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintStarted) {
74
- const token = (0, _correlationtokenutil.generateCorrelationToken)();
75
- this.contextCache[printerId] = {
76
- correlationId: token
77
- };
78
- completion.context = this.contextCache[printerId];
79
- await this.printCompletionService.create(completion);
80
- } else if (event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintFailed || event.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintDone) {
81
- completion.context = this.contextCache[printerId];
82
- await this.printCompletionService.create(completion);
83
- this.eventEmitter2.emit((0, _eventconstants.fdmMonsterPrinterStoppedEvent)(printerId));
84
- this.contextCache[printerId] = {
85
- correlationId: undefined
86
- };
87
- }
88
- }
89
- }
90
-
91
- //# sourceMappingURL=print-completion.socketio.task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tasks/print-completion.socketio.task.ts"],"names":["PrintCompletionSocketIoTask","contextCache","logger","loggerFactory","eventEmitter2","printCompletionService","printerEventsCache","name","on","octoPrintWebsocketEvent","octoPrintEvent","handleMessage","contexts","event","printerId","log","completion","status","payload","type","fileName","createdAt","Date","now","completionLog","error","context","correlationId","EVENT_TYPES","EStop","PrintCancelling","PrintCancelled","Home","TransferStarted","TransferDone","Disconnecting","Disconnected","MetadataAnalysisStarted","MetadataAnalysisFinished","Error","setSubState","text","flags","operational","printing","ready","closedOrError","corrId","updateContext","PrintStarted","token","generateCorrelationToken","create","PrintFailed","PrintDone","emit","fdmMonsterPrinterStoppedEvent","undefined"],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "PrinterFileCleanTask", {
6
- enumerable: true,
7
- get: function() {
8
- return PrinterFileCleanTask;
9
- }
10
- });
11
- class PrinterFileCleanTask {
12
- printerCache;
13
- printerFilesStore;
14
- settingsStore;
15
- logger;
16
- constructor(loggerFactory, printerCache, printerFilesStore, settingsStore){
17
- this.printerCache = printerCache;
18
- this.printerFilesStore = printerFilesStore;
19
- this.settingsStore = settingsStore;
20
- this.logger = loggerFactory(PrinterFileCleanTask.name);
21
- }
22
- get ageDaysMaxSetting() {
23
- return this.getSettings().autoRemoveOldFilesCriteriumDays;
24
- }
25
- async run() {
26
- const printers = await this.printerCache.listCachedPrinters(false);
27
- const fileCleanSettings = this.getSettings();
28
- const autoCleanAtBootEnabled = fileCleanSettings.autoRemoveOldFilesAtBoot;
29
- try {
30
- if (autoCleanAtBootEnabled) {
31
- this.logger.log(`Cleaning files of ${printers.length} active printers [printerFileClean:autoRemoveOldFilesAtBoot].`);
32
- } else {
33
- this.logger.log(`Reporting about old files of ${printers.length} printers.`);
34
- }
35
- const errorPrinters = [];
36
- for (let printer of printers){
37
- try {
38
- await this.printerFilesStore.loadFiles(printer.id);
39
- } catch (e) {
40
- errorPrinters.push({
41
- e,
42
- printer
43
- });
44
- }
45
- }
46
- if (errorPrinters.length > 0) {
47
- this.logger.error(`Error loading some files, ${errorPrinters.length} printer(s) did not respond or returned an unexpected status code.`);
48
- }
49
- for (let printer of printers){
50
- const outdatedFiles = this.getPrinterOutdatedFiles(printer);
51
- if (!outdatedFiles?.length) continue;
52
- this.logger.log(`Found ${outdatedFiles?.length} old files of printer`);
53
- if (autoCleanAtBootEnabled) {
54
- await this.cleanPrinterFiles(printer.id);
55
- }
56
- }
57
- } finally{
58
- this.logger.log(`Printer old file analysis job ended`);
59
- }
60
- }
61
- async cleanPrinterFiles(printerId) {
62
- await this.printerFilesStore.deleteOutdatedFiles(printerId, this.ageDaysMaxSetting);
63
- await this.printerFilesStore.loadFiles(printerId);
64
- }
65
- getPrinterOutdatedFiles(printer) {
66
- const ageDaysMax = this.ageDaysMaxSetting;
67
- return this.printerFilesStore.getOutdatedFiles(printer.id, ageDaysMax);
68
- }
69
- getSettings() {
70
- return this.settingsStore.getFileCleanSettings();
71
- }
72
- }
73
-
74
- //# sourceMappingURL=printer-file-clean.task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tasks/printer-file-clean.task.ts"],"names":["PrinterFileCleanTask","logger","loggerFactory","printerCache","printerFilesStore","settingsStore","name","ageDaysMaxSetting","getSettings","autoRemoveOldFilesCriteriumDays","run","printers","listCachedPrinters","fileCleanSettings","autoCleanAtBootEnabled","autoRemoveOldFilesAtBoot","log","length","errorPrinters","printer","loadFiles","id","e","push","error","outdatedFiles","getPrinterOutdatedFiles","cleanPrinterFiles","printerId","deleteOutdatedFiles","ageDaysMax","getOutdatedFiles","getFileCleanSettings"],"mappings":";;;;+BAYaA;;;eAAAA;;;AAAN,MAAMA;;;;IACXC,OAAsB;IAEtB,YACEC,aAA6B,EAC7B,AAAiBC,YAA0B,EAC3C,AAAiBC,iBAAoC,EACrD,AAAiBC,aAA4B,CAC7C;aAHiBF,eAAAA;aACAC,oBAAAA;aACAC,gBAAAA;QAEjB,IAAI,CAACJ,MAAM,GAAGC,cAAcF,qBAAqBM,IAAI;IACvD;IAEA,IAAYC,oBAAoB;QAC9B,OAAO,IAAI,CAACC,WAAW,GAAGC,+BAA+B;IAC3D;IAEA,MAAMC,MAAM;QACV,MAAMC,WAAW,MAAM,IAAI,CAACR,YAAY,CAACS,kBAAkB,CAAC;QAC5D,MAAMC,oBAAoB,IAAI,CAACL,WAAW;QAC1C,MAAMM,yBAAyBD,kBAAkBE,wBAAwB;QAEzE,IAAI;YACF,IAAID,wBAAwB;gBAC1B,IAAI,CAACb,MAAM,CAACe,GAAG,CACb,CAAC,kBAAkB,EAAEL,SAASM,MAAM,CAAC,6DAA6D,CAAC;YAEvG,OAAO;gBACL,IAAI,CAAChB,MAAM,CAACe,GAAG,CAAC,CAAC,6BAA6B,EAAEL,SAASM,MAAM,CAAC,UAAU,CAAC;YAC7E;YAEA,MAAMC,gBAAgB,EAAE;YACxB,KAAK,IAAIC,WAAWR,SAAU;gBAC5B,IAAI;oBACF,MAAM,IAAI,CAACP,iBAAiB,CAACgB,SAAS,CAACD,QAAQE,EAAE;gBACnD,EAAE,OAAOC,GAAG;oBACVJ,cAAcK,IAAI,CAAC;wBAAED;wBAAGH;oBAAQ;gBAClC;YACF;YACA,IAAID,cAAcD,MAAM,GAAG,GAAG;gBAC5B,IAAI,CAAChB,MAAM,CAACuB,KAAK,CACf,CAAC,0BAA0B,EAAEN,cAAcD,MAAM,CAAC,kEAAkE,CAAC;YAEzH;YAGA,KAAK,IAAIE,WAAWR,SAAU;gBAC5B,MAAMc,gBAAgB,IAAI,CAACC,uBAAuB,CAACP;gBACnD,IAAI,CAACM,eAAeR,QAAQ;gBAG5B,IAAI,CAAChB,MAAM,CAACe,GAAG,CAAC,CAAC,MAAM,EAAES,eAAeR,OAAO,qBAAqB,CAAC;gBAErE,IAAIH,wBAAwB;oBAC1B,MAAM,IAAI,CAACa,iBAAiB,CAACR,QAAQE,EAAE;gBACzC;YACF;QACF,SAAU;YACR,IAAI,CAACpB,MAAM,CAACe,GAAG,CAAC,CAAC,mCAAmC,CAAC;QACvD;IACF;IAEA,MAAMW,kBAAkBC,SAAiB,EAAE;QACzC,MAAM,IAAI,CAACxB,iBAAiB,CAACyB,mBAAmB,CAACD,WAAW,IAAI,CAACrB,iBAAiB;QAClF,MAAM,IAAI,CAACH,iBAAiB,CAACgB,SAAS,CAACQ;IACzC;IAEAF,wBAAwBP,OAA2B,EAAE;QACnD,MAAMW,aAAa,IAAI,CAACvB,iBAAiB;QACzC,OAAO,IAAI,CAACH,iBAAiB,CAAC2B,gBAAgB,CAACZ,QAAQE,EAAE,EAAES;IAC7D;IAEQtB,cAAc;QACpB,OAAO,IAAI,CAACH,aAAa,CAAC2B,oBAAoB;IAChD;AACF"}
@@ -1,45 +0,0 @@
1
- // In this file you can configure migrate-mongo
2
- const { setupEnvConfig, fetchMongoDBConnectionString } = require("./dist/server.env");
3
-
4
- if (!process.env.MONGO) {
5
- setupEnvConfig();
6
- }
7
-
8
- const mongoDbString = fetchMongoDBConnectionString();
9
-
10
- if (!mongoDbString) {
11
- throw new Error("Cant migrate as the MONGO= environment variable was not resolved.");
12
- }
13
-
14
- const config = {
15
- mongodb: {
16
- url: mongoDbString,
17
-
18
- // Dont override this unless you know what you are doing
19
- // databaseName: "fdm-monster",
20
-
21
- options: {
22
- useNewUrlParser: true, // removes a deprecation warning when connecting
23
- useUnifiedTopology: true, // removes a deprecating warning when connecting
24
- // connectTimeoutMS: 3600000, // increase connection timeout to 1 hour
25
- // socketTimeoutMS: 3600000, // increase socket timeout to 1 hour
26
- },
27
- },
28
-
29
- // The migrations dir, can be a relative or absolute path. Only edit this when really necessary.
30
- migrationsDir: "dist/mongo-migrations",
31
-
32
- // The mongodb collection where the applied changes are stored. Only edit this when really necessary.
33
- changelogCollectionName: "_migrations",
34
-
35
- // The file extension to create migrations and search for in migration dir
36
- migrationFileExtension: ".js",
37
-
38
- // Enable the algorithm to create a checksum of the file contents and use that in the comparison to determine
39
- // if the file should be run. Requires that scripts are coded to be run multiple times.
40
- useFileHash: false,
41
- moduleSystem: "commonjs",
42
- };
43
-
44
- // Return the config as a promise
45
- module.exports = config;