@fdm-monster/server 1.8.3 → 1.9.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 (448) hide show
  1. package/.env.template +6 -4
  2. package/.gitattributes +4 -2
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.9.1.cjs +948 -0
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +27 -28
  7. package/RELEASE_NOTES.MD +69 -1
  8. package/biome.json +33 -0
  9. package/dist/consoles/download-github-releases.js.map +1 -1
  10. package/dist/consoles/launch-http-servers.js +31 -0
  11. package/dist/consoles/launch-http-servers.js.map +1 -0
  12. package/dist/consoles/mock-octoprint.server.js +291 -0
  13. package/dist/consoles/mock-octoprint.server.js.map +1 -0
  14. package/dist/consoles/mock-prusalink.server.js +57 -0
  15. package/dist/consoles/mock-prusalink.server.js.map +1 -0
  16. package/dist/consoles/utils/api-messages.js +856 -0
  17. package/dist/consoles/utils/api-messages.js.map +1 -0
  18. package/dist/consoles/utils/delayed-memory.storage.js +42 -0
  19. package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
  20. package/dist/consoles/utils/ws-messages.js +88 -0
  21. package/dist/consoles/utils/ws-messages.js.map +1 -0
  22. package/dist/constants/event.constants.js +5 -21
  23. package/dist/constants/event.constants.js.map +1 -1
  24. package/dist/constants/server-settings.constants.js +8 -12
  25. package/dist/constants/server-settings.constants.js.map +1 -1
  26. package/dist/container.js +13 -14
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.tokens.js +3 -4
  29. package/dist/container.tokens.js.map +1 -1
  30. package/dist/controllers/auth.controller.js +114 -24
  31. package/dist/controllers/auth.controller.js.map +1 -1
  32. package/dist/controllers/batch-call.controller.js +95 -24
  33. package/dist/controllers/batch-call.controller.js.map +1 -1
  34. package/dist/controllers/camera-stream.controller.js +16 -12
  35. package/dist/controllers/camera-stream.controller.js.map +1 -1
  36. package/dist/controllers/custom-gcode.controller.js +116 -40
  37. package/dist/controllers/custom-gcode.controller.js.map +1 -1
  38. package/dist/controllers/dto/update-client-dist.dto.js +0 -21
  39. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
  40. package/dist/controllers/first-time-setup.controller.js +54 -18
  41. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  42. package/dist/controllers/floor.controller.js +154 -43
  43. package/dist/controllers/floor.controller.js.map +1 -1
  44. package/dist/controllers/metrics.controller.js +56 -0
  45. package/dist/controllers/metrics.controller.js.map +1 -0
  46. package/dist/controllers/print-completion.controller.js +81 -18
  47. package/dist/controllers/print-completion.controller.js.map +1 -1
  48. package/dist/controllers/printer-files.controller.js +45 -29
  49. package/dist/controllers/printer-files.controller.js.map +1 -1
  50. package/dist/controllers/printer-group.controller.js +123 -33
  51. package/dist/controllers/printer-group.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +73 -26
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/printer.controller.js +57 -198
  55. package/dist/controllers/printer.controller.js.map +1 -1
  56. package/dist/controllers/server-private.controller.js +153 -39
  57. package/dist/controllers/server-private.controller.js.map +1 -1
  58. package/dist/controllers/server-public.controller.js +87 -88
  59. package/dist/controllers/server-public.controller.js.map +1 -1
  60. package/dist/controllers/settings.controller.js +222 -79
  61. package/dist/controllers/settings.controller.js.map +1 -1
  62. package/dist/controllers/user.controller.js +67 -57
  63. package/dist/controllers/user.controller.js.map +1 -1
  64. package/dist/controllers/validation/auth-controller.validation.js +6 -5
  65. package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
  66. package/dist/controllers/validation/batch-controller.validation.js +17 -18
  67. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  68. package/dist/controllers/validation/generic.validation.js +8 -3
  69. package/dist/controllers/validation/generic.validation.js.map +1 -1
  70. package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
  71. package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
  72. package/dist/controllers/validation/printer-controller.validation.js +31 -50
  73. package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
  74. package/dist/controllers/validation/printer-files-controller.validation.js +25 -15
  75. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  76. package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
  77. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
  78. package/dist/controllers/validation/server-private.validation.js +17 -0
  79. package/dist/controllers/validation/server-private.validation.js.map +1 -0
  80. package/dist/controllers/validation/setting.validation.js +28 -10
  81. package/dist/controllers/validation/setting.validation.js.map +1 -1
  82. package/dist/controllers/validation/user-controller.validation.js +44 -13
  83. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  84. package/dist/data-source.js +10 -6
  85. package/dist/data-source.js.map +1 -1
  86. package/dist/entities/camera-stream.entity.js +2 -3
  87. package/dist/entities/camera-stream.entity.js.map +1 -1
  88. package/dist/entities/custom-gcode.entity.js +1 -2
  89. package/dist/entities/custom-gcode.entity.js.map +1 -1
  90. package/dist/entities/floor-position.entity.js.map +1 -1
  91. package/dist/entities/floor.entity.js +1 -2
  92. package/dist/entities/floor.entity.js.map +1 -1
  93. package/dist/entities/group.entity.js +6 -2
  94. package/dist/entities/group.entity.js.map +1 -1
  95. package/dist/entities/permission.entity.js +1 -2
  96. package/dist/entities/permission.entity.js.map +1 -1
  97. package/dist/entities/print-completion.entity.js +1 -2
  98. package/dist/entities/print-completion.entity.js.map +1 -1
  99. package/dist/entities/printer-group.entity.js +6 -2
  100. package/dist/entities/printer-group.entity.js.map +1 -1
  101. package/dist/entities/printer.entity.js +22 -4
  102. package/dist/entities/printer.entity.js.map +1 -1
  103. package/dist/entities/refresh-token.entity.js +1 -2
  104. package/dist/entities/refresh-token.entity.js.map +1 -1
  105. package/dist/entities/role.entity.js +1 -2
  106. package/dist/entities/role.entity.js.map +1 -1
  107. package/dist/entities/settings.entity.js +1 -2
  108. package/dist/entities/settings.entity.js.map +1 -1
  109. package/dist/entities/user-role.entity.js +1 -2
  110. package/dist/entities/user-role.entity.js.map +1 -1
  111. package/dist/entities/user.entity.js +1 -2
  112. package/dist/entities/user.entity.js.map +1 -1
  113. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  114. package/dist/handlers/logger-factory.js +2 -2
  115. package/dist/handlers/logger-factory.js.map +1 -1
  116. package/dist/handlers/logger.js +11 -58
  117. package/dist/handlers/logger.js.map +1 -1
  118. package/dist/handlers/logging/file-logging.transport.js +35 -0
  119. package/dist/handlers/logging/file-logging.transport.js.map +1 -0
  120. package/dist/handlers/logging/loki-logging.transport.js +55 -0
  121. package/dist/handlers/logging/loki-logging.transport.js.map +1 -0
  122. package/dist/handlers/logging/static.logger.js +134 -0
  123. package/dist/handlers/logging/static.logger.js.map +1 -0
  124. package/dist/handlers/validators.js +7 -116
  125. package/dist/handlers/validators.js.map +1 -1
  126. package/dist/index.js +13 -0
  127. package/dist/index.js.map +1 -1
  128. package/dist/middleware/authenticate.js +11 -22
  129. package/dist/middleware/authenticate.js.map +1 -1
  130. package/dist/middleware/database.js.map +1 -1
  131. package/dist/middleware/demo.middleware.js +4 -17
  132. package/dist/middleware/demo.middleware.js.map +1 -1
  133. package/dist/middleware/exception.filter.js +23 -23
  134. package/dist/middleware/exception.filter.js.map +1 -1
  135. package/dist/middleware/global.middleware.js +4 -4
  136. package/dist/middleware/global.middleware.js.map +1 -1
  137. package/dist/middleware/param-converter.middleware.js +81 -0
  138. package/dist/middleware/param-converter.middleware.js.map +1 -0
  139. package/dist/middleware/passport.js +3 -5
  140. package/dist/middleware/passport.js.map +1 -1
  141. package/dist/middleware/printer-resolver.js +37 -0
  142. package/dist/middleware/printer-resolver.js.map +1 -0
  143. package/dist/middleware/printer.js +22 -10
  144. package/dist/middleware/printer.js.map +1 -1
  145. package/dist/middleware/socketio.middleware.js +35 -0
  146. package/dist/middleware/socketio.middleware.js.map +1 -0
  147. package/dist/migrations/1706829146617-InitSqlite.js +1 -1
  148. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  149. package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
  150. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  151. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
  152. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  153. package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
  154. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  155. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
  156. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
  157. package/dist/models/Auth/Permission.js.map +1 -1
  158. package/dist/models/Auth/RefreshToken.js +1 -1
  159. package/dist/models/Auth/RefreshToken.js.map +1 -1
  160. package/dist/models/Auth/Role.js.map +1 -1
  161. package/dist/models/Auth/User.js.map +1 -1
  162. package/dist/models/CameraStream.js +20 -0
  163. package/dist/models/CameraStream.js.map +1 -1
  164. package/dist/models/CustomGcode.js.map +1 -1
  165. package/dist/models/Floor.js.map +1 -1
  166. package/dist/models/FloorPrinter.js +10 -1
  167. package/dist/models/FloorPrinter.js.map +1 -1
  168. package/dist/models/PrintCompletion.js.map +1 -1
  169. package/dist/models/Printer.js +12 -5
  170. package/dist/models/Printer.js.map +1 -1
  171. package/dist/models/Settings.js +11 -43
  172. package/dist/models/Settings.js.map +1 -1
  173. package/dist/models/index.js +0 -4
  174. package/dist/models/index.js.map +1 -1
  175. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
  176. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
  177. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
  178. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
  179. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
  180. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
  181. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
  182. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
  183. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
  184. package/dist/server.constants.js +8 -4
  185. package/dist/server.constants.js.map +1 -1
  186. package/dist/server.core.js +29 -2
  187. package/dist/server.core.js.map +1 -1
  188. package/dist/server.env.js +22 -18
  189. package/dist/server.env.js.map +1 -1
  190. package/dist/server.host.js +24 -33
  191. package/dist/server.host.js.map +1 -1
  192. package/dist/services/authentication/auth.service.js +15 -20
  193. package/dist/services/authentication/auth.service.js.map +1 -1
  194. package/dist/services/authentication/jwt.service.js +1 -1
  195. package/dist/services/authentication/jwt.service.js.map +1 -1
  196. package/dist/services/core/batch-call.service.js +23 -25
  197. package/dist/services/core/batch-call.service.js.map +1 -1
  198. package/dist/services/core/client-bundle.service.js +78 -136
  199. package/dist/services/core/client-bundle.service.js.map +1 -1
  200. package/dist/services/core/config.service.js.map +1 -1
  201. package/dist/services/core/cradle.service.js +21 -0
  202. package/dist/services/core/cradle.service.js.map +1 -0
  203. package/dist/services/core/github.service.js +2 -2
  204. package/dist/services/core/github.service.js.map +1 -1
  205. package/dist/services/core/http-client.factory.js +1 -1
  206. package/dist/services/core/http-client.factory.js.map +1 -1
  207. package/dist/services/core/logs-manager.service.js +3 -3
  208. package/dist/services/core/logs-manager.service.js.map +1 -1
  209. package/dist/services/core/monsterpi.service.js +1 -1
  210. package/dist/services/core/monsterpi.service.js.map +1 -1
  211. package/dist/services/core/multer.service.js +8 -7
  212. package/dist/services/core/multer.service.js.map +1 -1
  213. package/dist/services/core/server-release.service.js +14 -8
  214. package/dist/services/core/server-release.service.js.map +1 -1
  215. package/dist/services/core/yaml.service.js +16 -17
  216. package/dist/services/core/yaml.service.js.map +1 -1
  217. package/dist/services/interfaces/camera-stream.dto.js +4 -34
  218. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  219. package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
  220. package/dist/services/interfaces/floor.dto.js +5 -47
  221. package/dist/services/interfaces/floor.dto.js.map +1 -1
  222. package/dist/services/interfaces/login.dto.js +2 -0
  223. package/dist/services/interfaces/login.dto.js.map +1 -1
  224. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  225. package/dist/services/interfaces/printer-group.dto.js +0 -14
  226. package/dist/services/interfaces/printer-group.dto.js.map +1 -1
  227. package/dist/services/interfaces/printer.dto.js +11 -11
  228. package/dist/services/interfaces/printer.dto.js.map +1 -1
  229. package/dist/services/interfaces/settings.dto.js.map +1 -1
  230. package/dist/services/interfaces/task.interfaces.js +6 -0
  231. package/dist/services/interfaces/task.interfaces.js.map +1 -0
  232. package/dist/services/mongoose/camera-stream.service.js +17 -15
  233. package/dist/services/mongoose/camera-stream.service.js.map +1 -1
  234. package/dist/services/mongoose/custom-gcode.service.js +4 -2
  235. package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
  236. package/dist/services/mongoose/floor.service.js +37 -30
  237. package/dist/services/mongoose/floor.service.js.map +1 -1
  238. package/dist/services/mongoose/permission.service.js +1 -1
  239. package/dist/services/mongoose/permission.service.js.map +1 -1
  240. package/dist/services/mongoose/print-completion.service.js +2 -2
  241. package/dist/services/mongoose/print-completion.service.js.map +1 -1
  242. package/dist/services/mongoose/print-completion.shared.js +2 -2
  243. package/dist/services/mongoose/print-completion.shared.js.map +1 -1
  244. package/dist/services/mongoose/printer.service.js +33 -45
  245. package/dist/services/mongoose/printer.service.js.map +1 -1
  246. package/dist/services/mongoose/refresh-token.service.js +5 -8
  247. package/dist/services/mongoose/refresh-token.service.js.map +1 -1
  248. package/dist/services/mongoose/role.service.js +14 -5
  249. package/dist/services/mongoose/role.service.js.map +1 -1
  250. package/dist/services/mongoose/settings.service.js +35 -62
  251. package/dist/services/mongoose/settings.service.js.map +1 -1
  252. package/dist/services/mongoose/user.service.js +8 -7
  253. package/dist/services/mongoose/user.service.js.map +1 -1
  254. package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
  255. package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
  256. package/dist/services/moonraker/moonraker-websocket.adapter.js +109 -96
  257. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  258. package/dist/services/moonraker/moonraker.client.js +25 -16
  259. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  260. package/dist/services/moonraker.api.js +5 -7
  261. package/dist/services/moonraker.api.js.map +1 -1
  262. package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
  263. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  264. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
  265. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  266. package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
  267. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  268. package/dist/services/octoprint/octoprint-api.routes.js +1 -38
  269. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  270. package/dist/services/octoprint/octoprint-websocket.adapter.js +66 -72
  271. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  272. package/dist/services/octoprint/octoprint.client.js +19 -192
  273. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  274. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
  275. package/dist/services/octoprint.api.js +10 -19
  276. package/dist/services/octoprint.api.js.map +1 -1
  277. package/dist/services/orm/base.service.js +11 -12
  278. package/dist/services/orm/base.service.js.map +1 -1
  279. package/dist/services/orm/camera-stream.service.js +5 -1
  280. package/dist/services/orm/camera-stream.service.js.map +1 -1
  281. package/dist/services/orm/custom-gcode.service.js +2 -2
  282. package/dist/services/orm/custom-gcode.service.js.map +1 -1
  283. package/dist/services/orm/floor-position.service.js +0 -5
  284. package/dist/services/orm/floor-position.service.js.map +1 -1
  285. package/dist/services/orm/floor.service.js +43 -39
  286. package/dist/services/orm/floor.service.js.map +1 -1
  287. package/dist/services/orm/permission.service.js +3 -4
  288. package/dist/services/orm/permission.service.js.map +1 -1
  289. package/dist/services/orm/print-completion.service.js +2 -4
  290. package/dist/services/orm/print-completion.service.js.map +1 -1
  291. package/dist/services/orm/printer-group.service.js +2 -7
  292. package/dist/services/orm/printer-group.service.js.map +1 -1
  293. package/dist/services/orm/printer.service.js +21 -36
  294. package/dist/services/orm/printer.service.js.map +1 -1
  295. package/dist/services/orm/refresh-token.service.js +5 -11
  296. package/dist/services/orm/refresh-token.service.js.map +1 -1
  297. package/dist/services/orm/role.service.js +11 -10
  298. package/dist/services/orm/role.service.js.map +1 -1
  299. package/dist/services/orm/settings.service.js +37 -133
  300. package/dist/services/orm/settings.service.js.map +1 -1
  301. package/dist/services/orm/user.service.js +13 -15
  302. package/dist/services/orm/user.service.js.map +1 -1
  303. package/dist/services/printer-api.factory.js +9 -6
  304. package/dist/services/printer-api.factory.js.map +1 -1
  305. package/dist/services/printer-api.interface.js +13 -6
  306. package/dist/services/printer-api.interface.js.map +1 -1
  307. package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
  308. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
  309. package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
  310. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
  311. package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
  312. package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
  313. package/dist/services/{octoprint/dto/plugin.dto.js → prusa-link/dto/file.dto.js} +1 -1
  314. package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
  315. package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
  316. package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
  317. package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
  318. package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
  319. package/dist/services/prusa-link/dto/status.dto.js +6 -0
  320. package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
  321. package/dist/services/prusa-link/dto/version.dto.js +6 -0
  322. package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
  323. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
  324. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
  325. package/dist/services/prusa-link/prusa-link.api.js +235 -0
  326. package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
  327. package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
  328. package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
  329. package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
  330. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
  331. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
  332. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
  333. package/dist/services/socket.factory.js +9 -6
  334. package/dist/services/socket.factory.js.map +1 -1
  335. package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
  336. package/dist/services/task-manager.service.js.map +1 -0
  337. package/dist/services/validators/camera-service.validation.js +19 -0
  338. package/dist/services/validators/camera-service.validation.js.map +1 -0
  339. package/dist/services/validators/floor-service.validation.js +47 -36
  340. package/dist/services/validators/floor-service.validation.js.map +1 -1
  341. package/dist/services/validators/print-completion-service.validation.js +22 -9
  342. package/dist/services/validators/print-completion-service.validation.js.map +1 -1
  343. package/dist/services/validators/printer-service.validation.js +112 -29
  344. package/dist/services/validators/printer-service.validation.js.map +1 -1
  345. package/dist/services/validators/settings-service.validation.js +79 -66
  346. package/dist/services/validators/settings-service.validation.js.map +1 -1
  347. package/dist/services/validators/user-service.validation.js +17 -16
  348. package/dist/services/validators/user-service.validation.js.map +1 -1
  349. package/dist/services/validators/yaml-service.validation.js +94 -51
  350. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  351. package/dist/shared/default-http-client.builder.js.map +1 -1
  352. package/dist/shared/load-controllers.js +20 -0
  353. package/dist/shared/load-controllers.js.map +1 -0
  354. package/dist/shared/runtime-settings.migration.js +53 -0
  355. package/dist/shared/runtime-settings.migration.js.map +1 -0
  356. package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
  357. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  358. package/dist/shared/websocket.adapter.js +4 -5
  359. package/dist/shared/websocket.adapter.js.map +1 -1
  360. package/dist/state/file-upload-tracker.cache.js +5 -4
  361. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  362. package/dist/state/file.cache.js +1 -1
  363. package/dist/state/file.cache.js.map +1 -1
  364. package/dist/state/floor.store.js +6 -6
  365. package/dist/state/floor.store.js.map +1 -1
  366. package/dist/state/printer-events.cache.js +21 -22
  367. package/dist/state/printer-events.cache.js.map +1 -1
  368. package/dist/state/printer-files.store.js +6 -8
  369. package/dist/state/printer-files.store.js.map +1 -1
  370. package/dist/state/printer-socket.store.js +27 -50
  371. package/dist/state/printer-socket.store.js.map +1 -1
  372. package/dist/state/printer-thumbnail.cache.js +5 -9
  373. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  374. package/dist/state/printer.cache.js +14 -12
  375. package/dist/state/printer.cache.js.map +1 -1
  376. package/dist/state/settings.store.js +74 -50
  377. package/dist/state/settings.store.js.map +1 -1
  378. package/dist/state/socket-io.gateway.js +39 -36
  379. package/dist/state/socket-io.gateway.js.map +1 -1
  380. package/dist/state/test-printer-socket.store.js +20 -15
  381. package/dist/state/test-printer-socket.store.js.map +1 -1
  382. package/dist/state/validation/create-test-printer.validation.js +13 -11
  383. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  384. package/dist/task.presets.js.map +1 -1
  385. package/dist/tasks/boot.task.js +14 -19
  386. package/dist/tasks/boot.task.js.map +1 -1
  387. package/dist/tasks/client-bundle.task.js +1 -3
  388. package/dist/tasks/client-bundle.task.js.map +1 -1
  389. package/dist/tasks/print-completion.socketio.task.js +27 -28
  390. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  391. package/dist/tasks/printer-file-clean.task.js +6 -10
  392. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  393. package/dist/tasks/printer-websocket-restore.task.js +3 -14
  394. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  395. package/dist/tasks/printer-websocket.task.js +2 -14
  396. package/dist/tasks/printer-websocket.task.js.map +1 -1
  397. package/dist/tasks/socketio.task.js +6 -33
  398. package/dist/tasks/socketio.task.js.map +1 -1
  399. package/dist/tasks/software-update.task.js +1 -1
  400. package/dist/tasks/software-update.task.js.map +1 -1
  401. package/dist/tasks.js +3 -3
  402. package/dist/tasks.js.map +1 -1
  403. package/dist/utils/array.util.js.map +1 -1
  404. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  405. package/dist/utils/env.utils.js +0 -2
  406. package/dist/utils/env.utils.js.map +1 -1
  407. package/dist/utils/normalize-url.js +3 -2
  408. package/dist/utils/normalize-url.js.map +1 -1
  409. package/dist/utils/printer-type.utils.js.map +1 -1
  410. package/dist/utils/time.utils.js +7 -17
  411. package/dist/utils/time.utils.js.map +1 -1
  412. package/dist/utils/url.utils.js +3 -4
  413. package/dist/utils/url.utils.js.map +1 -1
  414. package/package.json +46 -48
  415. package/tsconfig.json +2 -1
  416. package/.yarn/releases/yarn-4.7.0.cjs +0 -935
  417. package/dist/consoles/check-ports.js +0 -170
  418. package/dist/consoles/check-ports.js.map +0 -1
  419. package/dist/consoles/http-file-receiver.console.js +0 -81
  420. package/dist/consoles/http-file-receiver.console.js.map +0 -1
  421. package/dist/consoles/sqlite-torm.js +0 -31
  422. package/dist/consoles/sqlite-torm.js.map +0 -1
  423. package/dist/consoles/upload-test.js +0 -52
  424. package/dist/consoles/upload-test.js.map +0 -1
  425. package/dist/controllers/plugin-firmware-update.controller.js +0 -234
  426. package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
  427. package/dist/entities/base.entity.js +0 -29
  428. package/dist/entities/base.entity.js.map +0 -1
  429. package/dist/entities/printer-file.entity.js +0 -140
  430. package/dist/entities/printer-file.entity.js.map +0 -1
  431. package/dist/handlers/cache-manager.js +0 -18
  432. package/dist/handlers/cache-manager.js.map +0 -1
  433. package/dist/models/PrinterFile.js +0 -44
  434. package/dist/models/PrinterFile.js.map +0 -1
  435. package/dist/services/core/task-manager.service.js.map +0 -1
  436. package/dist/services/octoprint/dto/plugin.dto.js.map +0 -1
  437. package/dist/services/octoprint/plugin-base.service.js +0 -101
  438. package/dist/services/octoprint/plugin-base.service.js.map +0 -1
  439. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
  440. package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
  441. package/dist/services/octoprint/plugin-repository.cache.js +0 -46
  442. package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
  443. package/dist/utils/benchmark.util.js +0 -39
  444. package/dist/utils/benchmark.util.js.map +0 -1
  445. package/dist/utils/is-docker.js +0 -40
  446. package/dist/utils/is-docker.js.map +0 -1
  447. package/dist/utils/metric.utils.js +0 -35
  448. package/dist/utils/metric.utils.js.map +0 -1
