@fdm-monster/server 1.8.2 → 1.9.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/.env.template +5 -3
  2. package/.gitattributes +4 -2
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.9.1.cjs +948 -0
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +25 -26
  7. package/RELEASE_NOTES.MD +69 -7
  8. package/biome.json +33 -0
  9. package/dist/consoles/download-github-releases.js.map +1 -1
  10. package/dist/consoles/launch-http-servers.js +31 -0
  11. package/dist/consoles/launch-http-servers.js.map +1 -0
  12. package/dist/consoles/mock-octoprint.server.js +291 -0
  13. package/dist/consoles/mock-octoprint.server.js.map +1 -0
  14. package/dist/consoles/mock-prusalink.server.js +57 -0
  15. package/dist/consoles/mock-prusalink.server.js.map +1 -0
  16. package/dist/consoles/utils/api-messages.js +856 -0
  17. package/dist/consoles/utils/api-messages.js.map +1 -0
  18. package/dist/consoles/utils/delayed-memory.storage.js +42 -0
  19. package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
  20. package/dist/consoles/utils/ws-messages.js +88 -0
  21. package/dist/consoles/utils/ws-messages.js.map +1 -0
  22. package/dist/constants/event.constants.js +11 -19
  23. package/dist/constants/event.constants.js.map +1 -1
  24. package/dist/constants/server-settings.constants.js +6 -11
  25. package/dist/constants/server-settings.constants.js.map +1 -1
  26. package/dist/container.js +15 -24
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.tokens.js +4 -5
  29. package/dist/container.tokens.js.map +1 -1
  30. package/dist/controllers/auth.controller.js +114 -24
  31. package/dist/controllers/auth.controller.js.map +1 -1
  32. package/dist/controllers/batch-call.controller.js +95 -24
  33. package/dist/controllers/batch-call.controller.js.map +1 -1
  34. package/dist/controllers/camera-stream.controller.js +16 -12
  35. package/dist/controllers/camera-stream.controller.js.map +1 -1
  36. package/dist/controllers/custom-gcode.controller.js +116 -40
  37. package/dist/controllers/custom-gcode.controller.js.map +1 -1
  38. package/dist/controllers/dto/update-client-dist.dto.js +0 -21
  39. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
  40. package/dist/controllers/first-time-setup.controller.js +54 -18
  41. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  42. package/dist/controllers/floor.controller.js +154 -43
  43. package/dist/controllers/floor.controller.js.map +1 -1
  44. package/dist/controllers/metrics.controller.js +56 -0
  45. package/dist/controllers/metrics.controller.js.map +1 -0
  46. package/dist/controllers/print-completion.controller.js +81 -18
  47. package/dist/controllers/print-completion.controller.js.map +1 -1
  48. package/dist/controllers/printer-files.controller.js +61 -50
  49. package/dist/controllers/printer-files.controller.js.map +1 -1
  50. package/dist/controllers/printer-group.controller.js +123 -33
  51. package/dist/controllers/printer-group.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +76 -29
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/printer.controller.js +62 -197
  55. package/dist/controllers/printer.controller.js.map +1 -1
  56. package/dist/controllers/server-private.controller.js +153 -39
  57. package/dist/controllers/server-private.controller.js.map +1 -1
  58. package/dist/controllers/server-public.controller.js +79 -84
  59. package/dist/controllers/server-public.controller.js.map +1 -1
  60. package/dist/controllers/settings.controller.js +222 -79
  61. package/dist/controllers/settings.controller.js.map +1 -1
  62. package/dist/controllers/user.controller.js +67 -57
  63. package/dist/controllers/user.controller.js.map +1 -1
  64. package/dist/controllers/validation/auth-controller.validation.js +6 -5
  65. package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
  66. package/dist/controllers/validation/batch-controller.validation.js +17 -18
  67. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  68. package/dist/controllers/validation/generic.validation.js +8 -3
  69. package/dist/controllers/validation/generic.validation.js.map +1 -1
  70. package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
  71. package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
  72. package/dist/controllers/validation/printer-controller.validation.js +31 -50
  73. package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
  74. package/dist/controllers/validation/printer-files-controller.validation.js +16 -15
  75. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  76. package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
  77. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
  78. package/dist/controllers/validation/server-private.validation.js +17 -0
  79. package/dist/controllers/validation/server-private.validation.js.map +1 -0
  80. package/dist/controllers/validation/setting.validation.js +28 -10
  81. package/dist/controllers/validation/setting.validation.js.map +1 -1
  82. package/dist/controllers/validation/user-controller.validation.js +44 -13
  83. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  84. package/dist/data-source.js +10 -6
  85. package/dist/data-source.js.map +1 -1
  86. package/dist/entities/camera-stream.entity.js +2 -3
  87. package/dist/entities/camera-stream.entity.js.map +1 -1
  88. package/dist/entities/custom-gcode.entity.js +1 -2
  89. package/dist/entities/custom-gcode.entity.js.map +1 -1
  90. package/dist/entities/floor-position.entity.js.map +1 -1
  91. package/dist/entities/floor.entity.js +1 -2
  92. package/dist/entities/floor.entity.js.map +1 -1
  93. package/dist/entities/group.entity.js +6 -2
  94. package/dist/entities/group.entity.js.map +1 -1
  95. package/dist/entities/permission.entity.js +1 -2
  96. package/dist/entities/permission.entity.js.map +1 -1
  97. package/dist/entities/print-completion.entity.js +1 -2
  98. package/dist/entities/print-completion.entity.js.map +1 -1
  99. package/dist/entities/printer-group.entity.js +6 -2
  100. package/dist/entities/printer-group.entity.js.map +1 -1
  101. package/dist/entities/printer.entity.js +22 -4
  102. package/dist/entities/printer.entity.js.map +1 -1
  103. package/dist/entities/refresh-token.entity.js +1 -2
  104. package/dist/entities/refresh-token.entity.js.map +1 -1
  105. package/dist/entities/role.entity.js +1 -2
  106. package/dist/entities/role.entity.js.map +1 -1
  107. package/dist/entities/settings.entity.js +1 -2
  108. package/dist/entities/settings.entity.js.map +1 -1
  109. package/dist/entities/user-role.entity.js +1 -2
  110. package/dist/entities/user-role.entity.js.map +1 -1
  111. package/dist/entities/user.entity.js +1 -2
  112. package/dist/entities/user.entity.js.map +1 -1
  113. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  114. package/dist/handlers/logger.js +131 -36
  115. package/dist/handlers/logger.js.map +1 -1
  116. package/dist/handlers/validators.js +7 -113
  117. package/dist/handlers/validators.js.map +1 -1
  118. package/dist/index.js.map +1 -1
  119. package/dist/middleware/authenticate.js +11 -22
  120. package/dist/middleware/authenticate.js.map +1 -1
  121. package/dist/middleware/database.js.map +1 -1
  122. package/dist/middleware/demo.middleware.js +4 -17
  123. package/dist/middleware/demo.middleware.js.map +1 -1
  124. package/dist/middleware/exception.filter.js +23 -23
  125. package/dist/middleware/exception.filter.js.map +1 -1
  126. package/dist/middleware/global.middleware.js +4 -4
  127. package/dist/middleware/global.middleware.js.map +1 -1
  128. package/dist/middleware/param-converter.middleware.js +81 -0
  129. package/dist/middleware/param-converter.middleware.js.map +1 -0
  130. package/dist/middleware/passport.js +3 -5
  131. package/dist/middleware/passport.js.map +1 -1
  132. package/dist/middleware/printer-resolver.js +37 -0
  133. package/dist/middleware/printer-resolver.js.map +1 -0
  134. package/dist/middleware/printer.js +22 -10
  135. package/dist/middleware/printer.js.map +1 -1
  136. package/dist/middleware/socketio.middleware.js +27 -0
  137. package/dist/middleware/socketio.middleware.js.map +1 -0
  138. package/dist/migrations/1706829146617-InitSqlite.js +1 -1
  139. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  140. package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
  141. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  142. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
  143. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  144. package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
  145. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  146. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
  147. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
  148. package/dist/models/Auth/Permission.js.map +1 -1
  149. package/dist/models/Auth/RefreshToken.js +1 -1
  150. package/dist/models/Auth/RefreshToken.js.map +1 -1
  151. package/dist/models/Auth/Role.js.map +1 -1
  152. package/dist/models/Auth/User.js.map +1 -1
  153. package/dist/models/CameraStream.js +20 -0
  154. package/dist/models/CameraStream.js.map +1 -1
  155. package/dist/models/CustomGcode.js.map +1 -1
  156. package/dist/models/Floor.js.map +1 -1
  157. package/dist/models/FloorPrinter.js +10 -1
  158. package/dist/models/FloorPrinter.js.map +1 -1
  159. package/dist/models/PrintCompletion.js.map +1 -1
  160. package/dist/models/Printer.js +12 -5
  161. package/dist/models/Printer.js.map +1 -1
  162. package/dist/models/Settings.js +5 -42
  163. package/dist/models/Settings.js.map +1 -1
  164. package/dist/models/index.js +0 -4
  165. package/dist/models/index.js.map +1 -1
  166. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
  167. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
  168. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
  169. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
  170. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
  171. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
  172. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
  173. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
  174. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
  175. package/dist/server.constants.js +7 -4
  176. package/dist/server.constants.js.map +1 -1
  177. package/dist/server.core.js +29 -2
  178. package/dist/server.core.js.map +1 -1
  179. package/dist/server.env.js +13 -8
  180. package/dist/server.env.js.map +1 -1
  181. package/dist/server.host.js +24 -31
  182. package/dist/server.host.js.map +1 -1
  183. package/dist/services/authentication/auth.service.js +15 -20
  184. package/dist/services/authentication/auth.service.js.map +1 -1
  185. package/dist/services/authentication/jwt.service.js +1 -1
  186. package/dist/services/authentication/jwt.service.js.map +1 -1
  187. package/dist/services/core/batch-call.service.js +23 -25
  188. package/dist/services/core/batch-call.service.js.map +1 -1
  189. package/dist/services/core/client-bundle.service.js +78 -136
  190. package/dist/services/core/client-bundle.service.js.map +1 -1
  191. package/dist/services/core/config.service.js.map +1 -1
  192. package/dist/services/core/cradle.service.js +21 -0
  193. package/dist/services/core/cradle.service.js.map +1 -0
  194. package/dist/services/core/github.service.js +2 -2
  195. package/dist/services/core/github.service.js.map +1 -1
  196. package/dist/services/core/http-client.factory.js +40 -0
  197. package/dist/services/core/http-client.factory.js.map +1 -0
  198. package/dist/services/core/logs-manager.service.js +7 -6
  199. package/dist/services/core/logs-manager.service.js.map +1 -1
  200. package/dist/services/core/monsterpi.service.js +1 -1
  201. package/dist/services/core/monsterpi.service.js.map +1 -1
  202. package/dist/services/core/multer.service.js +79 -28
  203. package/dist/services/core/multer.service.js.map +1 -1
  204. package/dist/services/core/server-release.service.js +14 -8
  205. package/dist/services/core/server-release.service.js.map +1 -1
  206. package/dist/services/core/yaml.service.js +16 -17
  207. package/dist/services/core/yaml.service.js.map +1 -1
  208. package/dist/services/interfaces/camera-stream.dto.js +4 -34
  209. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  210. package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
  211. package/dist/services/interfaces/file-upload-tracker.interface.js +6 -0
  212. package/dist/services/interfaces/file-upload-tracker.interface.js.map +1 -0
  213. package/dist/services/interfaces/floor.dto.js +5 -47
  214. package/dist/services/interfaces/floor.dto.js.map +1 -1
  215. package/dist/services/interfaces/login.dto.js +2 -0
  216. package/dist/services/interfaces/login.dto.js.map +1 -1
  217. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  218. package/dist/services/interfaces/printer-group.dto.js +0 -14
  219. package/dist/services/interfaces/printer-group.dto.js.map +1 -1
  220. package/dist/services/interfaces/printer.dto.js +11 -5
  221. package/dist/services/interfaces/printer.dto.js.map +1 -1
  222. package/dist/services/interfaces/settings.dto.js.map +1 -1
  223. package/dist/services/interfaces/task.interfaces.js +6 -0
  224. package/dist/services/interfaces/task.interfaces.js.map +1 -0
  225. package/dist/services/mongoose/camera-stream.service.js +17 -15
  226. package/dist/services/mongoose/camera-stream.service.js.map +1 -1
  227. package/dist/services/mongoose/custom-gcode.service.js +4 -2
  228. package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
  229. package/dist/services/mongoose/floor.service.js +37 -30
  230. package/dist/services/mongoose/floor.service.js.map +1 -1
  231. package/dist/services/mongoose/permission.service.js +1 -1
  232. package/dist/services/mongoose/permission.service.js.map +1 -1
  233. package/dist/services/mongoose/print-completion.service.js +2 -2
  234. package/dist/services/mongoose/print-completion.service.js.map +1 -1
  235. package/dist/services/mongoose/print-completion.shared.js +2 -2
  236. package/dist/services/mongoose/print-completion.shared.js.map +1 -1
  237. package/dist/services/mongoose/printer.service.js +40 -45
  238. package/dist/services/mongoose/printer.service.js.map +1 -1
  239. package/dist/services/mongoose/refresh-token.service.js +5 -8
  240. package/dist/services/mongoose/refresh-token.service.js.map +1 -1
  241. package/dist/services/mongoose/role.service.js +14 -5
  242. package/dist/services/mongoose/role.service.js.map +1 -1
  243. package/dist/services/mongoose/settings.service.js +35 -62
  244. package/dist/services/mongoose/settings.service.js.map +1 -1
  245. package/dist/services/mongoose/user.service.js +8 -7
  246. package/dist/services/mongoose/user.service.js.map +1 -1
  247. package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
  248. package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
  249. package/dist/services/moonraker/moonraker-websocket.adapter.js +108 -96
  250. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  251. package/dist/services/moonraker/moonraker.client.js +212 -167
  252. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  253. package/dist/services/moonraker.api.js +3 -5
  254. package/dist/services/moonraker.api.js.map +1 -1
  255. package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
  256. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  257. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
  258. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  259. package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
  260. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  261. package/dist/services/octoprint/octoprint-api.routes.js +0 -98
  262. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  263. package/dist/services/octoprint/octoprint-websocket.adapter.js +72 -72
  264. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  265. package/dist/services/octoprint/octoprint.client.js +87 -343
  266. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  267. package/dist/services/octoprint/utils/octoprint-http-client.builder.js +31 -0
  268. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -0
  269. package/dist/services/octoprint.api.js +14 -18
  270. package/dist/services/octoprint.api.js.map +1 -1
  271. package/dist/services/orm/base.service.js +11 -12
  272. package/dist/services/orm/base.service.js.map +1 -1
  273. package/dist/services/orm/camera-stream.service.js +5 -1
  274. package/dist/services/orm/camera-stream.service.js.map +1 -1
  275. package/dist/services/orm/custom-gcode.service.js +2 -2
  276. package/dist/services/orm/custom-gcode.service.js.map +1 -1
  277. package/dist/services/orm/floor-position.service.js +0 -5
  278. package/dist/services/orm/floor-position.service.js.map +1 -1
  279. package/dist/services/orm/floor.service.js +43 -39
  280. package/dist/services/orm/floor.service.js.map +1 -1
  281. package/dist/services/orm/permission.service.js +3 -4
  282. package/dist/services/orm/permission.service.js.map +1 -1
  283. package/dist/services/orm/print-completion.service.js +2 -4
  284. package/dist/services/orm/print-completion.service.js.map +1 -1
  285. package/dist/services/orm/printer-group.service.js +2 -7
  286. package/dist/services/orm/printer-group.service.js.map +1 -1
  287. package/dist/services/orm/printer.service.js +29 -39
  288. package/dist/services/orm/printer.service.js.map +1 -1
  289. package/dist/services/orm/refresh-token.service.js +5 -11
  290. package/dist/services/orm/refresh-token.service.js.map +1 -1
  291. package/dist/services/orm/role.service.js +11 -10
  292. package/dist/services/orm/role.service.js.map +1 -1
  293. package/dist/services/orm/settings.service.js +37 -133
  294. package/dist/services/orm/settings.service.js.map +1 -1
  295. package/dist/services/orm/user.service.js +13 -15
  296. package/dist/services/orm/user.service.js.map +1 -1
  297. package/dist/services/printer-api.factory.js +9 -6
  298. package/dist/services/printer-api.factory.js.map +1 -1
  299. package/dist/services/printer-api.interface.js +13 -6
  300. package/dist/services/printer-api.interface.js.map +1 -1
  301. package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
  302. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
  303. package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
  304. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
  305. package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
  306. package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
  307. package/dist/services/prusa-link/dto/file.dto.js +6 -0
  308. package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
  309. package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
  310. package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
  311. package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
  312. package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
  313. package/dist/services/prusa-link/dto/status.dto.js +6 -0
  314. package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
  315. package/dist/services/prusa-link/dto/version.dto.js +6 -0
  316. package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
  317. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
  318. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
  319. package/dist/services/prusa-link/prusa-link.api.js +233 -0
  320. package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
  321. package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
  322. package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
  323. package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
  324. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
  325. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
  326. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
  327. package/dist/services/socket.factory.js +9 -6
  328. package/dist/services/socket.factory.js.map +1 -1
  329. package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
  330. package/dist/services/task-manager.service.js.map +1 -0
  331. package/dist/services/validators/camera-service.validation.js +19 -0
  332. package/dist/services/validators/camera-service.validation.js.map +1 -0
  333. package/dist/services/validators/floor-service.validation.js +47 -36
  334. package/dist/services/validators/floor-service.validation.js.map +1 -1
  335. package/dist/services/validators/print-completion-service.validation.js +22 -9
  336. package/dist/services/validators/print-completion-service.validation.js.map +1 -1
  337. package/dist/services/validators/printer-service.validation.js +112 -29
  338. package/dist/services/validators/printer-service.validation.js.map +1 -1
  339. package/dist/services/validators/settings-service.validation.js +78 -66
  340. package/dist/services/validators/settings-service.validation.js.map +1 -1
  341. package/dist/services/validators/user-service.validation.js +17 -16
  342. package/dist/services/validators/user-service.validation.js.map +1 -1
  343. package/dist/services/validators/yaml-service.validation.js +94 -51
  344. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  345. package/dist/shared/default-http-client.builder.js +94 -0
  346. package/dist/shared/default-http-client.builder.js.map +1 -0
  347. package/dist/shared/load-controllers.js +20 -0
  348. package/dist/shared/load-controllers.js.map +1 -0
  349. package/dist/shared/runtime-settings.migration.js +46 -0
  350. package/dist/shared/runtime-settings.migration.js.map +1 -0
  351. package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
  352. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  353. package/dist/shared/websocket.adapter.js +4 -5
  354. package/dist/shared/websocket.adapter.js.map +1 -1
  355. package/dist/state/file-upload-tracker.cache.js +33 -42
  356. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  357. package/dist/state/file.cache.js +1 -1
  358. package/dist/state/file.cache.js.map +1 -1
  359. package/dist/state/floor.store.js +6 -6
  360. package/dist/state/floor.store.js.map +1 -1
  361. package/dist/state/printer-events.cache.js +21 -22
  362. package/dist/state/printer-events.cache.js.map +1 -1
  363. package/dist/state/printer-files.store.js +6 -8
  364. package/dist/state/printer-files.store.js.map +1 -1
  365. package/dist/state/printer-socket.store.js +27 -50
  366. package/dist/state/printer-socket.store.js.map +1 -1
  367. package/dist/state/printer-thumbnail.cache.js +5 -9
  368. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  369. package/dist/state/printer.cache.js +14 -12
  370. package/dist/state/printer.cache.js.map +1 -1
  371. package/dist/state/settings.store.js +78 -51
  372. package/dist/state/settings.store.js.map +1 -1
  373. package/dist/state/socket-io.gateway.js +39 -36
  374. package/dist/state/socket-io.gateway.js.map +1 -1
  375. package/dist/state/test-printer-socket.store.js +20 -15
  376. package/dist/state/test-printer-socket.store.js.map +1 -1
  377. package/dist/state/validation/create-test-printer.validation.js +13 -10
  378. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  379. package/dist/task.presets.js.map +1 -1
  380. package/dist/tasks/boot.task.js +14 -19
  381. package/dist/tasks/boot.task.js.map +1 -1
  382. package/dist/tasks/client-bundle.task.js +1 -3
  383. package/dist/tasks/client-bundle.task.js.map +1 -1
  384. package/dist/tasks/print-completion.socketio.task.js +27 -28
  385. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  386. package/dist/tasks/printer-file-clean.task.js +6 -10
  387. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  388. package/dist/tasks/printer-websocket-restore.task.js +4 -15
  389. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  390. package/dist/tasks/printer-websocket.task.js +2 -14
  391. package/dist/tasks/printer-websocket.task.js.map +1 -1
  392. package/dist/tasks/socketio.task.js +8 -35
  393. package/dist/tasks/socketio.task.js.map +1 -1
  394. package/dist/tasks/software-update.task.js +1 -1
  395. package/dist/tasks/software-update.task.js.map +1 -1
  396. package/dist/tasks.js +3 -3
  397. package/dist/tasks.js.map +1 -1
  398. package/dist/utils/array.util.js.map +1 -1
  399. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  400. package/dist/utils/env.utils.js +0 -2
  401. package/dist/utils/env.utils.js.map +1 -1
  402. package/dist/utils/normalize-url.js +6 -3
  403. package/dist/utils/normalize-url.js.map +1 -1
  404. package/dist/utils/pretty-print.utils.js +1 -1
  405. package/dist/utils/pretty-print.utils.js.map +1 -1
  406. package/dist/utils/printer-type.utils.js.map +1 -1
  407. package/dist/utils/time.utils.js +7 -17
  408. package/dist/utils/time.utils.js.map +1 -1
  409. package/dist/utils/url.utils.js +11 -14
  410. package/dist/utils/url.utils.js.map +1 -1
  411. package/package.json +53 -55
  412. package/tsconfig.json +2 -1
  413. package/.yarn/releases/yarn-4.6.0.cjs +0 -934
  414. package/dist/consoles/check-ports.js +0 -170
  415. package/dist/consoles/check-ports.js.map +0 -1
  416. package/dist/consoles/sqlite-torm.js +0 -31
  417. package/dist/consoles/sqlite-torm.js.map +0 -1
  418. package/dist/consoles/upload-test.js +0 -52
  419. package/dist/consoles/upload-test.js.map +0 -1
  420. package/dist/controllers/plugin-firmware-update.controller.js +0 -236
  421. package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
  422. package/dist/entities/base.entity.js +0 -29
  423. package/dist/entities/base.entity.js.map +0 -1
  424. package/dist/entities/printer-file.entity.js +0 -140
  425. package/dist/entities/printer-file.entity.js.map +0 -1
  426. package/dist/handlers/cache-manager.js +0 -18
  427. package/dist/handlers/cache-manager.js.map +0 -1
  428. package/dist/models/PrinterFile.js +0 -44
  429. package/dist/models/PrinterFile.js.map +0 -1
  430. package/dist/services/core/task-manager.service.js.map +0 -1
  431. package/dist/services/octoprint/plugin-base.service.js +0 -101
  432. package/dist/services/octoprint/plugin-base.service.js.map +0 -1
  433. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
  434. package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
  435. package/dist/services/octoprint/plugin-repository.cache.js +0 -45
  436. package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
  437. package/dist/utils/benchmark.util.js +0 -39
  438. package/dist/utils/benchmark.util.js.map +0 -1
  439. package/dist/utils/is-docker.js +0 -40
  440. package/dist/utils/is-docker.js.map +0 -1
  441. package/dist/utils/metric.utils.js +0 -35
  442. package/dist/utils/metric.utils.js.map +0 -1
  443. package/requests/moonraker/api_job.http +0 -5
  444. package/requests/moonraker/api_printer.http +0 -5
  445. package/requests/moonraker/api_settings.http +0 -5
  446. package/requests/moonraker/printer_info.http +0 -5
  447. package/requests/moonraker/printer_objects_list.http +0 -6
  448. package/requests/moonraker/printer_objects_pause_resume.http +0 -6
  449. package/requests/moonraker/printer_objects_print_stats.http +0 -6
  450. package/requests/moonraker/printer_objects_webhooks.http +0 -6
  451. package/requests/moonraker/server_info.http +0 -5
  452. package/requests/octoprint/octoprint-api-printer-current.http +0 -7
  453. package/requests/octoprint/octoprint-pluginmanager-plugins.http +0 -7
  454. package/requests/printer-file/get-partial-file-moonraker.http +0 -5
  455. package/requests/printer-file/get-thumbnails.http +0 -5
  456. package/requests/printer-file/reload-printer-thumbnails.http +0 -10
  457. package/requests/printer-file/testfile.gcode +0 -5665
  458. package/requests/printer-file/upload-file.http +0 -11
  459. package/requests/printer-file/upload-slicer-file.http +0 -11
  460. package/requests/printers/list.http +0 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","debugFileWritePrinterStatesKey","defaultDebugFileWritePrinterStates","enableMqttAutoDiscoveryToken","enableMqttAutoDiscoveryDefault","mqttUrlToken","mqttPortToken","mqttPortDefault","mqttUsernameToken","mqttPasswordToken","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,mBAAmB;IACnBC,mCAAmC;IACnCC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAC1BC,gCAAgC;IAChCC,oCAAoC;IAGpCC,8BAA8B;IAC9BC,gCAAgC;IAChCC,cAAc;IACdC,eAAe;IACfC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IAGnBC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBAAwB;IAExBC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;AACpC"}
