@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20211029110742-user-password-passwordhash.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","password","endSession","down","passwordHash"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEC,UAAU;oBAAe;gBAAE;YAC5E;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAEA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEI,cAAc;oBAAW;gBAAE;YAC5E;QACF,SAAU;YACR,MAAMV,QAAQQ,UAAU;QAC1B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20211029110742-user-password-passwordhash.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","password","endSession","down","passwordHash"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEC,UAAU;oBAAe;gBAAE;YAC5E;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEI,cAAc;oBAAW;gBAAE;YAC5E;QACF,SAAU;YACR,MAAMV,QAAQQ,UAAU;QAC1B;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20230414141005-floor-remove-groupinfloor.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collections","listCollections","toArray","find","c","name","collection","update","$unset","printerGroups","multi","$set","printers","rename","endSession","down","Error"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,cAAc,MAAMJ,OAAOD,EAAE,GAAGM,eAAe,GAAGC,OAAO;gBAC/D,IAAIF,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,kBAAkB;oBACvD,MAAMV,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;wBAAEC,QAAQ;4BAAEC,eAAe;wBAAE;oBAAE,GAAG;wBAAEC,OAAO;oBAAK;oBAChG,MAAMf,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;wBAAEI,MAAM;4BAAEC,UAAU,EAAE;wBAAC;oBAAE,GAAG;wBAAEF,OAAO;oBAAK;oBAC1F,MAAMf,GAAGW,UAAU,CAAC,iBAAiBO,MAAM,CAAC;gBAC9C;YACF;QACF,SAAU;YACR,MAAMhB,QAAQiB,UAAU;QAC1B;IACF;IAEA,MAAMC,MAAKpB,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAME,cAAc,MAAMJ,OAAOD,EAAE,GAAGM,eAAe,GAAGC,OAAO;YAC/D,IAAIF,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,WAAW;gBAChD,MAAMV,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;oBAAEI,MAAM;wBAAEF,eAAe,EAAE;oBAAC;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;gBAC/F,MAAMf,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEI,UAAU;oBAAE;gBAAE,GAAG;oBAAEF,OAAO;gBAAK;gBAC3F,MAAMf,GAAGW,UAAU,CAAC,UAAUO,MAAM,CAAC;YACvC;YAEA,IAAI,CAACb,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,kBAAkB;gBACxD,MAAM,IAAIW,MAAM;YAClB;QACF,SAAU;YACR,MAAMnB,QAAQiB,UAAU;QAC1B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20230414141005-floor-remove-groupinfloor.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collections","listCollections","toArray","find","c","name","collection","update","$unset","printerGroups","multi","$set","printers","rename","endSession","down","Error"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,cAAc,MAAMJ,OAAOD,EAAE,GAAGM,eAAe,GAAGC,OAAO;gBAE/D,IAAIF,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,kBAAkB;oBACvD,MAAMV,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;wBAAEC,QAAQ;4BAAEC,eAAe;wBAAE;oBAAE,GAAG;wBAAEC,OAAO;oBAAK;oBAChG,MAAMf,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;wBAAEI,MAAM;4BAAEC,UAAU,EAAE;wBAAC;oBAAE,GAAG;wBAAEF,OAAO;oBAAK;oBAC1F,MAAMf,GAAGW,UAAU,CAAC,iBAAiBO,MAAM,CAAC;gBAC9C;YACF;QACF,SAAU;YACR,MAAMhB,QAAQiB,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKpB,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAME,cAAc,MAAMJ,OAAOD,EAAE,GAAGM,eAAe,GAAGC,OAAO;YAE/D,IAAIF,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,WAAW;gBAChD,MAAMV,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;oBAAEI,MAAM;wBAAEF,eAAe,EAAE;oBAAC;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;gBAC/F,MAAMf,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEI,UAAU;oBAAE;gBAAE,GAAG;oBAAEF,OAAO;gBAAK;gBAC3F,MAAMf,GAAGW,UAAU,CAAC,UAAUO,MAAM,CAAC;YACvC;YAGA,IAAI,CAACb,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,kBAAkB;gBACxD,MAAM,IAAIW,MAAM;YAClB;QACF,SAAU;YACR,MAAMnB,QAAQiB,UAAU;QAC1B;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20230427202911-printer-remove-sortindex.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","sortIndex","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMJ,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,WAAW;oBAAE;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;YACzF;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAEA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMD,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;YAAEM,MAAM;gBAAEJ,WAAW;YAAE;QAAE,GAAG;YAAEC,OAAO;QAAK;IACvF;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20230427202911-printer-remove-sortindex.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","sortIndex","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMJ,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,WAAW;oBAAE;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;YACzF;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMD,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;YAAEM,MAAM;gBAAEJ,WAAW;YAAE;QAAE,GAAG;YAAEC,OAAO;QAAK;IACvF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20230716065316-user-remove-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","name","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMJ,GAAGK,UAAU,CAAC,SAASC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,MAAM;oBAAE;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;YACjF;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAEA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMD,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;YAAEM,MAAM;gBAAEJ,MAAM;YAAU;QAAE,GAAG;YAAEC,OAAO;QAAK;IAC1F;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20230716065316-user-remove-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","name","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMJ,GAAGK,UAAU,CAAC,SAASC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,MAAM;oBAAE;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;YACjF;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMD,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;YAAEM,MAAM;gBAAEJ,MAAM;YAAU;QAAE,GAAG;YAAEC,OAAO;QAAK;IAC1F;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20231111081809-printer-flatten-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","endSession","down","name"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAE,2BAA2B;oBAAO;gBAAE;YACrF;QACF,SAAU;YACR,MAAMN,QAAQO,UAAU;QAC1B;IAIF;IAEA,MAAMC,MAAKV,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEG,MAAM;oBAA0B;gBAAE;YACnF;QACF,SAAU;YACR,MAAMT,QAAQO,UAAU;QAC1B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20231111081809-printer-flatten-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","endSession","down","name"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAE,2BAA2B;oBAAO;gBAAE;YACrF;QACF,SAAU;YACR,MAAMN,QAAQO,UAAU;QAC1B;IAIF;IAGA,MAAMC,MAAKV,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEG,MAAM;oBAA0B;gBAAE;YACnF;QACF,SAAU;YACR,MAAMT,QAAQO,UAAU;QAC1B;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20231111082521-printer-remove-settingsappearance.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$unset","settingsAppearance","e","console","log","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,oBAAoB;oBAAE;gBAAE;YACxE;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,gCAAgCF;YAC5C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IAIF;IAEA,MAAMC,MAAKd,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEQ,MAAM;wBAAEN,oBAAoB,CAAC;oBAAE;gBAAE;YACvE;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,kCAAkCF;YAC9C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20231111082521-printer-remove-settingsappearance.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$unset","settingsAppearance","e","console","log","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,oBAAoB;oBAAE;gBAAE;YACxE;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,gCAAgCF;YAC5C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IAIF;IAGA,MAAMC,MAAKd,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEQ,MAAM;wBAAEN,oBAAoB,CAAC;oBAAE;gBAAE;YACvE;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,kCAAkCF;YAC9C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mongo-migrations/20231202183902-printer-files-simpler.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$set","fileList","e","console","log","endSession","down"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IACf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,MAAM;wBAAEC,UAAU,EAAE;oBAAC;gBAAE;YAC7D;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,gCAAgCF;YAC5C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;IAEA,MAAMC,MAAKd,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,MAAM;wBAAEC,UAAU,CAAC;oBAAE;gBAAE;YAC7D;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,kCAAkCF;YAC9C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/mongo-migrations/20231202183902-printer-files-simpler.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$set","fileList","e","console","log","endSession","down"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,MAAM;wBAAEC,UAAU,EAAE;oBAAC;gBAAE;YAC7D;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,gCAAgCF;YAC5C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKd,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,MAAM;wBAAEC,UAAU,CAAC;oBAAE;gBAAE;YAC7D;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,kCAAkCF;YAC9C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;AACF"}
@@ -53,6 +53,7 @@ const AppConstants = {
53
53
  OVERRIDE_DEMO_ROLE: "OVERRIDE_DEMO_ROLE",
54
54
  DEFAULT_DEMO_ROLE: "ADMIN",
55
55
  defaultDevelopmentEnv: "development",
56
+ ENABLE_COLORED_LOGS_KEY: "ENABLE_COLORED_LOGS",
56
57
  defaultTestEnv: "test",
57
58
  defaultProductionEnv: "production",
58
59
  knownEnvNames: [
@@ -70,7 +71,7 @@ const AppConstants = {
70
71
  githubUrl: "https://github.com/fdm-monster/fdm-monster",
71
72
  orgName: "fdm-monster",
72
73
  currentWizardVersion: 1,
73
- defaultClientMinimum: "1.9.0",
74
+ defaultClientMinimum: "1.11.1",
74
75
  influxUrl: "INFLUX_URL",
75
76
  influxToken: "INFLUX_TOKEN",
76
77
  influxOrg: "INFLUX_ORG",
@@ -79,8 +80,6 @@ const AppConstants = {
79
80
  defaultSocketThrottleRate: 1,
80
81
  debugSocketStatesKey: "DEBUG_SOCKET_STATES",
81
82
  defaultDebugSocketStates: "false",
82
- debugFileWritePrinterStatesKey: "DEBUG_FILE_WRITE_PRINTER_STATES",
83
- defaultDebugFileWritePrinterStates: "false",
84
83
  enableMqttAutoDiscoveryToken: "ENABLE_MQTT_AUTODISCOVERY",
85
84
  enableMqttAutoDiscoveryDefault: "false",
86
85
  mqttUrlToken: "MQTT_HOST",
@@ -93,7 +92,12 @@ const AppConstants = {
93
92
  sentryCustomDsnDefault: "https://164b8028a8a745bba3dbcab991b84ae7@o4503975545733120.ingest.sentry.io/4505101598261248",
94
93
  debugRoutesKey: "DEBUG_ROUTES",
95
94
  ENABLE_EXPERIMENTAL_TYPEORM: "ENABLE_EXPERIMENTAL_TYPEORM",
96
- enableExperimentalTypeormDefault: "false"
95
+ enableExperimentalTypeormDefault: "false",
96
+ ENABLE_PROMETHEUS_METRICS: "ENABLE_PROMETHEUS_METRICS",
97
+ ENABLE_LOKI_LOGGING: "ENABLE_LOKI_LOGGING",
98
+ LOKI_ADDRESS: "LOKI_ADDRESS",
99
+ LOKI_TIMEOUT_SECONDS: "LOKI_TIMEOUT_SECONDS",
100
+ LOKI_INTERVAL: "LOKI_INTERVAL"
97
101
  };
98
102
 
99
103
  //# sourceMappingURL=server.constants.js.map
@@ -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","ENABLE_COLORED_LOGS_KEY","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,yBAAyB;IACzBC,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;
@@ -37,12 +37,12 @@ _export(exports, {
37
37
  const _migratemongo = require("migrate-mongo");
38
38
  const _path = require("path");
39
39
  const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
40
- const _dotenv = require("dotenv");
41
40
  const _serverconstants = require("./server.constants");
42
41
  const _logger = require("./handlers/logger");
43
42
  const _envutils = require("./utils/env.utils");
44
43
  const _errorutils = require("./utils/error.utils");
45
44
  const _fsutils = require("./utils/fs.utils");
45
+ const _promclient = require("prom-client");
46
46
  function _getRequireWildcardCache(nodeInterop) {
47
47
  if (typeof WeakMap !== "function") return null;
48
48
  var cacheBabelInterop = new WeakMap();
@@ -84,10 +84,8 @@ function _interop_require_wildcard(obj, nodeInterop) {
84
84
  }
85
85
  return newObj;
86
86
  }
87
- const logger = new _logger.LoggerService("FDM-Environment", false);
88
87
  const instructionsReferralURL = "https://docs.fdm-monster.net";
89
88
  const packageJsonPath = (0, _path.join)((0, _fsutils.superRootPath)(), "./package.json");
90
- const dotEnvPath = (0, _path.join)((0, _fsutils.superRootPath)(), "./.env");
91
89
  function isEnvTest() {
92
90
  return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultTestEnv;
93
91
  }
@@ -95,6 +93,7 @@ function isEnvProd() {
95
93
  return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultProductionEnv;
96
94
  }
97
95
  function ensureNodeEnvSet() {
96
+ const logger = new _logger.LoggerService("FDM-Environment");
98
97
  const environment = process.env[_serverconstants.AppConstants.NODE_ENV_KEY];
99
98
  if (!environment || !_serverconstants.AppConstants.knownEnvNames.includes(environment)) {
100
99
  const newEnvName = _serverconstants.AppConstants.defaultProductionEnv;
@@ -105,16 +104,17 @@ function ensureNodeEnvSet() {
105
104
  }
106
105
  }
107
106
  function ensurePackageVersionSet() {
107
+ const logger = new _logger.LoggerService("FDM-Environment");
108
108
  const packageJsonVersion = require(packageJsonPath).version;
109
- if (!process.env[_serverconstants.AppConstants.VERSION_KEY]) {
110
- process.env[_serverconstants.AppConstants.VERSION_KEY] = packageJsonVersion;
111
- }
109
+ process.env[_serverconstants.AppConstants.VERSION_KEY] ??= packageJsonVersion;
112
110
  logger.log(`✓ Running server version ${process.env[_serverconstants.AppConstants.VERSION_KEY]}`);
113
111
  }
114
112
  function printInstructionsURL() {
113
+ const logger = new _logger.LoggerService("FDM-Environment");
115
114
  logger.log(`Please make sure to read ${instructionsReferralURL} for more information.`);
116
115
  }
117
116
  function fetchMongoDBConnectionString() {
117
+ const logger = new _logger.LoggerService("FDM-Environment");
118
118
  if (!process.env[_serverconstants.AppConstants.MONGO_KEY]) {
119
119
  logger.debug(`~ ${_serverconstants.AppConstants.MONGO_KEY} environment variable is not set. Assuming default`);
120
120
  printInstructionsURL();
@@ -130,8 +130,9 @@ function fetchServerPort() {
130
130
  }
131
131
  return port;
132
132
  }
133
- function ensureMongoDBConnectionStringSet() {
134
- let dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
133
+ function ensureMongoDbConnectionStringSet() {
134
+ const logger = new _logger.LoggerService("FDM-Environment");
135
+ const dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
135
136
  if (!dbConnectionString) {
136
137
  fetchMongoDBConnectionString();
137
138
  } else {
@@ -139,6 +140,7 @@ function ensureMongoDBConnectionStringSet() {
139
140
  }
140
141
  }
141
142
  function setupSentry() {
143
+ const logger = new _logger.LoggerService("FDM-Environment");
142
144
  const sentryDsnToken = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.sentryCustomDsnToken, _serverconstants.AppConstants.sentryCustomDsnDefault);
143
145
  _node.init({
144
146
  dsn: sentryDsnToken,
@@ -154,6 +156,7 @@ function setupSentry() {
154
156
  });
155
157
  }
156
158
  function ensurePortSet() {
159
+ const logger = new _logger.LoggerService("FDM-Environment");
157
160
  fetchServerPort();
158
161
  if (!process.env[_serverconstants.AppConstants.SERVER_PORT_KEY]) {
159
162
  logger.log(`~ ${_serverconstants.AppConstants.SERVER_PORT_KEY} environment variable is not set`);
@@ -161,20 +164,21 @@ function ensurePortSet() {
161
164
  process.env[_serverconstants.AppConstants.SERVER_PORT_KEY] = _serverconstants.AppConstants.defaultServerPort.toString();
162
165
  }
163
166
  }
164
- function setupEnvConfig(skipDotEnv = false) {
165
- if (!skipDotEnv) {
166
- (0, _dotenv.config)({
167
- path: dotEnvPath
168
- });
169
- logger.log("✓ Parsed environment and (optional) .env file");
170
- }
167
+ function setupEnvConfig() {
171
168
  ensureNodeEnvSet();
172
169
  ensurePackageVersionSet();
173
170
  setupSentry();
174
- ensureMongoDBConnectionStringSet();
171
+ ensureMongoDbConnectionStringSet();
175
172
  ensurePortSet();
173
+ if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
174
+ (0, _promclient.collectDefaultMetrics)({
175
+ register: _promclient.register
176
+ });
177
+ _promclient.register.removeSingleMetric("nodejs_version_info");
178
+ }
176
179
  }
177
180
  async function runMigrations(db, client) {
181
+ const logger = new _logger.LoggerService("FDM-Environment");
178
182
  const migrationsStatus = await (0, _migratemongo.status)(db);
179
183
  const pendingMigrations = migrationsStatus.filter((m)=>m.appliedAt === "PENDING");
180
184
  if (pendingMigrations.length) {
@@ -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","instructionsReferralURL","packageJsonPath","join","superRootPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","logger","Logger","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","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,19 +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: [
76
- "**/*.map"
77
- ]
78
- })).use(_exceptionfilter.exceptionFilter);
68
+ }).use((0, _loadcontrollers.loadControllersFunc)());
79
69
  const nextClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientNextPackageName, "dist");
80
70
  const bundleDistPath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
81
71
  const backupClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
@@ -88,10 +78,10 @@ class ServerHost {
88
78
  });
89
79
  app.use(_express.default.static(bundleDistPath));
90
80
  app.use(_express.default.static(backupClientPath));
91
- app.get("*", (req, res)=>{
81
+ app.get("*", (req, _)=>{
92
82
  const path = req.originalUrl;
93
83
  let resource = "MVC";
94
- if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/plugins")) {
84
+ if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/metrics")) {
95
85
  resource = "API";
96
86
  } else if (path.endsWith(".min.js")) {
97
87
  resource = "client-bundle";
@@ -100,17 +90,14 @@ class ServerHost {
100
90
  if (!path.startsWith("/socket.io")) {
101
91
  throw new _runtimeexceptions.NotFoundException(`${resource} resource was not found`, path);
102
92
  }
103
- }).use(_exceptionfilter.exceptionFilter);
104
- }
105
- isClientNextEnabled() {
106
- const settings = this.settingsStore.getServerSettings();
107
- return settings.experimentalClientSupport;
93
+ });
94
+ app.use(_exceptionfilter.exceptionFilter);
108
95
  }
109
- async httpListen() {
96
+ async httpListen(app) {
110
97
  const port = (0, _serverenv.fetchServerPort)();
111
98
  if (!(0, _envutils.isProductionEnvironment)() && this.configService.get(_serverconstants.AppConstants.debugRoutesKey, "false") === "true") {
112
99
  const expressListRoutes = require("express-list-routes");
113
- expressListRoutes(this.appInstance, {
100
+ expressListRoutes(app, {
114
101
  prefix: "/"
115
102
  });
116
103
  }
@@ -118,11 +105,15 @@ class ServerHost {
118
105
  throw new Error("The FDM Server requires a numeric port input argument to run");
119
106
  }
120
107
  const hostOrFqdn = "0.0.0.0";
121
- const server = this.appInstance.listen(parseInt(port), hostOrFqdn, ()=>{
108
+ const server = app.listen(parseInt(port), hostOrFqdn, ()=>{
122
109
  this.logger.log(`Server started... open it at http://127.0.0.1:${port}`);
123
110
  });
124
111
  this.socketIoGateway.attachServer(server);
125
112
  }
113
+ isClientNextEnabled() {
114
+ const settings = this.settingsStore.getServerSettings();
115
+ return settings.experimentalClientSupport;
116
+ }
126
117
  }
127
118
 
128
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
  }