@@ -14,10 +14,8 @@ const _runtimeexceptions = require("../exceptions/runtime.exceptions");
14
14
  class PrinterCache extends _keydiffcache.KeyDiffCache {
15
15
  printerService;
16
16
  eventEmitter2;
17
- constructor({ printerService, eventEmitter2 }){
18
- super();
19
- this.printerService = printerService;
20
- this.eventEmitter2 = eventEmitter2;
17
+ constructor(printerService, eventEmitter2){
18
+ super(), this.printerService = printerService, this.eventEmitter2 = eventEmitter2;
21
19
  this.eventEmitter2.on(_eventconstants.printerEvents.batchPrinterCreated, this.handleBatchPrinterCreated.bind(this));
22
20
  this.eventEmitter2.on(_eventconstants.printerEvents.printerCreated, this.handlePrinterCreatedOrUpdated.bind(this));
23
21
  this.eventEmitter2.on(_eventconstants.printerEvents.printerUpdated, this.handlePrinterCreatedOrUpdated.bind(this));
@@ -70,6 +68,8 @@ class PrinterCache extends _keydiffcache.KeyDiffCache {
70
68
  return {
71
69
  printerURL: printer.printerURL,
72
70
  apiKey: printer.apiKey,
71
+ username: printer.username,
72
+ password: printer.password,
73
73
  printerType: printer.printerType
74
74
  };
75
75
  }
@@ -78,23 +78,25 @@ class PrinterCache extends _keydiffcache.KeyDiffCache {
78
78
  return {
79
79
  printerURL: printer.printerURL,
80
80
  apiKey: printer.apiKey,
81
- printerType: printer.printerType
81
+ printerType: printer.printerType,
82
+ username: printer.username,
83
+ password: printer.password
82
84
  };
83
85
  }
84
- async handleBatchPrinterCreated({ printers }) {
85
- const mappedPrinters = this.mapArray(printers);
86
+ async handleBatchPrinterCreated(event) {
87
+ const mappedPrinters = this.mapArray(event.printers);
86
88
  const keyValues = mappedPrinters.map((p)=>({
87
89
  key: this.getId(p),
88
90
  value: p
89
91
  }));
90
92
  await this.setKeyValuesBatch(keyValues, true);
91
93
  }
92
- async handlePrinterCreatedOrUpdated({ printer }) {
93
- const printerDto = this.map(printer);
94
+ async handlePrinterCreatedOrUpdated(event) {
95
+ const printerDto = this.map(event.printer);
94
96
  await this.setKeyValue(printerDto.id, printerDto, true);
95
97
  }
96
- async handlePrintersDeleted({ printerIds }) {
97
- await this.deleteKeysBatch(printerIds, true);
98
+ async handlePrintersDeleted(event) {
99
+ await this.deleteKeysBatch(event.printerIds, true);
98
100
  }
99
101
  getId(value) {
100
102
  return value.id.toString();
@@ -105,7 +107,7 @@ class PrinterCache extends _keydiffcache.KeyDiffCache {
105
107
  });
106
108
  }
107
109
  map(entity) {
108
- return this.printerService.toUnsafeDto(entity);
110
+ return this.printerService.toDto(entity);
109
111
  }
110
112
  }
111
113
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/state/printer.cache.ts"],"names":["PrinterCache","KeyDiffCache","printerService","eventEmitter2","constructor","on","printerEvents","batchPrinterCreated","handleBatchPrinterCreated","bind","printerCreated","handlePrinterCreatedOrUpdated","printerUpdated","printersDeleted","handlePrintersDeleted","loadCache","printerDocs","list","dtos","mapArray","keyValues","map","p","key","getId","value","setKeyValuesBatch","countDisabledPrinters","getAllValues","filter","enabled","length","listCachedPrinters","includeDisabled","printers","getCachedPrinterOrThrowAsync","id","printer","getValue","NotFoundException","getCachedPrinterOrThrow","keyValueStore","getNameAsync","name","getName","getLoginDtoAsync","printerURL","apiKey","printerType","getLoginDto","mappedPrinters","printerDto","setKeyValue","printerIds","deleteKeysBatch","toString","entities","entity","toUnsafeDto"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/state/printer.cache.ts"],"names":["PrinterCache","KeyDiffCache","constructor","printerService","eventEmitter2","on","printerEvents","batchPrinterCreated","handleBatchPrinterCreated","bind","printerCreated","handlePrinterCreatedOrUpdated","printerUpdated","printersDeleted","handlePrintersDeleted","loadCache","printerDocs","list","dtos","mapArray","keyValues","map","p","key","getId","value","setKeyValuesBatch","countDisabledPrinters","getAllValues","filter","enabled","length","listCachedPrinters","includeDisabled","printers","getCachedPrinterOrThrowAsync","id","printer","getValue","NotFoundException","getCachedPrinterOrThrow","keyValueStore","getNameAsync","name","getName","getLoginDtoAsync","printerURL","apiKey","username","password","printerType","getLoginDto","event","mappedPrinters","printerDto","setKeyValue","deleteKeysBatch","printerIds","toString","entities","entity","toDto"],"mappings":"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"}
@@ -14,25 +14,27 @@ const _node = require("@sentry/node");
14
14
  const _envutils = require("../utils/env.utils");
15
15
  const _serverconstants = require("../server.constants");
16
16
  class SettingsStore {
17
- isTypeOrmMode;
18
17
  settingsService;
18
+ isTypeormMode;
19
19
  logger;
20
- settings = null;
21
- constructor({ settingsService, loggerFactory, isTypeormMode }){
20
+ settings;
21
+ constructor(loggerFactory, settingsService, isTypeormMode){
22
22
  this.settingsService = settingsService;
23
+ this.isTypeormMode = isTypeormMode;
24
+ this.settings = null;
23
25
  this.logger = loggerFactory(SettingsStore.name);
24
- this.isTypeOrmMode = isTypeormMode;
25
26
  }
26
27
  getSettings() {
28
+ this.throwIfSettingsUnset();
27
29
  const settings = this.settings;
28
- if (!settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded");
29
30
  return Object.freeze({
30
31
  [_serversettingsconstants.serverSettingsKey]: {
31
32
  loginRequired: settings[_serversettingsconstants.serverSettingsKey].loginRequired,
32
33
  registration: settings[_serversettingsconstants.serverSettingsKey].registration,
33
34
  sentryDiagnosticsEnabled: settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled,
34
35
  experimentalMoonrakerSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport,
35
- experimentalTypeormSupport: this.isTypeOrmMode,
36
+ experimentalPrusaLinkSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalPrusaLinkSupport,
37
+ experimentalTypeormSupport: this.isTypeormMode,
36
38
  experimentalClientSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalClientSupport,
37
39
  experimentalThumbnailSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport
38
40
  },
@@ -43,8 +45,8 @@ class SettingsStore {
43
45
  });
44
46
  }
45
47
  getSettingsSensitive() {
48
+ this.throwIfSettingsUnset();
46
49
  const settings = this.settings;
47
- if (!settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded");
48
50
  return Object.freeze({
49
51
  [_serversettingsconstants.credentialSettingsKey]: {
50
52
  jwtExpiresIn: settings[_serversettingsconstants.credentialSettingsKey].jwtExpiresIn,
@@ -52,58 +54,66 @@ class SettingsStore {
52
54
  refreshTokenExpiry: settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry
53
55
  },
54
56
  [_serversettingsconstants.serverSettingsKey]: {
55
- debugSettings: settings[_serversettingsconstants.serverSettingsKey].debugSettings,
56
57
  experimentalMoonrakerSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport,
57
- experimentalTypeormSupport: this.isTypeOrmMode,
58
+ experimentalTypeormSupport: this.isTypeormMode,
58
59
  experimentalClientSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalClientSupport,
59
60
  experimentalThumbnailSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport
60
61
  }
61
62
  });
62
63
  }
63
- getDebugSettingsSensitive() {
64
- return this.getSettingsSensitive()[_serversettingsconstants.serverSettingsKey].debugSettings;
65
- }
66
64
  async loadSettings() {
67
65
  this.settings = await this.settingsService.getOrCreate();
68
66
  await this.processSentryEnabled();
69
67
  }
70
68
  async getCredentialSettings() {
69
+ this.throwIfSettingsUnset();
71
70
  return this.settings[_serversettingsconstants.credentialSettingsKey];
72
71
  }
73
72
  async getAnonymousDiagnosticsEnabled() {
73
+ this.throwIfSettingsUnset();
74
74
  return this.settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled;
75
75
  }
76
76
  async persistOptionalCredentialSettings(overrideJwtSecret, overrideJwtExpiresIn) {
77
- if (overrideJwtSecret) {
78
- await this.updateCredentialSettings({
77
+ this.throwIfSettingsUnset();
78
+ const credentialSettings = await this.getCredentialSettings();
79
+ if (overrideJwtSecret?.length) {
80
+ await this.settingsService.updateJwtSecretCredentialSetting({
79
81
  jwtSecret: overrideJwtSecret
80
82
  });
81
83
  }
82
- if (overrideJwtExpiresIn) {
84
+ if (overrideJwtExpiresIn?.length) {
83
85
  await this.updateCredentialSettings({
86
+ refreshTokenExpiry: credentialSettings.refreshTokenExpiry,
87
+ refreshTokenAttempts: credentialSettings.refreshTokenAttempts,
84
88
  jwtExpiresIn: parseInt(overrideJwtExpiresIn)
85
89
  });
86
90
  }
91
+ this.settings[_serversettingsconstants.credentialSettingsKey] = await this.getCredentialSettings();
87
92
  }
88
93
  getWizardState() {
94
+ this.throwIfSettingsUnset();
95
+ const settings = this.settings;
89
96
  return {
90
- wizardCompleted: this.settings[_serversettingsconstants.wizardSettingKey].wizardCompleted,
91
- wizardVersion: this.settings[_serversettingsconstants.wizardSettingKey].wizardVersion,
97
+ wizardCompleted: settings[_serversettingsconstants.wizardSettingKey].wizardCompleted,
98
+ wizardVersion: settings[_serversettingsconstants.wizardSettingKey].wizardVersion,
92
99
  latestWizardVersion: _serverconstants.AppConstants.currentWizardVersion
93
100
  };
94
101
  }
95
102
  isWizardCompleted() {
96
- return this.settings[_serversettingsconstants.wizardSettingKey].wizardCompleted && this.settings[_serversettingsconstants.wizardSettingKey].wizardVersion === _serverconstants.AppConstants.currentWizardVersion;
103
+ this.throwIfSettingsUnset();
104
+ const settings = this.settings;
105
+ return settings[_serversettingsconstants.wizardSettingKey].wizardCompleted && settings[_serversettingsconstants.wizardSettingKey].wizardVersion === _serverconstants.AppConstants.currentWizardVersion;
97
106
  }
98
107
  getWizardSettings() {
108
+ this.throwIfSettingsUnset();
99
109
  return this.settings[_serversettingsconstants.wizardSettingKey];
100
110
  }
101
111
  isRegistrationEnabled() {
102
- if (!this.settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded");
112
+ this.throwIfSettingsUnset();
103
113
  return this.settings[_serversettingsconstants.serverSettingsKey].registration;
104
114
  }
105
115
  isThumbnailSupportEnabled() {
106
- if (!this.settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded");
116
+ this.throwIfSettingsUnset();
107
117
  return this.settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport;
108
118
  }
109
119
  getServerSettings() {
@@ -122,73 +132,87 @@ class SettingsStore {
122
132
  return this.getSettings()[_serversettingsconstants.printerFileCleanSettingKey]?.autoRemoveOldFilesBeforeUpload;
123
133
  }
124
134
  async setWizardCompleted(version) {
125
- this.settings = await this.settingsService.patchWizardSettings({
135
+ this.settings = await this.settingsService.updateWizardSettings({
126
136
  wizardCompleted: true,
127
137
  wizardCompletedAt: new Date(),
128
138
  wizardVersion: version
129
139
  });
130
140
  return this.getSettings();
131
141
  }
132
- async setRegistrationEnabled(registration = true) {
133
- this.settings = await this.settingsService.patchServerSettings({
134
- registration
135
- });
136
- return this.getSettings();
137
- }
138
142
  async getLoginRequired() {
139
143
  return this.getServerSettings().loginRequired;
140
144
  }
141
145
  async setLoginRequired(loginRequired = true) {
142
- this.settings = await this.settingsService.patchServerSettings({
143
- loginRequired
144
- });
146
+ this.throwIfSettingsUnset();
147
+ this.settings[_serversettingsconstants.serverSettingsKey].loginRequired = loginRequired;
148
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
149
+ return this.getSettings();
150
+ }
151
+ async setRegistrationEnabled(registration = true) {
152
+ this.throwIfSettingsUnset();
153
+ this.settings[_serversettingsconstants.serverSettingsKey].registration = registration;
154
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
145
155
  return this.getSettings();
146
156
  }
147
157
  async updateServerSettings(serverSettings) {
148
- this.settings = await this.settingsService.patchServerSettings(serverSettings);
158
+ this.settings = await this.settingsService.updateServerSettings(serverSettings);
149
159
  return this.getSettings();
150
160
  }
151
161
  async updateTimeoutSettings(timeoutSettings) {
152
162
  this.settings = await this.settingsService.updateTimeoutSettings(timeoutSettings);
153
163
  return this.getSettings();
154
164
  }
155
- async patchFileCleanSettings(fileClean) {
156
- this.settings = await this.settingsService.patchFileCleanSettings(fileClean);
165
+ async updateFileCleanSettings(fileClean) {
166
+ this.settings = await this.settingsService.updateFileCleanSettings(fileClean);
157
167
  return this.getSettings();
158
168
  }
159
169
  async updateCredentialSettings(credentialSettings) {
160
- this.settings = await this.settingsService.patchCredentialSettings(credentialSettings);
161
- return this.getSettings();
170
+ this.settings = await this.settingsService.updateCredentialSettings(credentialSettings);
171
+ }
172
+ async setRefreshTokenSettings({ refreshTokenAttempts, refreshTokenExpiry }) {
173
+ this.throwIfSettingsUnset();
174
+ this.settings[_serversettingsconstants.credentialSettingsKey].refreshTokenAttempts = refreshTokenAttempts;
175
+ this.settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry = refreshTokenExpiry;
176
+ await this.updateCredentialSettings(this.settings[_serversettingsconstants.credentialSettingsKey]);
162
177
  }
163
178
  async setSentryDiagnosticsEnabled(sentryDiagnosticsEnabled) {
164
- this.settings = await this.settingsService.patchServerSettings({
165
- sentryDiagnosticsEnabled
166
- });
179
+ this.throwIfSettingsUnset();
180
+ this.settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled = sentryDiagnosticsEnabled;
181
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
167
182
  await this.processSentryEnabled();
168
183
  return this.getSettings();
169
184
  }
170
- async setExperimentalMoonrakerSupport(moonrakerEnabled) {
171
- this.settings = await this.settingsService.patchServerSettings({
172
- experimentalMoonrakerSupport: moonrakerEnabled
173
- });
185
+ async setExperimentalMoonrakerSupport(experimentalMoonrakerSupport) {
186
+ this.throwIfSettingsUnset();
187
+ this.settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport = experimentalMoonrakerSupport;
188
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
174
189
  return this.getSettings();
175
190
  }
176
- async setExperimentalThumbnailSupport(thumbnailsEnabled) {
177
- this.settings = await this.settingsService.patchServerSettings({
178
- experimentalThumbnailSupport: thumbnailsEnabled
179
- });
191
+ async setExperimentalThumbnailSupport(experimentalThumbnailSupport) {
192
+ this.throwIfSettingsUnset();
193
+ this.settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport = experimentalThumbnailSupport;
194
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
180
195
  return this.getSettings();
181
196
  }
182
- async setExperimentalClientSupport(experimentalClientEnabled) {
183
- this.settings = await this.settingsService.patchServerSettings({
184
- experimentalClientSupport: experimentalClientEnabled
185
- });
197
+ async setExperimentalPrusaLinkSupport(experimentalPrusaLinkSupport) {
198
+ this.throwIfSettingsUnset();
199
+ this.settings[_serversettingsconstants.serverSettingsKey].experimentalPrusaLinkSupport = experimentalPrusaLinkSupport;
200
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
201
+ return this.getSettings();
202
+ }
203
+ async setExperimentalClientSupport(experimentalClientSupport) {
204
+ this.throwIfSettingsUnset();
205
+ this.settings[_serversettingsconstants.serverSettingsKey].experimentalClientSupport = experimentalClientSupport;
206
+ this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
186
207
  return this.getSettings();
187
208
  }
188
209
  async updateFrontendSettings(frontendSettings) {
189
210
  this.settings = await this.settingsService.updateFrontendSettings(frontendSettings);
190
211
  return this.getSettings();
191
212
  }
213
+ throwIfSettingsUnset() {
214
+ if (!this.settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded)");
215
+ }
192
216
  async processSentryEnabled() {
193
217
  const sentryEnabled = await this.getAnonymousDiagnosticsEnabled();
194
218
  if (sentryEnabled) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/state/settings.store.ts"],"names":["SettingsStore","isTypeOrmMode","settingsService","logger","settings","constructor","loggerFactory","isTypeormMode","name","getSettings","InternalServerException","Object","freeze","serverSettingsKey","loginRequired","registration","sentryDiagnosticsEnabled","experimentalMoonrakerSupport","experimentalTypeormSupport","experimentalClientSupport","experimentalThumbnailSupport","wizardSettingKey","frontendSettingKey","printerFileCleanSettingKey","timeoutSettingKey","getSettingsSensitive","credentialSettingsKey","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","debugSettings","getDebugSettingsSensitive","loadSettings","getOrCreate","processSentryEnabled","getCredentialSettings","getAnonymousDiagnosticsEnabled","persistOptionalCredentialSettings","overrideJwtSecret","overrideJwtExpiresIn","updateCredentialSettings","jwtSecret","parseInt","getWizardState","wizardCompleted","wizardVersion","latestWizardVersion","AppConstants","currentWizardVersion","isWizardCompleted","getWizardSettings","isRegistrationEnabled","isThumbnailSupportEnabled","getServerSettings","getTimeoutSettings","getFrontendSettings","getFileCleanSettings","isPreUploadFileCleanEnabled","autoRemoveOldFilesBeforeUpload","setWizardCompleted","version","patchWizardSettings","wizardCompletedAt","Date","setRegistrationEnabled","patchServerSettings","getLoginRequired","setLoginRequired","updateServerSettings","serverSettings","updateTimeoutSettings","timeoutSettings","patchFileCleanSettings","fileClean","credentialSettings","patchCredentialSettings","setSentryDiagnosticsEnabled","setExperimentalMoonrakerSupport","moonrakerEnabled","setExperimentalThumbnailSupport","thumbnailsEnabled","setExperimentalClientSupport","experimentalClientEnabled","updateFrontendSettings","frontendSettings","sentryEnabled","log","isTestEnvironment","client","getClient","warn","getOptions","enabled"],"mappings":";;;;+BAwBaA;;;eAAAA;;;mCAxB2B;yCAQjC;sBACmB;0BACQ;iCACL;AAatB,MAAMA;IACMC,cAAuB;IAChCC,gBAAkC;IAClCC,OAAsB;IACtBC,WAA6B,KAAK;IAE1CC,YAAY,EACVH,eAAe,EACfI,aAAa,EACbC,aAAa,EAKd,CAAE;QACD,IAAI,CAACL,eAAe,GAAGA;QACvB,IAAI,CAACC,MAAM,GAAGG,cAAcN,cAAcQ,IAAI;QAC9C,IAAI,CAACP,aAAa,GAAGM;IACvB;IAEAE,cAAc;QACZ,MAAML,WAAW,IAAI,CAACA,QAAQ;QAC9B,IAAI,CAACA,UAAU,MAAM,IAAIM,0CAAuB,CAAC;QAEjD,OAAOC,OAAOC,MAAM,CAAC;YAEnB,CAACC,0CAAiB,CAAC,EAAE;gBACnBC,eAAeV,QAAQ,CAACS,0CAAiB,CAAC,CAACC,aAAa;gBACxDC,cAAcX,QAAQ,CAACS,0CAAiB,CAAC,CAACE,YAAY;gBACtDC,0BAA0BZ,QAAQ,CAACS,0CAAiB,CAAC,CAACG,wBAAwB;gBAC9EC,8BAA8Bb,QAAQ,CAACS,0CAAiB,CAAC,CAACI,4BAA4B;gBACtFC,4BAA4B,IAAI,CAACjB,aAAa;gBAC9CkB,2BAA2Bf,QAAQ,CAACS,0CAAiB,CAAC,CAACM,yBAAyB;gBAChFC,8BAA8BhB,QAAQ,CAACS,0CAAiB,CAAC,CAACO,4BAA4B;YACxF;YACA,CAACC,yCAAgB,CAAC,EAAEjB,QAAQ,CAACiB,yCAAgB,CAAC;YAC9C,CAACC,2CAAkB,CAAC,EAAElB,QAAQ,CAACkB,2CAAkB,CAAC;YAClD,CAACC,mDAA0B,CAAC,EAAEnB,QAAQ,CAACmB,mDAA0B,CAAC;YAClE,CAACC,0CAAiB,CAAC,EAAEpB,QAAQ,CAACoB,0CAAiB,CAAC;QAClD;IACF;IAEAC,uBAAuB;QACrB,MAAMrB,WAAW,IAAI,CAACA,QAAQ;QAC9B,IAAI,CAACA,UAAU,MAAM,IAAIM,0CAAuB,CAAC;QACjD,OAAOC,OAAOC,MAAM,CAAC;YACnB,CAACc,8CAAqB,CAAC,EAAE;gBACvBC,cAAcvB,QAAQ,CAACsB,8CAAqB,CAAC,CAACC,YAAY;gBAC1DC,sBAAsBxB,QAAQ,CAACsB,8CAAqB,CAAC,CAACE,oBAAoB;gBAC1EC,oBAAoBzB,QAAQ,CAACsB,8CAAqB,CAAC,CAACG,kBAAkB;YACxE;YACA,CAAChB,0CAAiB,CAAC,EAAE;gBACnBiB,eAAe1B,QAAQ,CAACS,0CAAiB,CAAC,CAACiB,aAAa;gBACxDb,8BAA8Bb,QAAQ,CAACS,0CAAiB,CAAC,CAACI,4BAA4B;gBACtFC,4BAA4B,IAAI,CAACjB,aAAa;gBAC9CkB,2BAA2Bf,QAAQ,CAACS,0CAAiB,CAAC,CAACM,yBAAyB;gBAChFC,8BAA8BhB,QAAQ,CAACS,0CAAiB,CAAC,CAACO,4BAA4B;YACxF;QACF;IACF;IAEAW,4BAA4B;QAC1B,OAAO,IAAI,CAACN,oBAAoB,EAAE,CAACZ,0CAAiB,CAAC,CAACiB,aAAa;IACrE;IAEA,MAAME,eAAe;QAEnB,IAAI,CAAC5B,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+B,WAAW;QACtD,MAAM,IAAI,CAACC,oBAAoB;IACjC;IAEA,MAAMC,wBAAwB;QAC5B,OAAO,IAAI,CAAC/B,QAAQ,CAACsB,8CAAqB,CAAC;IAC7C;IAEA,MAAMU,iCAAiC;QACrC,OAAO,IAAI,CAAChC,QAAQ,CAACS,0CAAiB,CAAC,CAACG,wBAAwB;IAClE;IAEA,MAAMqB,kCAAkCC,iBAAyB,EAAEC,oBAA4B,EAAE;QAC/F,IAAID,mBAAmB;YACrB,MAAM,IAAI,CAACE,wBAAwB,CAAC;gBAClCC,WAAWH;YACb;QACF;QACA,IAAIC,sBAAsB;YACxB,MAAM,IAAI,CAACC,wBAAwB,CAAC;gBAClCb,cAAce,SAASH;YACzB;QACF;IACF;IAEAI,iBAAiB;QACf,OAAO;YACLC,iBAAiB,IAAI,CAACxC,QAAQ,CAACiB,yCAAgB,CAAC,CAACuB,eAAe;YAChEC,eAAe,IAAI,CAACzC,QAAQ,CAACiB,yCAAgB,CAAC,CAACwB,aAAa;YAC5DC,qBAAqBC,6BAAY,CAACC,oBAAoB;QACxD;IACF;IAEAC,oBAAoB;QAClB,OACE,IAAI,CAAC7C,QAAQ,CAACiB,yCAAgB,CAAC,CAACuB,eAAe,IAC/C,IAAI,CAACxC,QAAQ,CAACiB,yCAAgB,CAAC,CAACwB,aAAa,KAAKE,6BAAY,CAACC,oBAAoB;IAEvF;IAEAE,oBAAoB;QAClB,OAAO,IAAI,CAAC9C,QAAQ,CAACiB,yCAAgB,CAAC;IACxC;IAEA8B,wBAAwB;QACtB,IAAI,CAAC,IAAI,CAAC/C,QAAQ,EAAE,MAAM,IAAIM,0CAAuB,CAAC;QACtD,OAAO,IAAI,CAACN,QAAQ,CAACS,0CAAiB,CAAC,CAACE,YAAY;IACtD;IAEAqC,4BAA4B;QAC1B,IAAI,CAAC,IAAI,CAAChD,QAAQ,EAAE,MAAM,IAAIM,0CAAuB,CAAC;QACtD,OAAO,IAAI,CAACN,QAAQ,CAACS,0CAAiB,CAAC,CAACO,4BAA4B;IACtE;IAEAiC,oBAAoB;QAClB,OAAO,IAAI,CAAC5C,WAAW,EAAE,CAACI,0CAAiB,CAAC;IAC9C;IAEAyC,qBAAqB;QACnB,OAAO,IAAI,CAAC7C,WAAW,EAAE,CAACe,0CAAiB,CAAC;IAC9C;IAEA+B,sBAAsB;QACpB,OAAO,IAAI,CAAC9C,WAAW,EAAE,CAACa,2CAAkB,CAAC;IAC/C;IAEAkC,uBAAuB;QACrB,OAAO,IAAI,CAAC/C,WAAW,EAAE,CAACc,mDAA0B,CAAC;IACvD;IAEAkC,8BAA8B;QAC5B,OAAO,IAAI,CAAChD,WAAW,EAAE,CAACc,mDAA0B,CAAC,EAAEmC;IACzD;IAEA,MAAMC,mBAAmBC,OAAe,EAAE;QACxC,IAAI,CAACxD,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC2D,mBAAmB,CAAC;YAC7DjB,iBAAiB;YACjBkB,mBAAmB,IAAIC;YACvBlB,eAAee;QACjB;QACA,OAAO,IAAI,CAACnD,WAAW;IACzB;IAEA,MAAMuD,uBAAuBjD,eAAe,IAAI,EAAE;QAChD,IAAI,CAACX,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAAC;YAC7DlD;QACF;QACA,OAAO,IAAI,CAACN,WAAW;IACzB;IAEA,MAAMyD,mBAAmB;QACvB,OAAO,IAAI,CAACb,iBAAiB,GAAGvC,aAAa;IAC/C;IAEA,MAAMqD,iBAAiBrD,gBAAgB,IAAI,EAAE;QAC3C,IAAI,CAACV,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAAC;YAC7DnD;QACF;QACA,OAAO,IAAI,CAACL,WAAW;IACzB;IAEA,MAAM2D,qBAAqBC,cAA0C,EAAE;QACrE,IAAI,CAACjE,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAACI;QAC/D,OAAO,IAAI,CAAC5D,WAAW;IACzB;IAEA,MAAM6D,sBAAsBC,eAAmC,EAAE;QAC/D,IAAI,CAACnE,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAACoE,qBAAqB,CAACC;QACjE,OAAO,IAAI,CAAC9D,WAAW;IACzB;IAEA,MAAM+D,uBAAuBC,SAAwC,EAAE;QACrE,IAAI,CAACrE,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAACsE,sBAAsB,CAACC;QAClE,OAAO,IAAI,CAAChE,WAAW;IACzB;IAEA,MAAM+B,yBAAyBkC,kBAAkD,EAAE;QACjF,IAAI,CAACtE,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAACyE,uBAAuB,CAACD;QACnE,OAAO,IAAI,CAACjE,WAAW;IACzB;IAEA,MAAMmE,4BAA4B5D,wBAAiC,EAAE;QACnE,IAAI,CAACZ,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAAC;YAC7DjD;QACF;QACA,MAAM,IAAI,CAACkB,oBAAoB;QAC/B,OAAO,IAAI,CAACzB,WAAW;IACzB;IAEA,MAAMoE,gCAAgCC,gBAAyB,EAAE;QAC/D,IAAI,CAAC1E,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAAC;YAC7DhD,8BAA8B6D;QAChC;QACA,OAAO,IAAI,CAACrE,WAAW;IACzB;IAEA,MAAMsE,gCAAgCC,iBAA0B,EAAE;QAChE,IAAI,CAAC5E,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAAC;YAC7D7C,8BAA8B4D;QAChC;QACA,OAAO,IAAI,CAACvE,WAAW;IACzB;IAEA,MAAMwE,6BAA6BC,yBAAkC,EAAE;QACrE,IAAI,CAAC9E,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAAC+D,mBAAmB,CAAC;YAC7D9C,2BAA2B+D;QAC7B;QACA,OAAO,IAAI,CAACzE,WAAW;IACzB;IAEA,MAAM0E,uBAAuBC,gBAAqC,EAAE;QAClE,IAAI,CAAChF,QAAQ,GAAG,MAAM,IAAI,CAACF,eAAe,CAACiF,sBAAsB,CAACC;QAClE,OAAO,IAAI,CAAC3E,WAAW;IACzB;IAEA,MAAcyB,uBAAuB;QACnC,MAAMmD,gBAAgB,MAAM,IAAI,CAACjD,8BAA8B;QAC/D,IAAIiD,eAAe;YACjB,IAAI,CAAClF,MAAM,CAACmF,GAAG,CAAC;QAClB,OAAO;YACL,IAAI,CAACnF,MAAM,CAACmF,GAAG,CAAC;QAClB;QAEA,IAAIC,IAAAA,2BAAiB,KAAI;QACzB,MAAMC,SAASC,IAAAA,eAAS;QACxB,IAAI,CAACD,QAAQ;YACX,IAAI,CAACrF,MAAM,CAACuF,IAAI,CAAC;YACjB;QACF;QACAF,OAAOG,UAAU,GAAGC,OAAO,GAAGP;IAChC;AACF"}
1
+ {"version":3,"sources":["../../src/state/settings.store.ts"],"names":["SettingsStore","logger","settings","constructor","loggerFactory","settingsService","isTypeormMode","name","getSettings","throwIfSettingsUnset","Object","freeze","serverSettingsKey","loginRequired","registration","sentryDiagnosticsEnabled","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalTypeormSupport","experimentalClientSupport","experimentalThumbnailSupport","wizardSettingKey","frontendSettingKey","printerFileCleanSettingKey","timeoutSettingKey","getSettingsSensitive","credentialSettingsKey","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","loadSettings","getOrCreate","processSentryEnabled","getCredentialSettings","getAnonymousDiagnosticsEnabled","persistOptionalCredentialSettings","overrideJwtSecret","overrideJwtExpiresIn","credentialSettings","length","updateJwtSecretCredentialSetting","jwtSecret","updateCredentialSettings","parseInt","getWizardState","wizardCompleted","wizardVersion","latestWizardVersion","AppConstants","currentWizardVersion","isWizardCompleted","getWizardSettings","isRegistrationEnabled","isThumbnailSupportEnabled","getServerSettings","getTimeoutSettings","getFrontendSettings","getFileCleanSettings","isPreUploadFileCleanEnabled","autoRemoveOldFilesBeforeUpload","setWizardCompleted","version","updateWizardSettings","wizardCompletedAt","Date","getLoginRequired","setLoginRequired","updateServerSettings","setRegistrationEnabled","serverSettings","updateTimeoutSettings","timeoutSettings","updateFileCleanSettings","fileClean","setRefreshTokenSettings","setSentryDiagnosticsEnabled","setExperimentalMoonrakerSupport","setExperimentalThumbnailSupport","setExperimentalPrusaLinkSupport","setExperimentalClientSupport","updateFrontendSettings","frontendSettings","InternalServerException","sentryEnabled","log","isTestEnvironment","client","getClient","warn","getOptions","enabled"],"mappings":"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"}
@@ -19,37 +19,37 @@ _export(exports, {
19
19
  const _socketio = require("socket.io");
20
20
  const _eventconstants = require("../constants/event.constants");
21
21
  const _passport = require("../middleware/passport");
22
- const _passportjwt = require("passport-jwt");
23
- const authorize = (settingsStore, options, verify)=>{
24
- const strategy = new _passportjwt.Strategy(options, verify);
25
- return async function authorizeCallback(socket, next) {
26
- if (!await settingsStore.getLoginRequired()) {
27
- return next();
28
- }
29
- strategy.success = function success(user) {
30
- socket.handshake.user = user;
31
- next();
32
- };
33
- strategy.fail = (info)=>next(new Error(info));
34
- strategy.error = (error)=>next(error);
35
- strategy.authenticate(socket, {});
36
- };
37
- };
22
+ const _socketiomiddleware = require("../middleware/socketio.middleware");
23
+ const _promclient = require("prom-client");
24
+ const socketIoGatewaySessions = new _promclient.Gauge({
25
+ name: "socketio_gateway_sessions",
26
+ help: "Gateway active sessions"
27
+ });
28
+ const socketIoGatewayDisconnects = new _promclient.Counter({
29
+ name: "socketio_gateway_disconnects",
30
+ help: "Gateway connections closed"
31
+ });
32
+ const socketIoGatewayMessagesSent = new _promclient.Counter({
33
+ name: "socketio_messages_sent",
34
+ help: "Gateway messages sent"
35
+ });
36
+ const socketIoGatewayMessageSentSize = new _promclient.Gauge({
37
+ name: "socketio_message_size",
38
+ help: "Gateway message sent size"
39
+ });
38
40
  class SocketIoGateway {
39
- logger;
40
41
  eventEmitter2;
41
- io;
42
- authService;
43
42
  settingsStore;
44
- configService;
45
43
  userService;
46
- constructor({ loggerFactory, eventEmitter2, settingsStore, authService, configService, userService }){
47
- this.logger = loggerFactory(SocketIoGateway.name);
44
+ configService;
45
+ logger;
46
+ io;
47
+ constructor(loggerFactory, eventEmitter2, settingsStore, userService, configService){
48
48
  this.eventEmitter2 = eventEmitter2;
49
49
  this.settingsStore = settingsStore;
50
- this.authService = authService;
51
50
  this.userService = userService;
52
51
  this.configService = configService;
52
+ this.logger = loggerFactory(SocketIoGateway.name);
53
53
  }
54
54
  attachServer(httpServer) {
55
55
  this.io = new _socketio.Server(httpServer, {
@@ -58,34 +58,37 @@ class SocketIoGateway {
58
58
  }
59
59
  });
60
60
  const opts = (0, _passport.getPassportJwtOptions)(this.settingsStore, this.configService, (value)=>value.handshake.auth.token);
61
- const verify = (0, _passport.verifyUserCallback)(this.userService);
62
- this.io.use(authorize(this.settingsStore, opts, verify));
61
+ this.io.use((0, _socketiomiddleware.authorize)(this.settingsStore, opts, this.logger, (0, _passport.verifyUserCallback)(this.userService)));
63
62
  this.io.on("connection", (socket)=>this.onConnect.bind(this)(socket));
64
63
  }
65
64
  onConnect(socket) {
66
- this.logger.debug("SocketIO Client connected", socket.id);
65
+ this.logger.debug("SocketIO Client connected", {
66
+ socketId: socket.id
67
+ });
67
68
  this.eventEmitter2.emit(_eventconstants.socketIoConnectedEvent, socket.id);
69
+ socketIoGatewaySessions.inc();
68
70
  socket.on("disconnect", ()=>{
69
- this.logger.debug("SocketIO Client disconnected", socket.id);
71
+ this.logger.debug("SocketIO Client disconnected", {
72
+ socketId: socket.id
73
+ });
74
+ socketIoGatewaySessions.dec(1);
75
+ socketIoGatewayDisconnects.inc();
70
76
  });
71
77
  }
72
78
  send(event, data) {
73
79
  if (!this.io) {
74
- this.logger.debug("No io server setup yet");
80
+ this.logger.debug(`Cant send event ${event}, socketio gateway must be created first`);
75
81
  return;
76
82
  }
77
- if (this.settingsStore.getServerSettings().debugSettings?.debugSocketIoEvents) {
78
- this.logger.log(`Sending event ${event}`);
79
- }
80
83
  this.io.emit(event, data);
84
+ socketIoGatewayMessagesSent.inc();
85
+ const payload = JSON.stringify(data);
86
+ const sizeInBytes = Buffer.byteLength(payload);
87
+ socketIoGatewayMessageSentSize.set(sizeInBytes);
81
88
  }
82
89
  }
83
90
  const IO_MESSAGES = {
84
- LegacyUpdate: "legacy-update",
85
- LegacyPrinterTest: "legacy-printer-test",
86
- CompletionEvent: "completion-event",
87
- HostState: "host-state",
88
- ApiAccessibility: "api-accessibility"
91
+ LegacyUpdate: "legacy-update"
89
92
  };
90
93
 
91
94
  //# sourceMappingURL=socket-io.gateway.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/state/socket-io.gateway.ts"],"names":["IO_MESSAGES","SocketIoGateway","authorize","settingsStore","options","verify","strategy","JwtStrategy","authorizeCallback","socket","next","getLoginRequired","success","user","handshake","fail","info","Error","error","authenticate","logger","eventEmitter2","io","authService","configService","userService","constructor","loggerFactory","name","attachServer","httpServer","Server","cors","origin","opts","getPassportJwtOptions","value","auth","token","verifyUserCallback","use","on","onConnect","bind","debug","id","emit","socketIoConnectedEvent","send","event","data","getServerSettings","debugSettings","debugSocketIoEvents","log","LegacyUpdate","LegacyPrinterTest","CompletionEvent","HostState","ApiAccessibility"],"mappings":";;;;;;;;;;;IA0GaA,WAAW;eAAXA;;IAhEAC,eAAe;eAAfA;;;0BA1CkB;gCACQ;0BAOmB;6BAEiB;AAK3E,MAAMC,YAAY,CAChBC,eACAC,SACAC;IAEA,MAAMC,WAAW,IAAIC,qBAAW,CAACH,SAASC;IAE1C,OAAO,eAAeG,kBACpBC,MAAyE,EACzEC,IAAmC;QAEnC,IAAI,CAAE,MAAMP,cAAcQ,gBAAgB,IAAK;YAE7C,OAAOD;QACT;QAEAJ,SAASM,OAAO,GAAG,SAASA,QAAQC,IAAI;YACtCJ,OAAOK,SAAS,CAACD,IAAI,GAAGA;YACxBH;QACF;QACAJ,SAASS,IAAI,GAAG,CAACC,OAASN,KAAK,IAAIO,MAAMD;QACzCV,SAASY,KAAK,GAAG,CAACA,QAAUR,KAAKQ;QAEjCZ,SAASa,YAAY,CAACV,QAAQ,CAAC;IACjC;AACF;AAEO,MAAMR;IACXmB,OAAsB;IACtBC,cAA6B;IAC7BC,GAAW;IAEXC,YAAyB;IACzBpB,cAA6B;IAC7BqB,cAA8B;IAC9BC,YAA0B;IAE1BC,YAAY,EACVC,aAAa,EACbN,aAAa,EACblB,aAAa,EACboB,WAAW,EACXC,aAAa,EACbC,WAAW,EAQZ,CAAE;QACD,IAAI,CAACL,MAAM,GAAGO,cAAc1B,gBAAgB2B,IAAI;QAChD,IAAI,CAACP,aAAa,GAAGA;QACrB,IAAI,CAAClB,aAAa,GAAGA;QACrB,IAAI,CAACoB,WAAW,GAAGA;QACnB,IAAI,CAACE,WAAW,GAAGA;QACnB,IAAI,CAACD,aAAa,GAAGA;IACvB;IAEAK,aAAaC,UAAuB,EAAE;QACpC,IAAI,CAACR,EAAE,GAAG,IAAIS,gBAAM,CAACD,YAAY;YAAEE,MAAM;gBAAEC,QAAQ;YAAI;QAAE;QACzD,MAAMC,OAAOC,IAAAA,+BAAqB,EAAC,IAAI,CAAChC,aAAa,EAAE,IAAI,CAACqB,aAAa,EAAE,CAACY,QAAkBA,MAAMtB,SAAS,CAACuB,IAAI,CAACC,KAAK;QACxH,MAAMjC,SAASkC,IAAAA,4BAAkB,EAAC,IAAI,CAACd,WAAW;QAClD,IAAI,CAACH,EAAE,CAACkB,GAAG,CAACtC,UAAU,IAAI,CAACC,aAAa,EAAE+B,MAAM7B;QAChD,IAAI,CAACiB,EAAE,CAACmB,EAAE,CAAC,cAAc,CAAChC,SAAW,IAAI,CAACiC,SAAS,CAACC,IAAI,CAAC,IAAI,EAAElC;IACjE;IAEAiC,UAAUjC,MAAc,EAAE;QACxB,IAAI,CAACW,MAAM,CAACwB,KAAK,CAAC,6BAA6BnC,OAAOoC,EAAE;QAExD,IAAI,CAACxB,aAAa,CAACyB,IAAI,CAACC,sCAAsB,EAAEtC,OAAOoC,EAAE;QAEzDpC,OAAOgC,EAAE,CAAC,cAAc;YACtB,IAAI,CAACrB,MAAM,CAACwB,KAAK,CAAC,gCAAgCnC,OAAOoC,EAAE;QAC7D;IACF;IAEAG,KAAQC,KAAa,EAAEC,IAAO,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC5B,EAAE,EAAE;YACZ,IAAI,CAACF,MAAM,CAACwB,KAAK,CAAC;YAClB;QACF;QAEA,IAAI,IAAI,CAACzC,aAAa,CAACgD,iBAAiB,GAAGC,aAAa,EAAEC,qBAAqB;YAC7E,IAAI,CAACjC,MAAM,CAACkC,GAAG,CAAC,CAAC,cAAc,EAAEL,OAAO;QAC1C;QACA,IAAI,CAAC3B,EAAE,CAACwB,IAAI,CAACG,OAAOC;IACtB;AACF;AAEO,MAAMlD,cAAc;IACzBuD,cAAc;IACdC,mBAAmB;IACnBC,iBAAiB;IACjBC,WAAW;IACXC,kBAAkB;AACpB"}
1
+ {"version":3,"sources":["../../src/state/socket-io.gateway.ts"],"names":["IO_MESSAGES","SocketIoGateway","socketIoGatewaySessions","Gauge","name","help","socketIoGatewayDisconnects","Counter","socketIoGatewayMessagesSent","socketIoGatewayMessageSentSize","logger","io","constructor","loggerFactory","eventEmitter2","settingsStore","userService","configService","attachServer","httpServer","Server","cors","origin","opts","getPassportJwtOptions","value","handshake","auth","token","use","authorize","verifyUserCallback","on","socket","onConnect","bind","debug","socketId","id","emit","socketIoConnectedEvent","inc","dec","send","event","data","payload","JSON","stringify","sizeInBytes","Buffer","byteLength","set","LegacyUpdate"],"mappings":";;;;;;;;;;;IAsFaA,WAAW;eAAXA;;IArDAC,eAAe;eAAfA;;;0BAjCkB;gCACQ;0BAMmB;oCAGhC;4BACK;AAE/B,MAAMC,0BAA0B,IAAIC,iBAAK,CAAC;IACxCC,MAAM;IACNC,MAAM;AACR;AAEA,MAAMC,6BAA6B,IAAIC,mBAAO,CAAC;IAC7CH,MAAM;IACNC,MAAM;AACR;AAEA,MAAMG,8BAA8B,IAAID,mBAAO,CAAC;IAC9CH,MAAM;IACNC,MAAM;AACR;AAEA,MAAMI,iCAAiC,IAAIN,iBAAK,CAAC;IAC/CC,MAAM;IACNC,MAAM;AACR;AAEO,MAAMJ;;;;;IACXS,OAAsB;IAEtBC,GAAW;IAEXC,YACEC,aAA6B,EAC7B,AAAiBC,aAA4B,EAC7C,AAAiBC,aAA4B,EAC7C,AAAiBC,WAAyB,EAC1C,AAAiBC,aAA6B,CAC9C;aAJiBH,gBAAAA;aACAC,gBAAAA;aACAC,cAAAA;aACAC,gBAAAA;QAEjB,IAAI,CAACP,MAAM,GAAGG,cAAcZ,gBAAgBG,IAAI;IAClD;IAEAc,aAAaC,UAAsB,EAAE;QACnC,IAAI,CAACR,EAAE,GAAG,IAAIS,gBAAM,CAACD,YAAY;YAAEE,MAAM;gBAAEC,QAAQ;YAAI;QAAE;QACzD,MAAMC,OAAOC,IAAAA,+BAAqB,EAChC,IAAI,CAACT,aAAa,EAClB,IAAI,CAACE,aAAa,EAClB,CAACQ,QAAkBA,MAAMC,SAAS,CAACC,IAAI,CAACC,KAAK;QAE/C,IAAI,CAACjB,EAAE,CAACkB,GAAG,CAACC,IAAAA,6BAAS,EAAC,IAAI,CAACf,aAAa,EAAEQ,MAAM,IAAI,CAACb,MAAM,EAAEqB,IAAAA,4BAAkB,EAAC,IAAI,CAACf,WAAW;QAChG,IAAI,CAACL,EAAE,CAACqB,EAAE,CAAC,cAAc,CAACC,SAAW,IAAI,CAACC,SAAS,CAACC,IAAI,CAAC,IAAI,EAAEF;IACjE;IAEAC,UAAUD,MAAc,EAAE;QACxB,IAAI,CAACvB,MAAM,CAAC0B,KAAK,CAAC,6BAA6B;YAAEC,UAAUJ,OAAOK,EAAE;QAAC;QACrE,IAAI,CAACxB,aAAa,CAACyB,IAAI,CAACC,sCAAsB,EAAEP,OAAOK,EAAE;QACzDpC,wBAAwBuC,GAAG;QAE3BR,OAAOD,EAAE,CAAC,cAAc;YACtB,IAAI,CAACtB,MAAM,CAAC0B,KAAK,CAAC,gCAAgC;gBAAEC,UAAUJ,OAAOK,EAAE;YAAC;YACxEpC,wBAAwBwC,GAAG,CAAC;YAC5BpC,2BAA2BmC,GAAG;QAChC;IACF;IAEAE,KAAQC,KAAa,EAAEC,IAAO,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAClC,EAAE,EAAE;YACZ,IAAI,CAACD,MAAM,CAAC0B,KAAK,CAAC,CAAC,gBAAgB,EAAEQ,MAAM,wCAAwC,CAAC;YACpF;QACF;QAEA,IAAI,CAACjC,EAAE,CAAC4B,IAAI,CAACK,OAAOC;QACpBrC,4BAA4BiC,GAAG;QAE/B,MAAMK,UAAUC,KAAKC,SAAS,CAACH;QAC/B,MAAMI,cAAcC,OAAOC,UAAU,CAACL;QACtCrC,+BAA+B2C,GAAG,CAACH;IACrC;AACF;AAEO,MAAMjD,cAAc;IACzBqD,cAAc;AAChB"}
@@ -16,33 +16,34 @@ const _serverconstants = require("../server.constants");
16
16
  const _errorutils = require("../utils/error.utils");
17
17
  const _node = require("@sentry/node");
18
18
  const _socketstatetype = require("../shared/dtos/socket-state.type");
19
- const _websocketconstants = require("../services/moonraker/constants/websocket.constants");
19
+ const _moonrakerconstants = require("../services/moonraker/constants/moonraker.constants");
20
20
  const _eventconstants = require("../constants/event.constants");
21
21
  class TestPrinterSocketStore {
22
- testSocket;
23
- socketIoGateway;
24
22
  socketFactory;
23
+ socketIoGateway;
25
24
  eventEmitter2;
25
+ testSocket;
26
26
  logger;
27
- constructor({ socketFactory, socketIoGateway, eventEmitter2, loggerFactory }){
27
+ constructor(loggerFactory, socketFactory, socketIoGateway, eventEmitter2){
28
28
  this.socketFactory = socketFactory;
29
29
  this.socketIoGateway = socketIoGateway;
30
30
  this.eventEmitter2 = eventEmitter2;
31
31
  this.logger = loggerFactory(TestPrinterSocketStore.name);
32
32
  }
33
- async setupTestPrinter(printer) {
33
+ async setupTestPrinter(correlationToken, printer) {
34
34
  if (this.testSocket) {
35
35
  this.testSocket.close();
36
- this.testSocket = null;
36
+ delete this.testSocket;
37
37
  }
38
- const validatedData = await (0, _validators.validateInput)(printer, _createtestprintervalidation.createTestPrinterRules);
38
+ const validatedData = await (0, _validators.validateInput)(printer, _createtestprintervalidation.createTestPrinterSchema);
39
39
  validatedData.enabled = true;
40
- const { correlationToken } = printer;
41
40
  this.testSocket = this.socketFactory.createInstance(printer.printerType);
42
41
  this.testSocket.registerCredentials({
43
42
  printerId: correlationToken,
44
43
  loginDto: {
45
44
  apiKey: printer.apiKey,
45
+ username: printer.username,
46
+ password: printer.password,
46
47
  printerURL: printer.printerURL,
47
48
  printerType: printer.printerType
48
49
  }
@@ -53,11 +54,11 @@ class TestPrinterSocketStore {
53
54
  (0, _octoprintwebsocketadapter.octoPrintEvent)(_octoprintwebsocketadapter.WsMessage.WS_CLOSED),
54
55
  (0, _octoprintwebsocketadapter.octoPrintEvent)(_octoprintwebsocketadapter.WsMessage.WS_OPENED),
55
56
  (0, _octoprintwebsocketadapter.octoPrintEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR),
56
- (0, _websocketconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_STATE_UPDATED),
57
- (0, _websocketconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED),
58
- (0, _websocketconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_CLOSED),
59
- (0, _websocketconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_OPENED),
60
- (0, _websocketconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR)
57
+ (0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_STATE_UPDATED),
58
+ (0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.API_STATE_UPDATED),
59
+ (0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_CLOSED),
60
+ (0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_OPENED),
61
+ (0, _moonrakerconstants.moonrakerEvent)(_octoprintwebsocketadapter.WsMessage.WS_ERROR)
61
62
  ];
62
63
  const listener = ({ event, payload, printerId })=>{
63
64
  if (printerId !== correlationToken) {
@@ -77,11 +78,15 @@ class TestPrinterSocketStore {
77
78
  await this.testSocket.setupSocketSession();
78
79
  this.logger.log("Test socket connection started");
79
80
  const promise = new Promise(async (resolve, reject)=>{
81
+ if (!this.testSocket) {
82
+ this.logger.error("Aborting test as testSocket is undefined.");
83
+ return;
84
+ }
80
85
  this.testSocket.open();
81
- for await (const startTime of (0, _promises.setInterval)(100)){
86
+ for await (const _startTime of (0, _promises.setInterval)(100)){
82
87
  if (!this.testSocket) {
83
88
  this.logger.warn("Test without socket, rejecting");
84
- reject();
89
+ reject(new Error("Test without socket, rejecting"));
85
90
  return;
86
91
  }
87
92
  if (this.testSocket.socketState === _socketstatetype.SOCKET_STATE.authenticated) {