1
+ {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","enableMqttAutoDiscoveryToken","enableMqttAutoDiscoveryDefault","mqttUrlToken","mqttPortToken","mqttPortDefault","mqttUsernameToken","mqttPasswordToken","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,mBAAmB;IACnBC,mCAAmC;IACnCC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,8BAA8B;IAC9BC,gCAAgC;IAChCC,cAAc;IACdC,eAAe;IACfC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IAGnBC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;IAClCC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
@@ -22,6 +22,8 @@ const _serverconstants = require("./server.constants");
22
22
  const _path = require("path");
23
23
  const _fsutils = require("./utils/fs.utils");
24
24
  const _envutils = require("./utils/env.utils");
25
+ const _promclient = require("prom-client");
26
+ const _logger = require("./handlers/logger");
25
27
  function _interop_require_default(obj) {
26
28
  return obj && obj.__esModule ? obj : {
27
29
  default: obj
@@ -68,16 +70,41 @@ function _interop_require_wildcard(obj, nodeInterop) {
68
70
  }
69
71
  return newObj;
70
72
  }
73
+ const httpRequestsTotal = new _promclient.Counter({
74
+ name: "http_requests_total",
75
+ help: "HTTP requests executed"
76
+ });
71
77
  async function setupServer() {
72
78
  const httpServer = (0, _express.default)();
73
79
  const experimentalTypeormEnabled = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.ENABLE_EXPERIMENTAL_TYPEORM, _serverconstants.AppConstants.enableExperimentalTypeormDefault) === "true";
74
80
  if (experimentalTypeormEnabled) {
75
- const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] || "./database";
81
+ const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] ?? "./database";
76
82
  (0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
77
83
  }
78
84
  const container = (0, _container.configureContainer)(experimentalTypeormEnabled);
79
85
  (0, _passport1.initializePassportStrategies)(_passport.default, container);
80
- httpServer.use((0, _cors.default)({
86
+ httpServer.use((req, res, next)=>{
87
+ const route = req.route?.path ?? req.path ?? "unknown";
88
+ if (route.includes("/api")) {
89
+ const start = process.hrtime();
90
+ res.on("finish", ()=>{
91
+ httpRequestsTotal.inc();
92
+ const delta = process.hrtime(start);
93
+ const duration = delta[0] + delta[1] / 1e9;
94
+ const logger = new _logger.LoggerService("HttpRequest");
95
+ logger.newDebug({
96
+ message: `HTTP request ${req.method} ${req.originalUrl} ${res.statusCode}`,
97
+ method: req.method,
98
+ path: req.originalUrl,
99
+ statusCode: res.statusCode,
100
+ responseTimeMs: duration.toFixed(2),
101
+ clientIp: req.ip,
102
+ userAgent: req.get("User-Agent")
103
+ });
104
+ });
105
+ }
106
+ next();
107
+ }).use((0, _cors.default)({
81
108
  origin: "*",
82
109
  methods: "GET,HEAD,PUT,PATCH,POST,DELETE"
83
110
  })).use((0, _helmet.default)({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpServer","express","experimentalTypeormEnabled","getEnvOrDefault","AppConstants","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","dbFolder","process","env","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAesBA;;;eAAAA;;;iEAfoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;0BACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzB,eAAeA;IACpB,MAAMC,aAAaC,IAAAA,gBAAO;IAC1B,MAAMC,6BACJC,IAAAA,yBAAe,EAACC,6BAAY,CAACC,2BAA2B,EAAED,6BAAY,CAACE,gCAAgC,MAAM;IAC/G,IAAIJ,4BAA4B;QAC9B,MAAMK,WAAWC,QAAQC,GAAG,CAACL,6BAAY,CAACM,aAAa,CAAC,IAAI;QAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIN;IACxC;IAEA,MAAMO,YAAYC,IAAAA,6BAAkB,EAACb;IACrCc,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCd,WACGkB,GAAG,CACFC,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAEDH,GAAG,CACFI,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAEDL,GAAG,CAACM,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzBP,GAAG,CAACQ,IAAAA,qBAAY,KAChBR,GAAG,CAACS,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjCV,GAAG,CAACD,iBAAQ,CAACY,UAAU,IACvBX,GAAG,CAACD,iBAAQ,CAACa,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjEb,GAAG,CAACc,IAAAA,8BAAe,EAAClB,YACpBI,GAAG,CAACe,gCAAsB,EAE1Bf,GAAG,CAACgB,yCAAuB,EAC3BhB,GAAG,CAACiB,gCAAc;IAErB,OAAO;QACLnC;QACAc;IACF;AACF"}
1
+ {"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","experimentalTypeormEnabled","getEnvOrDefault","AppConstants","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","dbFolder","process","env","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","req","res","next","route","path","includes","start","hrtime","on","inc","delta","duration","logger","LoggerService","newDebug","message","method","originalUrl","statusCode","responseTimeMs","toFixed","clientIp","ip","userAgent","get","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAsBsBA;;;eAAAA;;;iEAtBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;0BACf;4BACR;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,aAAaC,IAAAA,gBAAO;IAC1B,MAAMC,6BACJC,IAAAA,yBAAe,EAACC,6BAAY,CAACC,2BAA2B,EAAED,6BAAY,CAACE,gCAAgC,MAAM;IAC/G,IAAIJ,4BAA4B;QAC9B,MAAMK,WAAWC,QAAQC,GAAG,CAACL,6BAAY,CAACM,aAAa,CAAC,IAAI;QAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIN;IACxC;IAEA,MAAMO,YAAYC,IAAAA,6BAAkB,EAACb;IACrCc,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCd,WACGkB,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQ,AAACH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAK;QAE/C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQjB,QAAQkB,MAAM;YAE5BN,IAAIO,EAAE,CAAC,UAAU;gBACf/B,kBAAkBgC,GAAG;gBAErB,MAAMC,QAAQrB,QAAQkB,MAAM,CAACD;gBAC7B,MAAMK,WAAWD,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,GAAG;gBACvC,MAAME,SAAS,IAAIC,qBAAa,CAAC;gBACjCD,OAAOE,QAAQ,CAAC;oBACdC,SAAS,CAAC,aAAa,EAAEf,IAAIgB,MAAM,CAAC,CAAC,EAAEhB,IAAIiB,WAAW,CAAC,CAAC,EAAEhB,IAAIiB,UAAU,EAAE;oBAC1EF,QAAQhB,IAAIgB,MAAM;oBAClBZ,MAAMJ,IAAIiB,WAAW;oBACrBC,YAAYjB,IAAIiB,UAAU;oBAC1BC,gBAAgBR,SAASS,OAAO,CAAC;oBACjCC,UAAUrB,IAAIsB,EAAE;oBAChBC,WAAWvB,IAAIwB,GAAG,CAAC;gBACrB;YACF;QACF;QAEAtB;IACF,GACCH,GAAG,CACF0B,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAED5B,GAAG,CACF6B,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAED9B,GAAG,CAAC+B,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzBhC,GAAG,CAACiC,IAAAA,qBAAY,KAChBjC,GAAG,CAACkC,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjCnC,GAAG,CAACD,iBAAQ,CAACqC,UAAU,IACvBpC,GAAG,CAACD,iBAAQ,CAACsC,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjEtC,GAAG,CAACuC,IAAAA,8BAAe,EAAC3C,YACpBI,GAAG,CAACwC,gCAAsB,EAE1BxC,GAAG,CAACyC,yCAAuB,EAC3BzC,GAAG,CAAC0C,gCAAc;IAErB,OAAO;QACL5D;QACAc;IACF;AACF"}
@@ -9,8 +9,8 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- ensureMongoDBConnectionStringSet: function() {
13
- return ensureMongoDBConnectionStringSet;
12
+ ensureMongoDbConnectionStringSet: function() {
13
+ return ensureMongoDbConnectionStringSet;
14
14
  },
15
15
  ensurePortSet: function() {
16
16
  return ensurePortSet;
@@ -43,6 +43,7 @@ const _logger = require("./handlers/logger");
43
43
  const _envutils = require("./utils/env.utils");
44
44
  const _errorutils = require("./utils/error.utils");
45
45
  const _fsutils = require("./utils/fs.utils");
46
+ const _promclient = require("prom-client");
46
47
  function _getRequireWildcardCache(nodeInterop) {
47
48
  if (typeof WeakMap !== "function") return null;
48
49
  var cacheBabelInterop = new WeakMap();
@@ -106,9 +107,7 @@ function ensureNodeEnvSet() {
106
107
  }
107
108
  function ensurePackageVersionSet() {
108
109
  const packageJsonVersion = require(packageJsonPath).version;
109
- if (!process.env[_serverconstants.AppConstants.VERSION_KEY]) {
110
- process.env[_serverconstants.AppConstants.VERSION_KEY] = packageJsonVersion;
111
- }
110
+ process.env[_serverconstants.AppConstants.VERSION_KEY] ??= packageJsonVersion;
112
111
  logger.log(`✓ Running server version ${process.env[_serverconstants.AppConstants.VERSION_KEY]}`);
113
112
  }
114
113
  function printInstructionsURL() {
@@ -130,8 +129,8 @@ function fetchServerPort() {
130
129
  }
131
130
  return port;
132
131
  }
133
- function ensureMongoDBConnectionStringSet() {
134
- let dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
132
+ function ensureMongoDbConnectionStringSet() {
133
+ const dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
135
134
  if (!dbConnectionString) {
136
135
  fetchMongoDBConnectionString();
137
136
  } else {
@@ -171,8 +170,14 @@ function setupEnvConfig(skipDotEnv = false) {
171
170
  ensureNodeEnvSet();
172
171
  ensurePackageVersionSet();
173
172
  setupSentry();
174
- ensureMongoDBConnectionStringSet();
173
+ ensureMongoDbConnectionStringSet();
175
174
  ensurePortSet();
175
+ if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
176
+ (0, _promclient.collectDefaultMetrics)({
177
+ register: _promclient.register
178
+ });
179
+ _promclient.register.removeSingleMetric("nodejs_version_info");
180
+ }
176
181
  }
177
182
  async function runMigrations(db, client) {
178
183
  const migrationsStatus = await (0, _migratemongo.status)(db);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.env.ts"],"names":["ensureMongoDBConnectionStringSet","ensurePortSet","fetchMongoDBConnectionString","fetchServerPort","isEnvProd","runMigrations","setupEnvConfig","setupSentry","logger","Logger","instructionsReferralURL","packageJsonPath","join","superRootPath","dotEnvPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","environment","knownEnvNames","includes","newEnvName","warn","log","ensurePackageVersionSet","packageJsonVersion","require","version","VERSION_KEY","printInstructionsURL","MONGO_KEY","debug","defaultMongoStringUnauthenticated","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","dbConnectionString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","skipDotEnv","config","path","db","client","migrationsStatus","status","pendingMigrations","filter","m","appliedAt","length","migrationResult","up"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/server.env.ts"],"names":["ensureMongoDbConnectionStringSet","ensurePortSet","fetchMongoDBConnectionString","fetchServerPort","isEnvProd","runMigrations","setupEnvConfig","setupSentry","logger","Logger","instructionsReferralURL","packageJsonPath","join","superRootPath","dotEnvPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","environment","knownEnvNames","includes","newEnvName","warn","log","ensurePackageVersionSet","packageJsonVersion","require","version","VERSION_KEY","printInstructionsURL","MONGO_KEY","debug","defaultMongoStringUnauthenticated","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","dbConnectionString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","skipDotEnv","config","path","ENABLE_PROMETHEUS_METRICS","collectDefaultMetrics","register","removeSingleMetric","db","client","migrationsStatus","status","pendingMigrations","filter","m","appliedAt","length","migrationResult","up"],"mappings":"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"}
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "ServerHost", {
11
11
  const _express = /*#__PURE__*/ _interop_require_default(require("express"));
12
12
  const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
13
13
  const _connecthistoryapifallback = /*#__PURE__*/ _interop_require_default(require("connect-history-api-fallback"));
14
- const _awilixexpress = require("awilix-express");
15
14
  const _path = require("path");
16
15
  const _exceptionfilter = require("./middleware/exception.filter");
17
16
  const _serverenv = require("./server.env");
@@ -19,41 +18,38 @@ const _runtimeexceptions = require("./exceptions/runtime.exceptions");
19
18
  const _serverconstants = require("./server.constants");
20
19
  const _fsutils = require("./utils/fs.utils");
21
20
  const _envutils = require("./utils/env.utils");
21
+ const _loadcontrollers = require("./shared/load-controllers");
22
22
  function _interop_require_default(obj) {
23
23
  return obj && obj.__esModule ? obj : {
24
24
  default: obj
25
25
  };
26
26
  }
27
27
  class ServerHost {
28
+ configService;
29
+ isTypeormMode;
30
+ settingsStore;
28
31
  bootTask;
29
- taskManagerService;
30
32
  socketIoGateway;
31
- appInstance = null;
32
- configService;
33
33
  typeormService;
34
- settingsStore;
35
- isTypeormMode;
36
34
  logger;
37
- constructor({ loggerFactory, bootTask, taskManagerService, socketIoGateway, configService, typeormService, isTypeormMode, settingsStore }){
38
- this.logger = loggerFactory(ServerHost.name);
35
+ constructor(loggerFactory, configService, isTypeormMode, settingsStore, bootTask, socketIoGateway, typeormService){
36
+ this.configService = configService;
37
+ this.isTypeormMode = isTypeormMode;
38
+ this.settingsStore = settingsStore;
39
39
  this.bootTask = bootTask;
40
- this.taskManagerService = taskManagerService;
41
40
  this.socketIoGateway = socketIoGateway;
42
- this.configService = configService;
43
41
  this.typeormService = typeormService;
44
- this.settingsStore = settingsStore;
45
- this.isTypeormMode = isTypeormMode;
42
+ this.logger = loggerFactory(ServerHost.name);
46
43
  }
47
44
  async boot(app, quick_boot = false, listenRequests = true) {
48
45
  if (!this.isTypeormMode) {
49
46
  _mongoose.default.set("strictQuery", true);
50
47
  }
51
- this.appInstance = app;
52
- this.serveControllerRoutes(this.appInstance);
48
+ this.serveControllerRoutes(app);
53
49
  if (!quick_boot) {
54
50
  await this.bootTask.runOnce();
55
51
  }
56
- if (listenRequests) return this.httpListen();
52
+ if (listenRequests) return this.httpListen(app);
57
53
  }
58
54
  hasConnected() {
59
55
  if (this.isTypeormMode) {
@@ -63,17 +59,13 @@ class ServerHost {
63
59
  }
64
60
  }
65
61
  serveControllerRoutes(app) {
66
- const routePath = "./controllers";
67
62
  app.use((req, res, next)=>{
68
- if (!req.originalUrl.startsWith("/api") && !req.originalUrl.startsWith("/socket.io")) {
63
+ if (!req.originalUrl.startsWith("/metrics") && !req.originalUrl.startsWith("/api") && !req.originalUrl.startsWith("/socket.io")) {
69
64
  (0, _connecthistoryapifallback.default)()(req, res, next);
70
65
  } else {
71
66
  next();
72
67
  }
73
- }).use((0, _awilixexpress.loadControllers)(`${routePath}/*.controller.*`, {
74
- cwd: __dirname,
75
- ignore: "**/*.map"
76
- })).use(_exceptionfilter.exceptionFilter);
68
+ }).use((0, _loadcontrollers.loadControllersFunc)());
77
69
  const nextClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientNextPackageName, "dist");
78
70
  const bundleDistPath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
79
71
  const backupClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
@@ -86,10 +78,10 @@ class ServerHost {
86
78
  });
87
79
  app.use(_express.default.static(bundleDistPath));
88
80
  app.use(_express.default.static(backupClientPath));
89
- app.get("*", (req, res)=>{
81
+ app.get("*", (req, _)=>{
90
82
  const path = req.originalUrl;
91
83
  let resource = "MVC";
92
- if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/plugins")) {
84
+ if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/metrics")) {
93
85
  resource = "API";
94
86
  } else if (path.endsWith(".min.js")) {
95
87
  resource = "client-bundle";
@@ -98,17 +90,14 @@ class ServerHost {
98
90
  if (!path.startsWith("/socket.io")) {
99
91
  throw new _runtimeexceptions.NotFoundException(`${resource} resource was not found`, path);
100
92
  }
101
- }).use(_exceptionfilter.exceptionFilter);
102
- }
103
- isClientNextEnabled() {
104
- const settings = this.settingsStore.getServerSettings();
105
- return settings.experimentalClientSupport;
93
+ });
94
+ app.use(_exceptionfilter.exceptionFilter);
106
95
  }
107
- async httpListen() {
96
+ async httpListen(app) {
108
97
  const port = (0, _serverenv.fetchServerPort)();
109
98
  if (!(0, _envutils.isProductionEnvironment)() && this.configService.get(_serverconstants.AppConstants.debugRoutesKey, "false") === "true") {
110
99
  const expressListRoutes = require("express-list-routes");
111
- expressListRoutes(this.appInstance, {
100
+ expressListRoutes(app, {
112
101
  prefix: "/"
113
102
  });
114
103
  }
@@ -116,11 +105,15 @@ class ServerHost {
116
105
  throw new Error("The FDM Server requires a numeric port input argument to run");
117
106
  }
118
107
  const hostOrFqdn = "0.0.0.0";
119
- const server = this.appInstance.listen(parseInt(port), hostOrFqdn, ()=>{
108
+ const server = app.listen(parseInt(port), hostOrFqdn, ()=>{
120
109
  this.logger.log(`Server started... open it at http://127.0.0.1:${port}`);
121
110
  });
122
111
  this.socketIoGateway.attachServer(server);
123
112
  }
113
+ isClientNextEnabled() {
114
+ const settings = this.settingsStore.getServerSettings();
115
+ return settings.experimentalClientSupport;
116
+ }
124
117
  }
125
118
 
126
119
  //# sourceMappingURL=server.host.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","bootTask","taskManagerService","socketIoGateway","appInstance","configService","typeormService","settingsStore","isTypeormMode","logger","constructor","loggerFactory","name","boot","app","quick_boot","listenRequests","mongoose","set","serveControllerRoutes","runOnce","httpListen","hasConnected","connections","readyState","routePath","use","req","res","next","originalUrl","startsWith","history","loadControllers","cwd","__dirname","ignore","exceptionFilter","nextClientPath","join","superRootPath","AppConstants","clientNextPackageName","bundleDistPath","defaultClientBundleStorage","backupClientPath","clientPackageName","isClientNextEnabled","express","static","get","path","resource","endsWith","error","NotFoundException","settings","getServerSettings","experimentalClientSupport","port","fetchServerPort","isProductionEnvironment","debugRoutesKey","expressListRoutes","require","prefix","Number","isNaN","parseInt","Error","hostOrFqdn","server","listen","log","attachServer"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","logger","constructor","loggerFactory","configService","isTypeormMode","settingsStore","bootTask","socketIoGateway","typeormService","name","boot","app","quick_boot","listenRequests","mongoose","set","serveControllerRoutes","runOnce","httpListen","hasConnected","connections","readyState","use","req","res","next","originalUrl","startsWith","history","loadControllersFunc","nextClientPath","join","superRootPath","AppConstants","clientNextPackageName","bundleDistPath","defaultClientBundleStorage","backupClientPath","clientPackageName","isClientNextEnabled","express","static","get","_","path","resource","endsWith","error","NotFoundException","exceptionFilter","port","fetchServerPort","isProductionEnvironment","debugRoutesKey","expressListRoutes","require","prefix","Number","isNaN","parseInt","Error","hostOrFqdn","server","listen","log","attachServer","settings","getServerSettings","experimentalClientSupport"],"mappings":"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"}
@@ -13,18 +13,19 @@ const _cryptoutils = require("../../utils/crypto.utils");
13
13
  const _authorizationconstants = require("../../constants/authorization.constants");
14
14
  const _node = require("@sentry/node");
15
15
  class AuthService {
16
- logger;
17
16
  userService;
18
17
  jwtService;
19
18
  settingsStore;
20
19
  refreshTokenService;
21
- blacklistedJwtCache = {};
22
- constructor({ userService, jwtService, loggerFactory, settingsStore, refreshTokenService }){
20
+ logger;
21
+ blacklistedJwtCache;
22
+ constructor(loggerFactory, userService, jwtService, settingsStore, refreshTokenService){
23
23
  this.userService = userService;
24
24
  this.jwtService = jwtService;
25
- this.logger = loggerFactory(AuthService.name);
26
25
  this.settingsStore = settingsStore;
27
26
  this.refreshTokenService = refreshTokenService;
27
+ this.blacklistedJwtCache = {};
28
+ this.logger = loggerFactory(AuthService.name);
28
29
  }
29
30
  async loginUser(username, password) {
30
31
  const userDoc = await this.userService.findRawByUsername(username);
@@ -35,7 +36,7 @@ class AuthService {
35
36
  if (!result) {
36
37
  throw new _runtimeexceptions.AuthenticationError("Login incorrect", _authorizationconstants.AUTH_ERROR_REASON.IncorrectCredentials);
37
38
  }
38
- const userId = userDoc.id.toString();
39
+ const userId = userDoc.id;
39
40
  const token = await this.signJwtToken(userId);
40
41
  await this.refreshTokenService.purgeOutdatedRefreshTokensByUserId(userId);
41
42
  await this.purgeOutdatedBlacklistedJwtCache();
@@ -73,15 +74,12 @@ class AuthService {
73
74
  }
74
75
  async logoutUserRefreshToken(refreshToken) {
75
76
  const userRefreshToken = await this.getValidRefreshToken(refreshToken);
76
- await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId.toString());
77
+ await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId);
77
78
  }
78
79
  async renewLoginByRefreshToken(refreshToken) {
79
- const userRefreshToken = await this.getValidRefreshToken(refreshToken, false);
80
- if (!userRefreshToken) {
81
- throw new _runtimeexceptions.AuthenticationError("The refresh token was invalid or expired, could not refresh user token", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
82
- }
83
- const userId = userRefreshToken.userId.toString();
84
- const user = await this.userService.getUser(userId, false);
80
+ const userRefreshToken = await this.getValidRefreshToken(refreshToken);
81
+ const userId = userRefreshToken.userId;
82
+ const user = await this.userService.getUser(userId);
85
83
  if (!user) {
86
84
  await this.refreshTokenService.deleteRefreshToken(refreshToken);
87
85
  throw new _runtimeexceptions.AuthenticationError("User not found", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
@@ -93,13 +91,10 @@ class AuthService {
93
91
  isJwtTokenBlacklisted(jwtToken) {
94
92
  return this.blacklistedJwtCache[jwtToken];
95
93
  }
96
- async getValidRefreshToken(refreshToken, throwNotFoundError = true) {
97
- const userRefreshToken = await this.refreshTokenService.getRefreshToken(refreshToken, throwNotFoundError);
98
- if (!userRefreshToken) {
99
- return null;
100
- }
94
+ async getValidRefreshToken(refreshToken) {
95
+ const userRefreshToken = await this.refreshTokenService.getRefreshToken(refreshToken);
101
96
  if (Date.now() > userRefreshToken.expiresAt) {
102
- await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId.toString());
97
+ await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId);
103
98
  throw new _runtimeexceptions.AuthenticationError("Refresh token expired, login required", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
104
99
  }
105
100
  return userRefreshToken;
@@ -110,14 +105,14 @@ class AuthService {
110
105
  const attemptsUsed = userRefreshToken.refreshAttemptsUsed;
111
106
  if (refreshTokenAttempts !== -1) {
112
107
  if (attemptsUsed >= refreshTokenAttempts) {
113
- await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId.toString());
108
+ await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId);
114
109
  throw new _runtimeexceptions.AuthenticationError("Refresh token attempts exceeded, login required", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
115
110
  }
116
111
  }
117
112
  await this.refreshTokenService.updateRefreshTokenAttempts(refreshToken, attemptsUsed + 1);
118
113
  }
119
114
  async signJwtToken(userId) {
120
- const user = await this.userService.getUser(userId, false);
115
+ const user = await this.userService.getUser(userId);
121
116
  if (!user) {
122
117
  throw new _runtimeexceptions.AuthenticationError("User not found", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
123
118
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/authentication/auth.service.ts"],"names":["AuthService","logger","userService","jwtService","settingsStore","refreshTokenService","blacklistedJwtCache","constructor","loggerFactory","name","loginUser","username","password","userDoc","findRawByUsername","AuthenticationError","AUTH_ERROR_REASON","IncorrectCredentials","result","comparePasswordHash","passwordHash","userId","id","toString","token","signJwtToken","purgeOutdatedRefreshTokensByUserId","purgeOutdatedBlacklistedJwtCache","refreshToken","createRefreshTokenForUserId","logoutUserId","jwtToken","deleteRefreshTokenByUserId","length","createdAt","Date","now","jwtExpiresIn","getCredentialSettings","keys","Object","key","err","error","captureException","logoutUserRefreshToken","userRefreshToken","getValidRefreshToken","renewLoginByRefreshToken","InvalidOrExpiredRefreshToken","user","getUser","deleteRefreshToken","increaseRefreshTokenAttemptsUsed","isJwtTokenBlacklisted","throwNotFoundError","getRefreshToken","expiresAt","refreshTokenAttempts","attemptsUsed","refreshAttemptsUsed","updateRefreshTokenAttempts","needsPasswordChange","PasswordChangeRequired","isVerified","AccountNotVerified"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/authentication/auth.service.ts"],"names":["AuthService","logger","blacklistedJwtCache","constructor","loggerFactory","userService","jwtService","settingsStore","refreshTokenService","name","loginUser","username","password","userDoc","findRawByUsername","AuthenticationError","AUTH_ERROR_REASON","IncorrectCredentials","result","comparePasswordHash","passwordHash","userId","id","token","signJwtToken","purgeOutdatedRefreshTokensByUserId","purgeOutdatedBlacklistedJwtCache","refreshToken","createRefreshTokenForUserId","logoutUserId","jwtToken","deleteRefreshTokenByUserId","length","createdAt","Date","now","jwtExpiresIn","getCredentialSettings","keys","Object","key","err","error","captureException","logoutUserRefreshToken","userRefreshToken","getValidRefreshToken","renewLoginByRefreshToken","user","getUser","deleteRefreshToken","InvalidOrExpiredRefreshToken","increaseRefreshTokenAttemptsUsed","isJwtTokenBlacklisted","getRefreshToken","expiresAt","refreshTokenAttempts","attemptsUsed","refreshAttemptsUsed","updateRefreshTokenAttempts","needsPasswordChange","PasswordChangeRequired","isVerified","AccountNotVerified"],"mappings":"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"}
@@ -13,7 +13,7 @@ const _serverconstants = require("../../server.constants");
13
13
  class JwtService {
14
14
  settingsStore;
15
15
  configService;
16
- constructor({ settingsStore, configService }){
16
+ constructor(settingsStore, configService){
17
17
  this.settingsStore = settingsStore;
18
18
  this.configService = configService;
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/authentication/jwt.service.ts"],"names":["JwtService","settingsStore","configService","constructor","signJwtToken","userId","username","jwtSecret","jwtExpiresIn","getCredentialSettings","sign","expiresIn","subject","toString","audience","get","AppConstants","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","issuer","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER"],"mappings":";;;;+BAOaA;;;eAAAA;;;8BAPQ;iCACQ;AAMtB,MAAMA;IACXC,cAA6B;IAC7BC,cAA8B;IAE9BC,YAAY,EAAEF,aAAa,EAAEC,aAAa,EAAmE,CAAE;QAC7G,IAAI,CAACD,aAAa,GAAGA;QACrB,IAAI,CAACC,aAAa,GAAGA;IACvB;IAEA,MAAME,aAAaC,MAAc,EAAEC,QAAgB,EAAE;QACnD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAG,MAAM,IAAI,CAACP,aAAa,CAACQ,qBAAqB;QAElF,OAAOC,IAAAA,kBAAI,EAAC;YAAEL;YAAQC;QAAS,GAAGC,WAAW;YAC3CI,WAAWH;YACXI,SAASP,OAAOQ,QAAQ;YACxBC,UAAU,IAAI,CAACZ,aAAa,CAACa,GAAG,CAACC,6BAAY,CAACC,qBAAqB,EAAED,6BAAY,CAACE,oBAAoB;YACtGC,QAAQ,IAAI,CAACjB,aAAa,CAACa,GAAG,CAACC,6BAAY,CAACI,mBAAmB,EAAEJ,6BAAY,CAACK,kBAAkB;QAClG;IACF;AACF"}
1
+ {"version":3,"sources":["../../../src/services/authentication/jwt.service.ts"],"names":["JwtService","constructor","settingsStore","configService","signJwtToken","userId","username","jwtSecret","jwtExpiresIn","getCredentialSettings","sign","expiresIn","subject","toString","audience","get","AppConstants","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","issuer","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER"],"mappings":";;;;+BAOaA;;;eAAAA;;;8BAPQ;iCACQ;AAMtB,MAAMA;;;IACXC,YACE,AAAiBC,aAA4B,EAC7C,AAAiBC,aAA6B,CAC9C;aAFiBD,gBAAAA;aACAC,gBAAAA;IAChB;IAEH,MAAMC,aAAaC,MAAc,EAAEC,QAAgB,EAAE;QACnD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAG,MAAM,IAAI,CAACN,aAAa,CAACO,qBAAqB;QAElF,OAAOC,IAAAA,kBAAI,EAAC;YAAEL;YAAQC;QAAS,GAAGC,WAAW;YAC3CI,WAAWH;YACXI,SAASP,OAAOQ,QAAQ;YACxBC,UAAU,IAAI,CAACX,aAAa,CAACY,GAAG,CAACC,6BAAY,CAACC,qBAAqB,EAAED,6BAAY,CAACE,oBAAoB;YACtGC,QAAQ,IAAI,CAAChB,aAAa,CAACY,GAAG,CAACC,6BAAY,CAACI,mBAAmB,EAAEJ,6BAAY,CAACK,kBAAkB;QAClG;IACF;AACF"}
@@ -13,18 +13,14 @@ const _errorutils = require("../../utils/error.utils");
13
13
  const _printerapiinterface = require("../printer-api.interface");
14
14
  class BatchCallService {
15
15
  printerApiFactory;
16
- printerSocketStore;
17
16
  printerCache;
18
- printerEventsCache;
19
- printerFilesStore;
17
+ printerSocketStore;
20
18
  printerService;
21
19
  logger;
22
- constructor({ printerApiFactory, printerCache, printerEventsCache, printerSocketStore, printerFilesStore, printerService, loggerFactory }){
20
+ constructor(loggerFactory, printerApiFactory, printerCache, printerSocketStore, printerService){
23
21
  this.printerApiFactory = printerApiFactory;
24
22
  this.printerCache = printerCache;
25
- this.printerEventsCache = printerEventsCache;
26
23
  this.printerSocketStore = printerSocketStore;
27
- this.printerFilesStore = printerFilesStore;
28
24
  this.printerService = printerService;
29
25
  this.logger = loggerFactory(BatchCallService.name);
30
26
  }
@@ -34,7 +30,7 @@ class BatchCallService {
34
30
  async batchTogglePrintersEnabled(printerIds, enabled) {
35
31
  const promises = [];
36
32
  for (const printerId of printerIds){
37
- let promise;
33
+ let promise = undefined;
38
34
  const printerDto = await this.printerCache.getValue(printerId);
39
35
  if (!printerDto) continue;
40
36
  const time = Date.now();
@@ -55,32 +51,34 @@ class BatchCallService {
55
51
  };
56
52
  });
57
53
  }
54
+ } else if (printerDto.enabled) {
55
+ promise = this.printerService.updateEnabled(printerId, false).then(()=>{
56
+ return {
57
+ success: true,
58
+ printerId,
59
+ time: Date.now() - time
60
+ };
61
+ }).catch((e)=>{
62
+ return {
63
+ failure: true,
64
+ error: e.message,
65
+ printerId,
66
+ time: Date.now() - time
67
+ };
68
+ });
58
69
  } else {
59
- if (printerDto.enabled) {
60
- promise = this.printerService.updateEnabled(printerId, false).then(()=>{
61
- return {
62
- success: true,
63
- printerId,
64
- time: Date.now() - time
65
- };
66
- }).catch((e)=>{
67
- return {
68
- failure: true,
69
- error: e.message,
70
- printerId,
71
- time: Date.now() - time
72
- };
73
- });
74
- }
70
+ this.logger.warn("Did not toggle printer enabled, its in maintenance");
71
+ }
72
+ if (promise) {
73
+ promises.push(promise);
75
74
  }
76
- promises.push(promise);
77
75
  }
78
76
  return await Promise.all(promises);
79
77
  }
80
78
  batchConnectSocket(printerIds) {
81
79
  for (const printerId of printerIds){
82
80
  try {
83
- this.printerSocketStore.reconnectOctoPrint(printerId);
81
+ this.printerSocketStore.reconnectPrinterAdapter(printerId);
84
82
  } catch (e) {
85
83
  (0, _node.captureException)(e);
86
84
  this.logger.error(`Error setting socket to reconnect ${(0, _errorutils.errorSummary)(e)}`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/core/batch-call.service.ts"],"names":["BatchCallService","printerApiFactory","printerSocketStore","printerCache","printerEventsCache","printerFilesStore","printerService","logger","constructor","loggerFactory","name","getPrinter","login","getScopedPrinter","batchTogglePrintersEnabled","printerIds","enabled","promises","printerId","promise","printerDto","getValue","time","Date","now","disabledReason","length","updateEnabled","then","success","catch","e","failure","error","message","push","Promise","all","batchConnectSocket","reconnectOctoPrint","captureException","errorSummary","batchSettingsGet","getLoginDtoAsync","client","getSettings","r","value","batchConnectUsb","connect","getBatchPrinterReprintFile","resolve","_","partialReprintState","getReprintState","connectionState","reprintState","ReprintState","PrinterNotAvailable","batchReprintCalls","printerIdFileList","printerIdFile","path","startPrint"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/core/batch-call.service.ts"],"names":["BatchCallService","logger","constructor","loggerFactory","printerApiFactory","printerCache","printerSocketStore","printerService","name","getPrinter","login","getScopedPrinter","batchTogglePrintersEnabled","printerIds","enabled","promises","printerId","promise","undefined","printerDto","getValue","time","Date","now","disabledReason","length","updateEnabled","then","success","catch","e","failure","error","message","warn","push","Promise","all","batchConnectSocket","reconnectPrinterAdapter","captureException","errorSummary","batchSettingsGet","getLoginDtoAsync","client","getSettings","r","value","batchConnectUsb","connect","getBatchPrinterReprintFile","resolve","_","partialReprintState","getReprintState","connectionState","reprintState","ReprintState","PrinterNotAvailable","batchReprintCalls","printerIdFileList","printerIdFile","path","startPrint"],"mappings":"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"}