@fdm-monster/server 2.0.10 → 2.0.11

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 (929) hide show
  1. package/.claude/CLAUDE.md +76 -0
  2. package/.vite-hooks/pre-commit +1 -0
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.13.0.cjs +940 -0
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +1 -1
  7. package/RELEASE_NOTES.MD +14 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js +9 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.127.0/helpers/decorateMetadata.js +6 -0
  10. package/dist/_virtual/_rolldown/runtime.js +13 -0
  11. package/dist/_virtual/_virtual_controllers.js +43 -0
  12. package/dist/consoles/typeorm-create.js +51 -112
  13. package/dist/consoles/typeorm-create.js.map +1 -1
  14. package/dist/consoles/typeorm-generate.js +99 -165
  15. package/dist/consoles/typeorm-generate.js.map +1 -1
  16. package/dist/consoles/typeorm-migrate.js +35 -43
  17. package/dist/consoles/typeorm-migrate.js.map +1 -1
  18. package/dist/constants/authorization.constants.js +75 -97
  19. package/dist/constants/authorization.constants.js.map +1 -1
  20. package/dist/constants/event.constants.js +11 -41
  21. package/dist/constants/event.constants.js.map +1 -1
  22. package/dist/constants/http-status-codes.constants.js +319 -71
  23. package/dist/constants/http-status-codes.constants.js.map +1 -1
  24. package/dist/constants/server-settings.constants.js +45 -87
  25. package/dist/constants/server-settings.constants.js.map +1 -1
  26. package/dist/constants/service.constants.js +3 -21
  27. package/dist/constants/service.constants.js.map +1 -1
  28. package/dist/container.js +167 -181
  29. package/dist/container.js.map +1 -1
  30. package/dist/container.tokens.js +78 -85
  31. package/dist/container.tokens.js.map +1 -1
  32. package/dist/controllers/auth.controller.js +156 -225
  33. package/dist/controllers/auth.controller.js.map +1 -1
  34. package/dist/controllers/batch-call.controller.js +79 -116
  35. package/dist/controllers/batch-call.controller.js.map +1 -1
  36. package/dist/controllers/camera-stream.controller.js +74 -119
  37. package/dist/controllers/camera-stream.controller.js.map +1 -1
  38. package/dist/controllers/dto/update-client-dist.dto.js +8 -15
  39. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
  40. package/dist/controllers/file-storage.controller.js +251 -312
  41. package/dist/controllers/file-storage.controller.js.map +1 -1
  42. package/dist/controllers/first-time-setup.controller.js +83 -135
  43. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  44. package/dist/controllers/floor.controller.js +111 -175
  45. package/dist/controllers/floor.controller.js.map +1 -1
  46. package/dist/controllers/metrics.controller.js +27 -53
  47. package/dist/controllers/metrics.controller.js.map +1 -1
  48. package/dist/controllers/print-job.controller.js +366 -451
  49. package/dist/controllers/print-job.controller.js.map +1 -1
  50. package/dist/controllers/print-queue.controller.js +329 -427
  51. package/dist/controllers/print-queue.controller.js.map +1 -1
  52. package/dist/controllers/printer-files.controller.js +244 -305
  53. package/dist/controllers/printer-files.controller.js.map +1 -1
  54. package/dist/controllers/printer-maintenance-log.controller.js +109 -165
  55. package/dist/controllers/printer-maintenance-log.controller.js.map +1 -1
  56. package/dist/controllers/printer-settings.controller.js +50 -81
  57. package/dist/controllers/printer-settings.controller.js.map +1 -1
  58. package/dist/controllers/printer-tag.controller.js +104 -166
  59. package/dist/controllers/printer-tag.controller.js.map +1 -1
  60. package/dist/controllers/printer.controller.js +352 -469
  61. package/dist/controllers/printer.controller.js.map +1 -1
  62. package/dist/controllers/server-private.controller.js +182 -239
  63. package/dist/controllers/server-private.controller.js.map +1 -1
  64. package/dist/controllers/server-public.controller.js +104 -158
  65. package/dist/controllers/server-public.controller.js.map +1 -1
  66. package/dist/controllers/settings.controller.js +229 -364
  67. package/dist/controllers/settings.controller.js.map +1 -1
  68. package/dist/controllers/slicer-compat.controller.js +179 -206
  69. package/dist/controllers/slicer-compat.controller.js.map +1 -1
  70. package/dist/controllers/user.controller.js +226 -348
  71. package/dist/controllers/user.controller.js.map +1 -1
  72. package/dist/controllers/validation/auth-controller.validation.js +5 -14
  73. package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
  74. package/dist/controllers/validation/batch-controller.validation.js +13 -35
  75. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  76. package/dist/controllers/validation/generic.validation.js +6 -23
  77. package/dist/controllers/validation/generic.validation.js.map +1 -1
  78. package/dist/controllers/validation/printer-completion-controller.validation.js +5 -14
  79. package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -1
  80. package/dist/controllers/validation/printer-controller.validation.js +16 -48
  81. package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
  82. package/dist/controllers/validation/printer-files-controller.validation.js +12 -47
  83. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  84. package/dist/controllers/validation/printer-settings-controller.validation.js +5 -14
  85. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
  86. package/dist/controllers/validation/server-private.validation.js +7 -14
  87. package/dist/controllers/validation/server-private.validation.js.map +1 -1
  88. package/dist/controllers/validation/setting.validation.js +12 -34
  89. package/dist/controllers/validation/setting.validation.js.map +1 -1
  90. package/dist/controllers/validation/user-controller.validation.js +27 -65
  91. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  92. package/dist/data-source.js +74 -79
  93. package/dist/data-source.js.map +1 -1
  94. package/dist/entities/camera-stream.entity.js +49 -91
  95. package/dist/entities/camera-stream.entity.js.map +1 -1
  96. package/dist/entities/floor-position.entity.js +38 -75
  97. package/dist/entities/floor-position.entity.js.map +1 -1
  98. package/dist/entities/floor.entity.js +18 -48
  99. package/dist/entities/floor.entity.js.map +1 -1
  100. package/dist/entities/index.js +14 -66
  101. package/dist/entities/print-job.entity.js +114 -196
  102. package/dist/entities/print-job.entity.js.map +1 -1
  103. package/dist/entities/printer-maintenance-log.entity.js +61 -140
  104. package/dist/entities/printer-maintenance-log.entity.js.map +1 -1
  105. package/dist/entities/printer-tag.entity.js +33 -66
  106. package/dist/entities/printer-tag.entity.js.map +1 -1
  107. package/dist/entities/printer.entity.js +67 -124
  108. package/dist/entities/printer.entity.js.map +1 -1
  109. package/dist/entities/refresh-token.entity.js +31 -66
  110. package/dist/entities/refresh-token.entity.js.map +1 -1
  111. package/dist/entities/role.entity.js +16 -45
  112. package/dist/entities/role.entity.js.map +1 -1
  113. package/dist/entities/settings.entity.js +38 -77
  114. package/dist/entities/settings.entity.js.map +1 -1
  115. package/dist/entities/tag.entity.js +19 -43
  116. package/dist/entities/tag.entity.js.map +1 -1
  117. package/dist/entities/user-role.entity.js +30 -67
  118. package/dist/entities/user-role.entity.js.map +1 -1
  119. package/dist/entities/user.entity.js +32 -87
  120. package/dist/entities/user.entity.js.map +1 -1
  121. package/dist/exceptions/failed-dependency.exception.js +11 -18
  122. package/dist/exceptions/failed-dependency.exception.js.map +1 -1
  123. package/dist/exceptions/job.exceptions.js +9 -16
  124. package/dist/exceptions/job.exceptions.js.map +1 -1
  125. package/dist/exceptions/runtime.exceptions.js +82 -121
  126. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  127. package/dist/handlers/event-emitter.js +13 -20
  128. package/dist/handlers/event-emitter.js.map +1 -1
  129. package/dist/handlers/logger-factory.js +7 -14
  130. package/dist/handlers/logger-factory.js.map +1 -1
  131. package/dist/handlers/logger.js +26 -36
  132. package/dist/handlers/logger.js.map +1 -1
  133. package/dist/handlers/logging/file-logging.transport.js +17 -31
  134. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  135. package/dist/handlers/logging/loki-logging.transport.js +34 -50
  136. package/dist/handlers/logging/loki-logging.transport.js.map +1 -1
  137. package/dist/handlers/logging/static.logger.js +83 -124
  138. package/dist/handlers/logging/static.logger.js.map +1 -1
  139. package/dist/handlers/validators.js +8 -25
  140. package/dist/handlers/validators.js.map +1 -1
  141. package/dist/index.js +23 -26
  142. package/dist/index.js.map +1 -1
  143. package/dist/middleware/authenticate.js +26 -69
  144. package/dist/middleware/authenticate.js.map +1 -1
  145. package/dist/middleware/database.js +16 -22
  146. package/dist/middleware/database.js.map +1 -1
  147. package/dist/middleware/demo.middleware.js +19 -27
  148. package/dist/middleware/demo.middleware.js.map +1 -1
  149. package/dist/middleware/exception.filter.js +109 -133
  150. package/dist/middleware/exception.filter.js.map +1 -1
  151. package/dist/middleware/global.middleware.js +28 -47
  152. package/dist/middleware/global.middleware.js.map +1 -1
  153. package/dist/middleware/param-converter.middleware.js +31 -69
  154. package/dist/middleware/param-converter.middleware.js.map +1 -1
  155. package/dist/middleware/passport.js +38 -64
  156. package/dist/middleware/passport.js.map +1 -1
  157. package/dist/middleware/printer-resolver.js +26 -33
  158. package/dist/middleware/printer-resolver.js.map +1 -1
  159. package/dist/middleware/printer.js +56 -94
  160. package/dist/middleware/printer.js.map +1 -1
  161. package/dist/middleware/slicer-api-key.middleware.js +23 -26
  162. package/dist/middleware/slicer-api-key.middleware.js.map +1 -1
  163. package/dist/middleware/socketio.middleware.js +21 -32
  164. package/dist/middleware/socketio.middleware.js.map +1 -1
  165. package/dist/migrations/1706829146617-InitSqlite.js +84 -91
  166. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  167. package/dist/migrations/1707494762198-PrinterGroup.js +22 -29
  168. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  169. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +26 -33
  170. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  171. package/dist/migrations/1713300747465-ChangeRoleNameUnique.js +27 -34
  172. package/dist/migrations/1713300747465-ChangeRoleNameUnique.js.map +1 -1
  173. package/dist/migrations/1713897879622-AddPrinterType.js +34 -41
  174. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  175. package/dist/migrations/1720338804844-RemovePrinterFile.js +12 -19
  176. package/dist/migrations/1720338804844-RemovePrinterFile.js.map +1 -1
  177. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +26 -33
  178. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
  179. package/dist/migrations/1766576698569-DropPermissions.js +11 -18
  180. package/dist/migrations/1766576698569-DropPermissions.js.map +1 -1
  181. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +26 -33
  182. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -1
  183. package/dist/migrations/1767279607392-DropCustomGcode.js +12 -19
  184. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -1
  185. package/dist/migrations/1767291804417-DropPrintCompletions.js +12 -19
  186. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -1
  187. package/dist/migrations/1767352862576-DropSettingsFileClean.js +18 -25
  188. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -1
  189. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +26 -33
  190. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -1
  191. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +18 -25
  192. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -1
  193. package/dist/migrations/1767432108916-RenameGroupToTag.js +22 -29
  194. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -1
  195. package/dist/migrations/1767451444137-AddPrintJob.js +20 -27
  196. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -1
  197. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js +14 -21
  198. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js.map +1 -1
  199. package/dist/plugins/controllers-plugin.js +21 -0
  200. package/dist/plugins/controllers-plugin.js.map +1 -0
  201. package/dist/server.constants.js +79 -91
  202. package/dist/server.constants.js.map +1 -1
  203. package/dist/server.core.js +56 -122
  204. package/dist/server.core.js.map +1 -1
  205. package/dist/server.env.js +56 -121
  206. package/dist/server.env.js.map +1 -1
  207. package/dist/server.host.js +66 -99
  208. package/dist/server.host.js.map +1 -1
  209. package/dist/services/authentication/auth.service.js +103 -126
  210. package/dist/services/authentication/auth.service.js.map +1 -1
  211. package/dist/services/authentication/jwt.service.js +23 -32
  212. package/dist/services/authentication/jwt.service.js.map +1 -1
  213. package/dist/services/bambu/bambu-ftp.adapter.js +194 -236
  214. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  215. package/dist/services/bambu/bambu-mqtt.adapter.js +394 -449
  216. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  217. package/dist/services/bambu/bambu.client.js +64 -65
  218. package/dist/services/bambu/bambu.client.js.map +1 -1
  219. package/dist/services/bambu/mqtt-message.types.js +1 -6
  220. package/dist/services/bambu.api.js +230 -247
  221. package/dist/services/bambu.api.js.map +1 -1
  222. package/dist/services/core/batch-call.service.js +139 -163
  223. package/dist/services/core/batch-call.service.js.map +1 -1
  224. package/dist/services/core/client-bundle.service.js +126 -165
  225. package/dist/services/core/client-bundle.service.js.map +1 -1
  226. package/dist/services/core/config.service.js +16 -26
  227. package/dist/services/core/config.service.js.map +1 -1
  228. package/dist/services/core/cradle.service.js +11 -19
  229. package/dist/services/core/cradle.service.js.map +1 -1
  230. package/dist/services/core/github.service.js +59 -79
  231. package/dist/services/core/github.service.js.map +1 -1
  232. package/dist/services/core/http-client.factory.js +30 -38
  233. package/dist/services/core/http-client.factory.js.map +1 -1
  234. package/dist/services/core/logs-manager.service.js +61 -84
  235. package/dist/services/core/logs-manager.service.js.map +1 -1
  236. package/dist/services/core/monsterpi.service.js +26 -36
  237. package/dist/services/core/monsterpi.service.js.map +1 -1
  238. package/dist/services/core/multer.service.js +69 -129
  239. package/dist/services/core/multer.service.js.map +1 -1
  240. package/dist/services/core/server-release.service.js +77 -99
  241. package/dist/services/core/server-release.service.js.map +1 -1
  242. package/dist/services/core/yaml.service.js +443 -573
  243. package/dist/services/core/yaml.service.js.map +1 -1
  244. package/dist/services/file-analysis.service.js +134 -144
  245. package/dist/services/file-analysis.service.js.map +1 -1
  246. package/dist/services/file-storage.service.js +324 -423
  247. package/dist/services/file-storage.service.js.map +1 -1
  248. package/dist/services/interfaces/auth.service.interface.js +1 -6
  249. package/dist/services/interfaces/camera-stream.dto.js +23 -41
  250. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  251. package/dist/services/interfaces/camera-stream.service.interface.js +1 -6
  252. package/dist/services/interfaces/file-upload-tracker.interface.js +1 -6
  253. package/dist/services/interfaces/floor.dto.js +31 -55
  254. package/dist/services/interfaces/floor.dto.js.map +1 -1
  255. package/dist/services/interfaces/floor.service.interface.js +1 -6
  256. package/dist/services/interfaces/jwt.service.interface.js +1 -6
  257. package/dist/services/interfaces/login.dto.js +10 -17
  258. package/dist/services/interfaces/login.dto.js.map +1 -1
  259. package/dist/services/interfaces/page.interface.js +5 -12
  260. package/dist/services/interfaces/page.interface.js.map +1 -1
  261. package/dist/services/interfaces/permission.service.interface.js +1 -6
  262. package/dist/services/interfaces/printer-file.dto.js +1 -6
  263. package/dist/services/interfaces/printer-maintenance-log.dto.js +1 -6
  264. package/dist/services/interfaces/printer-tag.dto.js +11 -26
  265. package/dist/services/interfaces/printer-tag.dto.js.map +1 -1
  266. package/dist/services/interfaces/printer-tag.service.interface.js +1 -6
  267. package/dist/services/interfaces/printer.dto.js +21 -36
  268. package/dist/services/interfaces/printer.dto.js.map +1 -1
  269. package/dist/services/interfaces/printer.service.interface.js +1 -6
  270. package/dist/services/interfaces/refresh-token.dto.js +9 -16
  271. package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
  272. package/dist/services/interfaces/refresh-token.service.interface.js +1 -6
  273. package/dist/services/interfaces/role-service.interface.js +1 -6
  274. package/dist/services/interfaces/role.dto.js +7 -14
  275. package/dist/services/interfaces/role.dto.js.map +1 -1
  276. package/dist/services/interfaces/settings.dto.js +10 -17
  277. package/dist/services/interfaces/settings.dto.js.map +1 -1
  278. package/dist/services/interfaces/settings.service.interface.js +1 -6
  279. package/dist/services/interfaces/tag.dto.js +1 -6
  280. package/dist/services/interfaces/task.interfaces.js +1 -6
  281. package/dist/services/interfaces/user-role.dto.js +9 -16
  282. package/dist/services/interfaces/user-role.dto.js.map +1 -1
  283. package/dist/services/interfaces/user-service.interface.js +1 -6
  284. package/dist/services/interfaces/user.dto.js +22 -37
  285. package/dist/services/interfaces/user.dto.js.map +1 -1
  286. package/dist/services/moonraker/constants/moonraker-event.dto.js +16 -31
  287. package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
  288. package/dist/services/moonraker/constants/moonraker.constants.js +4 -11
  289. package/dist/services/moonraker/constants/moonraker.constants.js.map +1 -1
  290. package/dist/services/moonraker/dto/access/access-info.dto.js +1 -6
  291. package/dist/services/moonraker/dto/access/access-login-refresh.dto.js +1 -6
  292. package/dist/services/moonraker/dto/access/access-login-result.dto.js +1 -6
  293. package/dist/services/moonraker/dto/access/access-user-result.dto.js +1 -6
  294. package/dist/services/moonraker/dto/access/access-user.dto.js +1 -6
  295. package/dist/services/moonraker/dto/database/database-namespace-item.dto.js +1 -6
  296. package/dist/services/moonraker/dto/database/database-namespace-list.dto.js +1 -6
  297. package/dist/services/moonraker/dto/gcode-help.dto.js +1 -6
  298. package/dist/services/moonraker/dto/gcode-store.dto.js +1 -6
  299. package/dist/services/moonraker/dto/job-queue/enqueue-job.dto.js +1 -6
  300. package/dist/services/moonraker/dto/job-queue/job-queue-status.dto.js +1 -6
  301. package/dist/services/moonraker/dto/machine/machine-device-power-device-state.dto.js +1 -6
  302. package/dist/services/moonraker/dto/machine/machine-device-power-devices.dto.js +1 -6
  303. package/dist/services/moonraker/dto/machine/machine-peripherals-canbus.dto.js +1 -6
  304. package/dist/services/moonraker/dto/machine/machine-peripherals-serial.dto.js +1 -6
  305. package/dist/services/moonraker/dto/machine/machine-peripherals-usb.dto.js +1 -6
  306. package/dist/services/moonraker/dto/machine/machine-peripherals-video.dto.js +1 -6
  307. package/dist/services/moonraker/dto/machine/machine-system-info.dto.js +1 -6
  308. package/dist/services/moonraker/dto/machine/machine-update-status.dto.js +1 -6
  309. package/dist/services/moonraker/dto/machine/machine-wled-strips.dto.js +1 -6
  310. package/dist/services/moonraker/dto/notifier-list.dto.js +1 -6
  311. package/dist/services/moonraker/dto/objects/bed-mesh.dto.js +1 -6
  312. package/dist/services/moonraker/dto/objects/configfile.dto.js +1 -6
  313. package/dist/services/moonraker/dto/objects/display-status.dto.js +1 -6
  314. package/dist/services/moonraker/dto/objects/extruder.dto.js +1 -6
  315. package/dist/services/moonraker/dto/objects/fan.dto.js +1 -6
  316. package/dist/services/moonraker/dto/objects/filament-motion-sensor.dto.js +1 -6
  317. package/dist/services/moonraker/dto/objects/filament-switch-sensor.dto.js +1 -6
  318. package/dist/services/moonraker/dto/objects/gcode-move.dto.js +1 -6
  319. package/dist/services/moonraker/dto/objects/gcode.dto.js +1 -6
  320. package/dist/services/moonraker/dto/objects/heater-bed.dto.js +1 -6
  321. package/dist/services/moonraker/dto/objects/heaters.dto.js +1 -6
  322. package/dist/services/moonraker/dto/objects/idle-timeout.dto.js +6 -21
  323. package/dist/services/moonraker/dto/objects/idle-timeout.dto.js.map +1 -1
  324. package/dist/services/moonraker/dto/objects/mcu.dto.js +1 -6
  325. package/dist/services/moonraker/dto/objects/motion-report.dto.js +1 -6
  326. package/dist/services/moonraker/dto/objects/output-pin.dto.js +1 -6
  327. package/dist/services/moonraker/dto/objects/pause-resume.dto.js +1 -6
  328. package/dist/services/moonraker/dto/objects/print-stats.dto.js +9 -24
  329. package/dist/services/moonraker/dto/objects/print-stats.dto.js.map +1 -1
  330. package/dist/services/moonraker/dto/objects/printer-object.dto.js +1 -6
  331. package/dist/services/moonraker/dto/objects/printer-object.types.js +1 -6
  332. package/dist/services/moonraker/dto/objects/printer-objects-list.dto.js +28 -43
  333. package/dist/services/moonraker/dto/objects/printer-objects-list.dto.js.map +1 -1
  334. package/dist/services/moonraker/dto/objects/printer-objects-query.dto.js +1 -6
  335. package/dist/services/moonraker/dto/objects/stepper-enable.dto.js +1 -6
  336. package/dist/services/moonraker/dto/objects/system-stats.dto.js +1 -6
  337. package/dist/services/moonraker/dto/objects/temperature-fan.dto.js +1 -6
  338. package/dist/services/moonraker/dto/objects/temperature-sensor.dto.js +1 -6
  339. package/dist/services/moonraker/dto/objects/toolhead.dto.js +1 -6
  340. package/dist/services/moonraker/dto/objects/virtual-sdcard.dto.js +1 -6
  341. package/dist/services/moonraker/dto/objects/webhooks.dto.js +1 -6
  342. package/dist/services/moonraker/dto/octoprint-compat/api-job.dto.js +1 -6
  343. package/dist/services/moonraker/dto/octoprint-compat/api-login.dto.js +1 -6
  344. package/dist/services/moonraker/dto/octoprint-compat/api-printer.dto.js +1 -6
  345. package/dist/services/moonraker/dto/octoprint-compat/api-profiles.dto.js +1 -6
  346. package/dist/services/moonraker/dto/octoprint-compat/api-settings.dto.js +1 -6
  347. package/dist/services/moonraker/dto/octoprint-compat/api-version.dto.js +1 -6
  348. package/dist/services/moonraker/dto/octoprint-compat/server-version.dto.js +1 -6
  349. package/dist/services/moonraker/dto/printer-info.dto.js +7 -22
  350. package/dist/services/moonraker/dto/printer-info.dto.js.map +1 -1
  351. package/dist/services/moonraker/dto/printer-query-endstops.dto.js +1 -6
  352. package/dist/services/moonraker/dto/process-stats.dto.js +1 -6
  353. package/dist/services/moonraker/dto/rest/action-result.dto.js +1 -6
  354. package/dist/services/moonraker/dto/rest/error.dto.js +1 -6
  355. package/dist/services/moonraker/dto/rest/result.dto.js +6 -13
  356. package/dist/services/moonraker/dto/rest/result.dto.js.map +1 -1
  357. package/dist/services/moonraker/dto/rollover-logs.dto.js +1 -6
  358. package/dist/services/moonraker/dto/rpc/json-rpc-error.dto.js +1 -6
  359. package/dist/services/moonraker/dto/rpc/json-rpc-request.dto.js +1 -6
  360. package/dist/services/moonraker/dto/rpc/json-rpc-response.dto.js +1 -6
  361. package/dist/services/moonraker/dto/server/server-config.dto.js +1 -6
  362. package/dist/services/moonraker/dto/server/server-info.dto.js +7 -14
  363. package/dist/services/moonraker/dto/server/server-info.dto.js.map +1 -1
  364. package/dist/services/moonraker/dto/server-announcements/announcement-action.dto.js +1 -6
  365. package/dist/services/moonraker/dto/server-announcements/announcement-entry-id.dto.js +1 -6
  366. package/dist/services/moonraker/dto/server-announcements/announcement-feeds.dto.js +1 -6
  367. package/dist/services/moonraker/dto/server-announcements/announcement-list.dto.js +1 -6
  368. package/dist/services/moonraker/dto/server-files/server-file-directory-action.dto.js +1 -6
  369. package/dist/services/moonraker/dto/server-files/server-file-directory-info.dto.js +1 -6
  370. package/dist/services/moonraker/dto/server-files/server-file-metadata.dto.js +1 -6
  371. package/dist/services/moonraker/dto/server-files/server-file-root.dto.js +1 -6
  372. package/dist/services/moonraker/dto/server-files/server-file-thumbnail.dto.js +1 -6
  373. package/dist/services/moonraker/dto/server-files/server-file-zip-action.dto.js +1 -6
  374. package/dist/services/moonraker/dto/server-files/server-file.dto.js +1 -6
  375. package/dist/services/moonraker/dto/server-history/history-job.dto.js +1 -6
  376. package/dist/services/moonraker/dto/server-history/history-last-totals.dto.js +1 -6
  377. package/dist/services/moonraker/dto/server-history/history-list.dto.js +1 -6
  378. package/dist/services/moonraker/dto/server-history/history-totals.dto.js +1 -6
  379. package/dist/services/moonraker/dto/server-history/job.dto.js +6 -21
  380. package/dist/services/moonraker/dto/server-history/job.dto.js.map +1 -1
  381. package/dist/services/moonraker/dto/server-sensors/sensor-info.dto.js +1 -6
  382. package/dist/services/moonraker/dto/server-sensors/sensor-list.dto.js +1 -6
  383. package/dist/services/moonraker/dto/server-sensors/sensor-measurements.dto.js +1 -6
  384. package/dist/services/moonraker/dto/server-webcams/webcam-item.dto.js +1 -6
  385. package/dist/services/moonraker/dto/server-webcams/webcam-list.dto.js +1 -6
  386. package/dist/services/moonraker/dto/server-webcams/webcam-test.dto.js +1 -6
  387. package/dist/services/moonraker/dto/spoolman/spoolman-active-spool.dto.js +1 -6
  388. package/dist/services/moonraker/dto/spoolman/spoolman-proxy-request.dto.js +1 -6
  389. package/dist/services/moonraker/dto/spoolman/spoolman-response.dto.js +1 -6
  390. package/dist/services/moonraker/dto/spoolman/spoolman-status.dto.js +1 -6
  391. package/dist/services/moonraker/dto/sudo-info.dto.js +1 -6
  392. package/dist/services/moonraker/dto/sudo-response.dto.js +1 -6
  393. package/dist/services/moonraker/dto/temperature-store.dto.js +1 -6
  394. package/dist/services/moonraker/dto/websocket/connection-identify-response.dto.js +1 -6
  395. package/dist/services/moonraker/dto/websocket/connection-identify.dto.js +1 -6
  396. package/dist/services/moonraker/dto/websocket/json-rpc-event.dto.js +1 -6
  397. package/dist/services/moonraker/dto/websocket/message.types.js +1 -6
  398. package/dist/services/moonraker/dto/websocket/methods.js +29 -44
  399. package/dist/services/moonraker/dto/websocket/methods.js.map +1 -1
  400. package/dist/services/moonraker/dto/websocket/notify-active-spool-set.params.js +1 -6
  401. package/dist/services/moonraker/dto/websocket/notify-agent-event.params.js +1 -6
  402. package/dist/services/moonraker/dto/websocket/notify-announcement-update.params.js +1 -6
  403. package/dist/services/moonraker/dto/websocket/notify-announcement.params.js +1 -6
  404. package/dist/services/moonraker/dto/websocket/notify-button-event.params.js +1 -6
  405. package/dist/services/moonraker/dto/websocket/notify-filelist-changed.params.js +11 -18
  406. package/dist/services/moonraker/dto/websocket/notify-filelist-changed.params.js.map +1 -1
  407. package/dist/services/moonraker/dto/websocket/notify-history-changed.params.js +1 -6
  408. package/dist/services/moonraker/dto/websocket/notify-job-queue-changed.params.js +1 -6
  409. package/dist/services/moonraker/dto/websocket/notify-proc-stat-update.params.js +1 -6
  410. package/dist/services/moonraker/dto/websocket/notify-sensor-update.params.js +1 -6
  411. package/dist/services/moonraker/dto/websocket/notify-service-state-changed.params.js +1 -6
  412. package/dist/services/moonraker/dto/websocket/notify-spoolman-status-changed.js +1 -6
  413. package/dist/services/moonraker/dto/websocket/notify-sudo-alert.params.js +1 -6
  414. package/dist/services/moonraker/dto/websocket/notify-update-response.params.js +7 -22
  415. package/dist/services/moonraker/dto/websocket/notify-update-response.params.js.map +1 -1
  416. package/dist/services/moonraker/dto/websocket/notify-user-change.params.js +1 -6
  417. package/dist/services/moonraker/moonraker-websocket.adapter.js +313 -348
  418. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  419. package/dist/services/moonraker/moonraker.client.js +536 -559
  420. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  421. package/dist/services/moonraker.api.js +167 -192
  422. package/dist/services/moonraker.api.js.map +1 -1
  423. package/dist/services/octoprint/constants/firmware-update-settings.constants.js +19 -28
  424. package/dist/services/octoprint/constants/firmware-update-settings.constants.js.map +1 -1
  425. package/dist/services/octoprint/constants/octoprint-service.constants.js +3 -30
  426. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  427. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +41 -56
  428. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  429. package/dist/services/octoprint/dto/access/user-list.dto.js +1 -6
  430. package/dist/services/octoprint/dto/access/user.dto.js +1 -6
  431. package/dist/services/octoprint/dto/auth/current-user.dto.js +1 -6
  432. package/dist/services/octoprint/dto/auth/login.dto.js +1 -6
  433. package/dist/services/octoprint/dto/connection/connection-state.type.js +23 -30
  434. package/dist/services/octoprint/dto/connection/connection-state.type.js.map +1 -1
  435. package/dist/services/octoprint/dto/connection/connection.dto.js +1 -6
  436. package/dist/services/octoprint/dto/events/client-authed.dto.js +1 -6
  437. package/dist/services/octoprint/dto/events/client-closed.dto.js +1 -6
  438. package/dist/services/octoprint/dto/events/client-opened.dto.js +1 -6
  439. package/dist/services/octoprint/dto/events/dwelling.dto.js +1 -6
  440. package/dist/services/octoprint/dto/events/file-added.dto.js +1 -6
  441. package/dist/services/octoprint/dto/events/file-deselected.dto.js +1 -6
  442. package/dist/services/octoprint/dto/events/file-removed.dto.js +1 -6
  443. package/dist/services/octoprint/dto/events/folder-added.dto.js +1 -6
  444. package/dist/services/octoprint/dto/events/home.dto.js +1 -6
  445. package/dist/services/octoprint/dto/events/metadata-analysis-finished.dto.js +1 -6
  446. package/dist/services/octoprint/dto/events/metadata-analysis-started.dto.js +1 -6
  447. package/dist/services/octoprint/dto/events/metadata-statistics-updated.dto.js +1 -6
  448. package/dist/services/octoprint/dto/events/position-update.dto.js +1 -6
  449. package/dist/services/octoprint/dto/events/print-cancelled.dto.js +1 -6
  450. package/dist/services/octoprint/dto/events/print-cancelling.dto.js +1 -6
  451. package/dist/services/octoprint/dto/events/print-done.dto.js +1 -6
  452. package/dist/services/octoprint/dto/events/print-failed.dto.js +1 -6
  453. package/dist/services/octoprint/dto/events/print-paused.dto.js +1 -6
  454. package/dist/services/octoprint/dto/events/print-resumed.dto.js +1 -6
  455. package/dist/services/octoprint/dto/events/print-started.dto.js +1 -6
  456. package/dist/services/octoprint/dto/events/printer-state-changed.dto.js +1 -6
  457. package/dist/services/octoprint/dto/events/transfer-done.dto.js +1 -6
  458. package/dist/services/octoprint/dto/events/transfer-started.dto.js +1 -6
  459. package/dist/services/octoprint/dto/events/updated-files.dto.js +1 -6
  460. package/dist/services/octoprint/dto/events/upload.dto.js +1 -6
  461. package/dist/services/octoprint/dto/events/user-logged-in.dto.js +1 -6
  462. package/dist/services/octoprint/dto/events/z-change.dto.js +1 -6
  463. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js +1 -6
  464. package/dist/services/octoprint/dto/files/octoprint-file.dto.js +1 -6
  465. package/dist/services/octoprint/dto/files/octoprint-files-response.dto.js +1 -6
  466. package/dist/services/octoprint/dto/job/current-job.dto.js +8 -15
  467. package/dist/services/octoprint/dto/job/current-job.dto.js.map +1 -1
  468. package/dist/services/octoprint/dto/job/job.dto.js +1 -6
  469. package/dist/services/octoprint/dto/octoprint-event.dto.js +21 -39
  470. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  471. package/dist/services/octoprint/dto/printer/busy-file.dto.js +1 -6
  472. package/dist/services/octoprint/dto/printer/current-printer-state.dto.js +1 -6
  473. package/dist/services/octoprint/dto/printer/flags.dto.js +1 -6
  474. package/dist/services/octoprint/dto/printer/markings.dto.js +1 -6
  475. package/dist/services/octoprint/dto/printer/progress.dto.js +1 -6
  476. package/dist/services/octoprint/dto/printer/resends.dto.js +1 -6
  477. package/dist/services/octoprint/dto/printer/state.dto.js +1 -6
  478. package/dist/services/octoprint/dto/printer/temps.dto.js +1 -6
  479. package/dist/services/octoprint/dto/rest/error.dto.js +1 -6
  480. package/dist/services/octoprint/dto/server/server.dto.js +1 -6
  481. package/dist/services/octoprint/dto/server/version.dto.js +1 -6
  482. package/dist/services/octoprint/dto/settings/serial-settings.dto.js +1 -6
  483. package/dist/services/octoprint/dto/settings/settings-parts.type.js +1 -6
  484. package/dist/services/octoprint/dto/settings/settings.dto.js +1 -6
  485. package/dist/services/octoprint/dto/settings/virtual-printer-settings.dto.js +1 -6
  486. package/dist/services/octoprint/dto/system/system-info.dto.js +32 -39
  487. package/dist/services/octoprint/dto/system/system-info.dto.js.map +1 -1
  488. package/dist/services/octoprint/dto/websocket/connection-message.dto.js +1 -6
  489. package/dist/services/octoprint/dto/websocket/current-message.dto.js +1 -6
  490. package/dist/services/octoprint/dto/websocket/event-message.dto.js +1 -6
  491. package/dist/services/octoprint/dto/websocket/event.type.js +42 -49
  492. package/dist/services/octoprint/dto/websocket/event.type.js.map +1 -1
  493. package/dist/services/octoprint/dto/websocket/history-message.dto.js +1 -6
  494. package/dist/services/octoprint/dto/websocket/plugin-message.dto.js +1 -6
  495. package/dist/services/octoprint/dto/websocket/timelapse-message.dto.js +1 -6
  496. package/dist/services/octoprint/octoprint-api.routes.js +77 -94
  497. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  498. package/dist/services/octoprint/octoprint-websocket.adapter.js +265 -315
  499. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  500. package/dist/services/octoprint/octoprint.client.js +220 -261
  501. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  502. package/dist/services/octoprint/utils/api.utils.js +15 -32
  503. package/dist/services/octoprint/utils/api.utils.js.map +1 -1
  504. package/dist/services/octoprint/utils/file.utils.js +44 -67
  505. package/dist/services/octoprint/utils/file.utils.js.map +1 -1
  506. package/dist/services/octoprint/utils/octoprint-http-client.builder.js +16 -29
  507. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
  508. package/dist/services/octoprint.api.js +113 -128
  509. package/dist/services/octoprint.api.js.map +1 -1
  510. package/dist/services/orm/base.interface.js +1 -6
  511. package/dist/services/orm/base.service.js +57 -73
  512. package/dist/services/orm/base.service.js.map +1 -1
  513. package/dist/services/orm/camera-stream.service.js +21 -27
  514. package/dist/services/orm/camera-stream.service.js.map +1 -1
  515. package/dist/services/orm/floor-position.service.js +42 -49
  516. package/dist/services/orm/floor-position.service.js.map +1 -1
  517. package/dist/services/orm/floor.service.js +110 -138
  518. package/dist/services/orm/floor.service.js.map +1 -1
  519. package/dist/services/orm/permission.service.js +16 -23
  520. package/dist/services/orm/permission.service.js.map +1 -1
  521. package/dist/services/orm/print-job.service.js +443 -545
  522. package/dist/services/orm/print-job.service.js.map +1 -1
  523. package/dist/services/orm/printer-maintenance-log.service.js +102 -149
  524. package/dist/services/orm/printer-maintenance-log.service.js.map +1 -1
  525. package/dist/services/orm/printer-tag.service.js +93 -118
  526. package/dist/services/orm/printer-tag.service.js.map +1 -1
  527. package/dist/services/orm/printer.service.js +110 -158
  528. package/dist/services/orm/printer.service.js.map +1 -1
  529. package/dist/services/orm/refresh-token.service.js +69 -99
  530. package/dist/services/orm/refresh-token.service.js.map +1 -1
  531. package/dist/services/orm/role.service.js +99 -116
  532. package/dist/services/orm/role.service.js.map +1 -1
  533. package/dist/services/orm/settings.service.js +84 -94
  534. package/dist/services/orm/settings.service.js.map +1 -1
  535. package/dist/services/orm/user-role.service.js +39 -53
  536. package/dist/services/orm/user-role.service.js.map +1 -1
  537. package/dist/services/orm/user.service.js +142 -189
  538. package/dist/services/orm/user.service.js.map +1 -1
  539. package/dist/services/print-file-downloader.service.js +153 -167
  540. package/dist/services/print-file-downloader.service.js.map +1 -1
  541. package/dist/services/print-queue.service.js +240 -326
  542. package/dist/services/print-queue.service.js.map +1 -1
  543. package/dist/services/printer-api.factory.js +26 -43
  544. package/dist/services/printer-api.factory.js.map +1 -1
  545. package/dist/services/printer-api.interface.js +23 -53
  546. package/dist/services/printer-api.interface.js.map +1 -1
  547. package/dist/services/prusa-link/constants/prusalink-event.dto.js +9 -16
  548. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
  549. package/dist/services/prusa-link/constants/prusalink.constants.js +4 -11
  550. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -1
  551. package/dist/services/prusa-link/dto/file-response.dto.js +1 -6
  552. package/dist/services/prusa-link/dto/file.dto.js +1 -6
  553. package/dist/services/prusa-link/dto/job-state.dto.js +1 -6
  554. package/dist/services/prusa-link/dto/printer-state.dto.js +1 -6
  555. package/dist/services/prusa-link/dto/status.dto.js +1 -6
  556. package/dist/services/prusa-link/dto/version.dto.js +1 -6
  557. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +141 -157
  558. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  559. package/dist/services/prusa-link/prusa-link.api.js +206 -240
  560. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  561. package/dist/services/prusa-link/utils/digest-auth.params.js +1 -6
  562. package/dist/services/prusa-link/utils/digest-auth.util.js +17 -24
  563. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -1
  564. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +92 -129
  565. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
  566. package/dist/services/socket.factory.js +21 -36
  567. package/dist/services/socket.factory.js.map +1 -1
  568. package/dist/services/task-manager.service.js +190 -174
  569. package/dist/services/task-manager.service.js.map +1 -1
  570. package/dist/services/typeorm/typeorm.service.js +31 -46
  571. package/dist/services/typeorm/typeorm.service.js.map +1 -1
  572. package/dist/services/validators/floor-service.validation.js +26 -63
  573. package/dist/services/validators/floor-service.validation.js.map +1 -1
  574. package/dist/services/validators/print-job.validation.js +11 -26
  575. package/dist/services/validators/print-job.validation.js.map +1 -1
  576. package/dist/services/validators/printer-maintenance-log.validation.js +17 -37
  577. package/dist/services/validators/printer-maintenance-log.validation.js.map +1 -1
  578. package/dist/services/validators/printer-service.validation.js +60 -125
  579. package/dist/services/validators/printer-service.validation.js.map +1 -1
  580. package/dist/services/validators/settings-service.validation.js +46 -106
  581. package/dist/services/validators/settings-service.validation.js.map +1 -1
  582. package/dist/services/validators/user-service.validation.js +19 -36
  583. package/dist/services/validators/user-service.validation.js.map +1 -1
  584. package/dist/services/validators/yaml-service.validation.js +96 -132
  585. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  586. package/dist/services/websocket-adapter.interface.js +1 -6
  587. package/dist/shared/default-http-client.builder.js +74 -92
  588. package/dist/shared/default-http-client.builder.js.map +1 -1
  589. package/dist/shared/dtos/api-state.type.js +8 -15
  590. package/dist/shared/dtos/api-state.type.js.map +1 -1
  591. package/dist/shared/dtos/socket-login.dto.js +1 -6
  592. package/dist/shared/dtos/socket-state.type.js +11 -18
  593. package/dist/shared/dtos/socket-state.type.js.map +1 -1
  594. package/dist/shared/load-controllers.js +41 -19
  595. package/dist/shared/load-controllers.js.map +1 -1
  596. package/dist/shared/runtime-settings.migration.js +43 -50
  597. package/dist/shared/runtime-settings.migration.js.map +1 -1
  598. package/dist/shared/websocket-rpc-extended.adapter.js +74 -75
  599. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  600. package/dist/shared/websocket.adapter.js +78 -63
  601. package/dist/shared/websocket.adapter.js.map +1 -1
  602. package/dist/state/file-upload-tracker.cache.js +63 -75
  603. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  604. package/dist/state/floor.store.js +77 -89
  605. package/dist/state/floor.store.js.map +1 -1
  606. package/dist/state/printer-events.cache.js +237 -295
  607. package/dist/state/printer-events.cache.js.map +1 -1
  608. package/dist/state/printer-socket.store.js +156 -174
  609. package/dist/state/printer-socket.store.js.map +1 -1
  610. package/dist/state/printer-thumbnail.cache.js +129 -130
  611. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  612. package/dist/state/printer.cache.js +87 -102
  613. package/dist/state/printer.cache.js.map +1 -1
  614. package/dist/state/settings.store.js +211 -234
  615. package/dist/state/settings.store.js.map +1 -1
  616. package/dist/state/socket-io.gateway.js +58 -87
  617. package/dist/state/socket-io.gateway.js.map +1 -1
  618. package/dist/state/test-printer-socket.store.js +116 -137
  619. package/dist/state/test-printer-socket.store.js.map +1 -1
  620. package/dist/state/validation/create-test-printer.validation.js +14 -21
  621. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  622. package/dist/task.presets.js +30 -37
  623. package/dist/task.presets.js.map +1 -1
  624. package/dist/tasks/boot.task.js +100 -128
  625. package/dist/tasks/boot.task.js.map +1 -1
  626. package/dist/tasks/client-bundle.task.js +20 -28
  627. package/dist/tasks/client-bundle.task.js.map +1 -1
  628. package/dist/tasks/print-job-analysis.task.js +88 -113
  629. package/dist/tasks/print-job-analysis.task.js.map +1 -1
  630. package/dist/tasks/printer-websocket-restore.task.js +41 -54
  631. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  632. package/dist/tasks/printer-websocket.task.js +11 -19
  633. package/dist/tasks/printer-websocket.task.js.map +1 -1
  634. package/dist/tasks/socketio.task.js +35 -53
  635. package/dist/tasks/socketio.task.js.map +1 -1
  636. package/dist/tasks/software-update.task.js +12 -20
  637. package/dist/tasks/software-update.task.js.map +1 -1
  638. package/dist/tasks.js +27 -41
  639. package/dist/tasks.js.map +1 -1
  640. package/dist/types/express/index.d.js +1 -6
  641. package/dist/types/virtual-modules.d.js +1 -0
  642. package/dist/utils/array.util.js +9 -24
  643. package/dist/utils/array.util.js.map +1 -1
  644. package/dist/utils/bgcode/bgcode-thumbnail.parser.js +26 -44
  645. package/dist/utils/bgcode/bgcode-thumbnail.parser.js.map +1 -1
  646. package/dist/utils/bgcode/bgcode.constants.js +9 -45
  647. package/dist/utils/bgcode/bgcode.constants.js.map +1 -1
  648. package/dist/utils/bgcode/bgcode.types.js +57 -106
  649. package/dist/utils/bgcode/bgcode.types.js.map +1 -1
  650. package/dist/utils/bgcode/bgcode.utils.js +167 -256
  651. package/dist/utils/bgcode/bgcode.utils.js.map +1 -1
  652. package/dist/utils/bgcode/heatshrink-decoder.js +130 -170
  653. package/dist/utils/bgcode/heatshrink-decoder.js.map +1 -1
  654. package/dist/utils/bgcode/png-encoder.js +53 -66
  655. package/dist/utils/bgcode/png-encoder.js.map +1 -1
  656. package/dist/utils/bgcode/qoi-decoder.js +116 -135
  657. package/dist/utils/bgcode/qoi-decoder.js.map +1 -1
  658. package/dist/utils/cache/key-diff.cache.js +56 -85
  659. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  660. package/dist/utils/correlation-token.util.js +4 -11
  661. package/dist/utils/correlation-token.util.js.map +1 -1
  662. package/dist/utils/crypto.utils.js +7 -23
  663. package/dist/utils/crypto.utils.js.map +1 -1
  664. package/dist/utils/env.utils.js +14 -49
  665. package/dist/utils/env.utils.js.map +1 -1
  666. package/dist/utils/error.utils.js +4 -11
  667. package/dist/utils/error.utils.js.map +1 -1
  668. package/dist/utils/fs.utils.js +26 -49
  669. package/dist/utils/fs.utils.js.map +1 -1
  670. package/dist/utils/gcode.utils.js +30 -43
  671. package/dist/utils/gcode.utils.js.map +1 -1
  672. package/dist/utils/image-dimensions.js +39 -54
  673. package/dist/utils/image-dimensions.js.map +1 -1
  674. package/dist/utils/job-stats.util.js +41 -72
  675. package/dist/utils/job-stats.util.js.map +1 -1
  676. package/dist/utils/normalize-url.js +135 -203
  677. package/dist/utils/normalize-url.js.map +1 -1
  678. package/dist/utils/parsers/3mf.parser.js +298 -365
  679. package/dist/utils/parsers/3mf.parser.js.map +1 -1
  680. package/dist/utils/parsers/bgcode.parser.js +149 -202
  681. package/dist/utils/parsers/bgcode.parser.js.map +1 -1
  682. package/dist/utils/parsers/gcode.parser.js +200 -263
  683. package/dist/utils/parsers/gcode.parser.js.map +1 -1
  684. package/dist/utils/parsers/parser.types.js +1 -6
  685. package/dist/utils/pretty-print.utils.js +5 -20
  686. package/dist/utils/pretty-print.utils.js.map +1 -1
  687. package/dist/utils/semver.utils.js +10 -26
  688. package/dist/utils/semver.utils.js.map +1 -1
  689. package/dist/utils/swagger/decorators.js +14 -32
  690. package/dist/utils/swagger/decorators.js.map +1 -1
  691. package/dist/utils/swagger/generator.js +151 -194
  692. package/dist/utils/swagger/generator.js.map +1 -1
  693. package/dist/utils/swagger/swagger.js +40 -51
  694. package/dist/utils/swagger/swagger.js.map +1 -1
  695. package/dist/utils/thumbnail.util.js +11 -20
  696. package/dist/utils/thumbnail.util.js.map +1 -1
  697. package/dist/utils/time.utils.js +4 -12
  698. package/dist/utils/time.utils.js.map +1 -1
  699. package/dist/utils/url.utils.js +9 -27
  700. package/dist/utils/url.utils.js.map +1 -1
  701. package/package.json +79 -90
  702. package/packages/consoles/package.json +44 -0
  703. package/packages/consoles/tsconfig.json +23 -0
  704. package/packages/consoles/vite.config.ts +15 -0
  705. package/tsconfig.json +10 -6
  706. package/vite.config.ts +62 -0
  707. package/.swcrc +0 -33
  708. package/.yarn/releases/yarn-4.12.0.cjs +0 -942
  709. package/biome.json +0 -36
  710. package/dist/consoles/bambu-mqtt-diagnostic.console.js +0 -565
  711. package/dist/consoles/bambu-mqtt-diagnostic.console.js.map +0 -1
  712. package/dist/consoles/download-github-releases.js +0 -50
  713. package/dist/consoles/download-github-releases.js.map +0 -1
  714. package/dist/consoles/gcode-scanner-poc.console.js +0 -52
  715. package/dist/consoles/gcode-scanner-poc.console.js.map +0 -1
  716. package/dist/consoles/launch-http-servers.js +0 -31
  717. package/dist/consoles/launch-http-servers.js.map +0 -1
  718. package/dist/consoles/mock-bambu.server.js +0 -319
  719. package/dist/consoles/mock-bambu.server.js.map +0 -1
  720. package/dist/consoles/mock-camera/default-image.js +0 -13
  721. package/dist/consoles/mock-camera/default-image.js.map +0 -1
  722. package/dist/consoles/mock-camera/mock-camera.server.js +0 -160
  723. package/dist/consoles/mock-camera/mock-camera.server.js.map +0 -1
  724. package/dist/consoles/mock-octoprint.server.js +0 -499
  725. package/dist/consoles/mock-octoprint.server.js.map +0 -1
  726. package/dist/consoles/mock-prusalink.server.js +0 -57
  727. package/dist/consoles/mock-prusalink.server.js.map +0 -1
  728. package/dist/consoles/moonraker-test.console.js +0 -3
  729. package/dist/consoles/moonraker-test.console.js.map +0 -1
  730. package/dist/consoles/utils/api-messages.js +0 -856
  731. package/dist/consoles/utils/api-messages.js.map +0 -1
  732. package/dist/consoles/utils/delayed-memory.storage.js +0 -42
  733. package/dist/consoles/utils/delayed-memory.storage.js.map +0 -1
  734. package/dist/consoles/utils/ws-messages.js +0 -88
  735. package/dist/consoles/utils/ws-messages.js.map +0 -1
  736. package/dist/entities/index.js.map +0 -1
  737. package/dist/services/bambu/mqtt-message.types.js.map +0 -1
  738. package/dist/services/interfaces/auth.service.interface.js.map +0 -1
  739. package/dist/services/interfaces/camera-stream.service.interface.js.map +0 -1
  740. package/dist/services/interfaces/file-upload-tracker.interface.js.map +0 -1
  741. package/dist/services/interfaces/floor.service.interface.js.map +0 -1
  742. package/dist/services/interfaces/jwt.service.interface.js.map +0 -1
  743. package/dist/services/interfaces/permission.service.interface.js.map +0 -1
  744. package/dist/services/interfaces/printer-file.dto.js.map +0 -1
  745. package/dist/services/interfaces/printer-maintenance-log.dto.js.map +0 -1
  746. package/dist/services/interfaces/printer-tag.service.interface.js.map +0 -1
  747. package/dist/services/interfaces/printer.service.interface.js.map +0 -1
  748. package/dist/services/interfaces/refresh-token.service.interface.js.map +0 -1
  749. package/dist/services/interfaces/role-service.interface.js.map +0 -1
  750. package/dist/services/interfaces/settings.service.interface.js.map +0 -1
  751. package/dist/services/interfaces/tag.dto.js.map +0 -1
  752. package/dist/services/interfaces/task.interfaces.js.map +0 -1
  753. package/dist/services/interfaces/user-service.interface.js.map +0 -1
  754. package/dist/services/moonraker/dto/access/access-info.dto.js.map +0 -1
  755. package/dist/services/moonraker/dto/access/access-login-refresh.dto.js.map +0 -1
  756. package/dist/services/moonraker/dto/access/access-login-result.dto.js.map +0 -1
  757. package/dist/services/moonraker/dto/access/access-user-result.dto.js.map +0 -1
  758. package/dist/services/moonraker/dto/access/access-user.dto.js.map +0 -1
  759. package/dist/services/moonraker/dto/database/database-namespace-item.dto.js.map +0 -1
  760. package/dist/services/moonraker/dto/database/database-namespace-list.dto.js.map +0 -1
  761. package/dist/services/moonraker/dto/gcode-help.dto.js.map +0 -1
  762. package/dist/services/moonraker/dto/gcode-store.dto.js.map +0 -1
  763. package/dist/services/moonraker/dto/job-queue/enqueue-job.dto.js.map +0 -1
  764. package/dist/services/moonraker/dto/job-queue/job-queue-status.dto.js.map +0 -1
  765. package/dist/services/moonraker/dto/machine/machine-device-power-device-state.dto.js.map +0 -1
  766. package/dist/services/moonraker/dto/machine/machine-device-power-devices.dto.js.map +0 -1
  767. package/dist/services/moonraker/dto/machine/machine-peripherals-canbus.dto.js.map +0 -1
  768. package/dist/services/moonraker/dto/machine/machine-peripherals-serial.dto.js.map +0 -1
  769. package/dist/services/moonraker/dto/machine/machine-peripherals-usb.dto.js.map +0 -1
  770. package/dist/services/moonraker/dto/machine/machine-peripherals-video.dto.js.map +0 -1
  771. package/dist/services/moonraker/dto/machine/machine-system-info.dto.js.map +0 -1
  772. package/dist/services/moonraker/dto/machine/machine-update-status.dto.js.map +0 -1
  773. package/dist/services/moonraker/dto/machine/machine-wled-strips.dto.js.map +0 -1
  774. package/dist/services/moonraker/dto/notifier-list.dto.js.map +0 -1
  775. package/dist/services/moonraker/dto/objects/bed-mesh.dto.js.map +0 -1
  776. package/dist/services/moonraker/dto/objects/configfile.dto.js.map +0 -1
  777. package/dist/services/moonraker/dto/objects/display-status.dto.js.map +0 -1
  778. package/dist/services/moonraker/dto/objects/extruder.dto.js.map +0 -1
  779. package/dist/services/moonraker/dto/objects/fan.dto.js.map +0 -1
  780. package/dist/services/moonraker/dto/objects/filament-motion-sensor.dto.js.map +0 -1
  781. package/dist/services/moonraker/dto/objects/filament-switch-sensor.dto.js.map +0 -1
  782. package/dist/services/moonraker/dto/objects/gcode-move.dto.js.map +0 -1
  783. package/dist/services/moonraker/dto/objects/gcode.dto.js.map +0 -1
  784. package/dist/services/moonraker/dto/objects/heater-bed.dto.js.map +0 -1
  785. package/dist/services/moonraker/dto/objects/heaters.dto.js.map +0 -1
  786. package/dist/services/moonraker/dto/objects/mcu.dto.js.map +0 -1
  787. package/dist/services/moonraker/dto/objects/motion-report.dto.js.map +0 -1
  788. package/dist/services/moonraker/dto/objects/output-pin.dto.js.map +0 -1
  789. package/dist/services/moonraker/dto/objects/pause-resume.dto.js.map +0 -1
  790. package/dist/services/moonraker/dto/objects/printer-object.dto.js.map +0 -1
  791. package/dist/services/moonraker/dto/objects/printer-object.types.js.map +0 -1
  792. package/dist/services/moonraker/dto/objects/printer-objects-query.dto.js.map +0 -1
  793. package/dist/services/moonraker/dto/objects/stepper-enable.dto.js.map +0 -1
  794. package/dist/services/moonraker/dto/objects/system-stats.dto.js.map +0 -1
  795. package/dist/services/moonraker/dto/objects/temperature-fan.dto.js.map +0 -1
  796. package/dist/services/moonraker/dto/objects/temperature-sensor.dto.js.map +0 -1
  797. package/dist/services/moonraker/dto/objects/toolhead.dto.js.map +0 -1
  798. package/dist/services/moonraker/dto/objects/virtual-sdcard.dto.js.map +0 -1
  799. package/dist/services/moonraker/dto/objects/webhooks.dto.js.map +0 -1
  800. package/dist/services/moonraker/dto/octoprint-compat/api-job.dto.js.map +0 -1
  801. package/dist/services/moonraker/dto/octoprint-compat/api-login.dto.js.map +0 -1
  802. package/dist/services/moonraker/dto/octoprint-compat/api-printer.dto.js.map +0 -1
  803. package/dist/services/moonraker/dto/octoprint-compat/api-profiles.dto.js.map +0 -1
  804. package/dist/services/moonraker/dto/octoprint-compat/api-settings.dto.js.map +0 -1
  805. package/dist/services/moonraker/dto/octoprint-compat/api-version.dto.js.map +0 -1
  806. package/dist/services/moonraker/dto/octoprint-compat/server-version.dto.js.map +0 -1
  807. package/dist/services/moonraker/dto/printer-query-endstops.dto.js.map +0 -1
  808. package/dist/services/moonraker/dto/process-stats.dto.js.map +0 -1
  809. package/dist/services/moonraker/dto/rest/action-result.dto.js.map +0 -1
  810. package/dist/services/moonraker/dto/rest/error.dto.js.map +0 -1
  811. package/dist/services/moonraker/dto/rollover-logs.dto.js.map +0 -1
  812. package/dist/services/moonraker/dto/rpc/json-rpc-error.dto.js.map +0 -1
  813. package/dist/services/moonraker/dto/rpc/json-rpc-request.dto.js.map +0 -1
  814. package/dist/services/moonraker/dto/rpc/json-rpc-response.dto.js.map +0 -1
  815. package/dist/services/moonraker/dto/server/server-config.dto.js.map +0 -1
  816. package/dist/services/moonraker/dto/server-announcements/announcement-action.dto.js.map +0 -1
  817. package/dist/services/moonraker/dto/server-announcements/announcement-entry-id.dto.js.map +0 -1
  818. package/dist/services/moonraker/dto/server-announcements/announcement-feeds.dto.js.map +0 -1
  819. package/dist/services/moonraker/dto/server-announcements/announcement-list.dto.js.map +0 -1
  820. package/dist/services/moonraker/dto/server-files/server-file-directory-action.dto.js.map +0 -1
  821. package/dist/services/moonraker/dto/server-files/server-file-directory-info.dto.js.map +0 -1
  822. package/dist/services/moonraker/dto/server-files/server-file-metadata.dto.js.map +0 -1
  823. package/dist/services/moonraker/dto/server-files/server-file-root.dto.js.map +0 -1
  824. package/dist/services/moonraker/dto/server-files/server-file-thumbnail.dto.js.map +0 -1
  825. package/dist/services/moonraker/dto/server-files/server-file-zip-action.dto.js.map +0 -1
  826. package/dist/services/moonraker/dto/server-files/server-file.dto.js.map +0 -1
  827. package/dist/services/moonraker/dto/server-history/history-job.dto.js.map +0 -1
  828. package/dist/services/moonraker/dto/server-history/history-last-totals.dto.js.map +0 -1
  829. package/dist/services/moonraker/dto/server-history/history-list.dto.js.map +0 -1
  830. package/dist/services/moonraker/dto/server-history/history-totals.dto.js.map +0 -1
  831. package/dist/services/moonraker/dto/server-sensors/sensor-info.dto.js.map +0 -1
  832. package/dist/services/moonraker/dto/server-sensors/sensor-list.dto.js.map +0 -1
  833. package/dist/services/moonraker/dto/server-sensors/sensor-measurements.dto.js.map +0 -1
  834. package/dist/services/moonraker/dto/server-webcams/webcam-item.dto.js.map +0 -1
  835. package/dist/services/moonraker/dto/server-webcams/webcam-list.dto.js.map +0 -1
  836. package/dist/services/moonraker/dto/server-webcams/webcam-test.dto.js.map +0 -1
  837. package/dist/services/moonraker/dto/spoolman/spoolman-active-spool.dto.js.map +0 -1
  838. package/dist/services/moonraker/dto/spoolman/spoolman-proxy-request.dto.js.map +0 -1
  839. package/dist/services/moonraker/dto/spoolman/spoolman-response.dto.js.map +0 -1
  840. package/dist/services/moonraker/dto/spoolman/spoolman-status.dto.js.map +0 -1
  841. package/dist/services/moonraker/dto/sudo-info.dto.js.map +0 -1
  842. package/dist/services/moonraker/dto/sudo-response.dto.js.map +0 -1
  843. package/dist/services/moonraker/dto/temperature-store.dto.js.map +0 -1
  844. package/dist/services/moonraker/dto/websocket/connection-identify-response.dto.js.map +0 -1
  845. package/dist/services/moonraker/dto/websocket/connection-identify.dto.js.map +0 -1
  846. package/dist/services/moonraker/dto/websocket/json-rpc-event.dto.js.map +0 -1
  847. package/dist/services/moonraker/dto/websocket/message.types.js.map +0 -1
  848. package/dist/services/moonraker/dto/websocket/notify-active-spool-set.params.js.map +0 -1
  849. package/dist/services/moonraker/dto/websocket/notify-agent-event.params.js.map +0 -1
  850. package/dist/services/moonraker/dto/websocket/notify-announcement-update.params.js.map +0 -1
  851. package/dist/services/moonraker/dto/websocket/notify-announcement.params.js.map +0 -1
  852. package/dist/services/moonraker/dto/websocket/notify-button-event.params.js.map +0 -1
  853. package/dist/services/moonraker/dto/websocket/notify-history-changed.params.js.map +0 -1
  854. package/dist/services/moonraker/dto/websocket/notify-job-queue-changed.params.js.map +0 -1
  855. package/dist/services/moonraker/dto/websocket/notify-proc-stat-update.params.js.map +0 -1
  856. package/dist/services/moonraker/dto/websocket/notify-sensor-update.params.js.map +0 -1
  857. package/dist/services/moonraker/dto/websocket/notify-service-state-changed.params.js.map +0 -1
  858. package/dist/services/moonraker/dto/websocket/notify-spoolman-status-changed.js.map +0 -1
  859. package/dist/services/moonraker/dto/websocket/notify-sudo-alert.params.js.map +0 -1
  860. package/dist/services/moonraker/dto/websocket/notify-user-change.params.js.map +0 -1
  861. package/dist/services/octoprint/dto/access/user-list.dto.js.map +0 -1
  862. package/dist/services/octoprint/dto/access/user.dto.js.map +0 -1
  863. package/dist/services/octoprint/dto/auth/current-user.dto.js.map +0 -1
  864. package/dist/services/octoprint/dto/auth/login.dto.js.map +0 -1
  865. package/dist/services/octoprint/dto/connection/connection.dto.js.map +0 -1
  866. package/dist/services/octoprint/dto/events/client-authed.dto.js.map +0 -1
  867. package/dist/services/octoprint/dto/events/client-closed.dto.js.map +0 -1
  868. package/dist/services/octoprint/dto/events/client-opened.dto.js.map +0 -1
  869. package/dist/services/octoprint/dto/events/dwelling.dto.js.map +0 -1
  870. package/dist/services/octoprint/dto/events/file-added.dto.js.map +0 -1
  871. package/dist/services/octoprint/dto/events/file-deselected.dto.js.map +0 -1
  872. package/dist/services/octoprint/dto/events/file-removed.dto.js.map +0 -1
  873. package/dist/services/octoprint/dto/events/folder-added.dto.js.map +0 -1
  874. package/dist/services/octoprint/dto/events/home.dto.js.map +0 -1
  875. package/dist/services/octoprint/dto/events/metadata-analysis-finished.dto.js.map +0 -1
  876. package/dist/services/octoprint/dto/events/metadata-analysis-started.dto.js.map +0 -1
  877. package/dist/services/octoprint/dto/events/metadata-statistics-updated.dto.js.map +0 -1
  878. package/dist/services/octoprint/dto/events/position-update.dto.js.map +0 -1
  879. package/dist/services/octoprint/dto/events/print-cancelled.dto.js.map +0 -1
  880. package/dist/services/octoprint/dto/events/print-cancelling.dto.js.map +0 -1
  881. package/dist/services/octoprint/dto/events/print-done.dto.js.map +0 -1
  882. package/dist/services/octoprint/dto/events/print-failed.dto.js.map +0 -1
  883. package/dist/services/octoprint/dto/events/print-paused.dto.js.map +0 -1
  884. package/dist/services/octoprint/dto/events/print-resumed.dto.js.map +0 -1
  885. package/dist/services/octoprint/dto/events/print-started.dto.js.map +0 -1
  886. package/dist/services/octoprint/dto/events/printer-state-changed.dto.js.map +0 -1
  887. package/dist/services/octoprint/dto/events/transfer-done.dto.js.map +0 -1
  888. package/dist/services/octoprint/dto/events/transfer-started.dto.js.map +0 -1
  889. package/dist/services/octoprint/dto/events/updated-files.dto.js.map +0 -1
  890. package/dist/services/octoprint/dto/events/upload.dto.js.map +0 -1
  891. package/dist/services/octoprint/dto/events/user-logged-in.dto.js.map +0 -1
  892. package/dist/services/octoprint/dto/events/z-change.dto.js.map +0 -1
  893. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +0 -1
  894. package/dist/services/octoprint/dto/files/octoprint-file.dto.js.map +0 -1
  895. package/dist/services/octoprint/dto/files/octoprint-files-response.dto.js.map +0 -1
  896. package/dist/services/octoprint/dto/job/job.dto.js.map +0 -1
  897. package/dist/services/octoprint/dto/printer/busy-file.dto.js.map +0 -1
  898. package/dist/services/octoprint/dto/printer/current-printer-state.dto.js.map +0 -1
  899. package/dist/services/octoprint/dto/printer/flags.dto.js.map +0 -1
  900. package/dist/services/octoprint/dto/printer/markings.dto.js.map +0 -1
  901. package/dist/services/octoprint/dto/printer/progress.dto.js.map +0 -1
  902. package/dist/services/octoprint/dto/printer/resends.dto.js.map +0 -1
  903. package/dist/services/octoprint/dto/printer/state.dto.js.map +0 -1
  904. package/dist/services/octoprint/dto/printer/temps.dto.js.map +0 -1
  905. package/dist/services/octoprint/dto/rest/error.dto.js.map +0 -1
  906. package/dist/services/octoprint/dto/server/server.dto.js.map +0 -1
  907. package/dist/services/octoprint/dto/server/version.dto.js.map +0 -1
  908. package/dist/services/octoprint/dto/settings/serial-settings.dto.js.map +0 -1
  909. package/dist/services/octoprint/dto/settings/settings-parts.type.js.map +0 -1
  910. package/dist/services/octoprint/dto/settings/settings.dto.js.map +0 -1
  911. package/dist/services/octoprint/dto/settings/virtual-printer-settings.dto.js.map +0 -1
  912. package/dist/services/octoprint/dto/websocket/connection-message.dto.js.map +0 -1
  913. package/dist/services/octoprint/dto/websocket/current-message.dto.js.map +0 -1
  914. package/dist/services/octoprint/dto/websocket/event-message.dto.js.map +0 -1
  915. package/dist/services/octoprint/dto/websocket/history-message.dto.js.map +0 -1
  916. package/dist/services/octoprint/dto/websocket/plugin-message.dto.js.map +0 -1
  917. package/dist/services/octoprint/dto/websocket/timelapse-message.dto.js.map +0 -1
  918. package/dist/services/orm/base.interface.js.map +0 -1
  919. package/dist/services/prusa-link/dto/file-response.dto.js.map +0 -1
  920. package/dist/services/prusa-link/dto/file.dto.js.map +0 -1
  921. package/dist/services/prusa-link/dto/job-state.dto.js.map +0 -1
  922. package/dist/services/prusa-link/dto/printer-state.dto.js.map +0 -1
  923. package/dist/services/prusa-link/dto/status.dto.js.map +0 -1
  924. package/dist/services/prusa-link/dto/version.dto.js.map +0 -1
  925. package/dist/services/prusa-link/utils/digest-auth.params.js.map +0 -1
  926. package/dist/services/websocket-adapter.interface.js.map +0 -1
  927. package/dist/shared/dtos/socket-login.dto.js.map +0 -1
  928. package/dist/types/express/index.d.js.map +0 -1
  929. package/dist/utils/parsers/parser.types.js.map +0 -1
@@ -1,134 +1,93 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get createStaticLogger () {
13
- return createStaticLogger;
14
- },
15
- get getStaticLogger () {
16
- return getStaticLogger;
17
- },
18
- get logContextClassProperty () {
19
- return logContextClassProperty;
20
- }
21
- });
22
- const _winston = /*#__PURE__*/ _interop_require_default(require("winston"));
23
- const _nodeprocess = /*#__PURE__*/ _interop_require_default(require("node:process"));
24
- const _serverconstants = require("../../server.constants");
25
- const _lokiloggingtransport = require("./loki-logging.transport");
26
- const _fileloggingtransport = require("./file-logging.transport");
27
- const _envutils = require("../../utils/env.utils");
28
- function _interop_require_default(obj) {
29
- return obj && obj.__esModule ? obj : {
30
- default: obj
31
- };
32
- }
1
+ import { AppConstants } from "../../server.constants.js";
2
+ import { isDevelopmentEnvironment } from "../../utils/env.utils.js";
3
+ import { createLokiLoggingTransport } from "./loki-logging.transport.js";
4
+ import { createFileLoggingTransport } from "./file-logging.transport.js";
5
+ import winston from "winston";
6
+ import process from "node:process";
7
+ //#region src/handlers/logging/static.logger.ts
33
8
  let staticLogger = null;
34
9
  const levelMap = {
35
- error: "ERR",
36
- warn: "WRN",
37
- info: "INF",
38
- debug: "DBG",
39
- http: "HTT",
40
- verbose: "VRB",
41
- silly: "SLY"
10
+ error: "ERR",
11
+ warn: "WRN",
12
+ info: "INF",
13
+ debug: "DBG",
14
+ http: "HTT",
15
+ verbose: "VRB",
16
+ silly: "SLY"
42
17
  };
43
18
  const logContextClassProperty = "class";
44
19
  function getStaticLogger() {
45
- if (!staticLogger) {
46
- throw new Error("Logger not yet initialized.");
47
- }
48
- return staticLogger;
20
+ if (!staticLogger) throw new Error("Logger not yet initialized.");
21
+ return staticLogger;
49
22
  }
50
23
  function createStaticLogger(config) {
51
- if (staticLogger) {
52
- return;
53
- }
54
- const isProd = _nodeprocess.default.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultProductionEnv;
55
- const isTest = _nodeprocess.default.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultTestEnv;
56
- const effectiveLogLevel = isProd || isTest ? "warn" : "debug";
57
- const lokiTransport = (0, _lokiloggingtransport.createLokiLoggingTransport)({
58
- logLevel: effectiveLogLevel
59
- });
60
- const extraWinstonTransports = [];
61
- if (lokiTransport) {
62
- extraWinstonTransports.push(lokiTransport);
63
- }
64
- const fileLoggerTransport = (0, _fileloggingtransport.createFileLoggingTransport)({
65
- enabled: config.enableFileLogs,
66
- isTest
67
- });
68
- if (fileLoggerTransport) {
69
- extraWinstonTransports.push(fileLoggerTransport);
70
- }
71
- staticLogger = _winston.default.createLogger({
72
- transports: [
73
- ...extraWinstonTransports,
74
- new _winston.default.transports.Console({
75
- level: effectiveLogLevel,
76
- format: _winston.default.format.combine(...(0, _envutils.isDevelopmentEnvironment)() && _nodeprocess.default.env[_serverconstants.AppConstants.ENABLE_COLORED_LOGS_KEY] == "true" ? [
77
- _winston.default.format((info)=>{
78
- info.rawLevel = info.level;
79
- return info;
80
- })(),
81
- _winston.default.format.colorize({
82
- colors: {
83
- error: "red",
84
- warn: "yellow",
85
- info: "white",
86
- debug: "gray",
87
- http: "magenta",
88
- verbose: "cyan",
89
- silly: "gray"
90
- },
91
- level: true,
92
- message: true,
93
- all: false
94
- }),
95
- _winston.default.format.printf((info)=>{
96
- const now = new Date();
97
- const timestamp = `${now.toISOString().split("T")[0]} ${now.toTimeString().split(" ")[0]}.${now.getMilliseconds().toString().padStart(3, "0")}`;
98
- const levelAbbr = levelMap[info.rawLevel] ?? info.rawLevel.substring(0, 3).toUpperCase();
99
- const gray = "\x1b[90m";
100
- const reset = info.message.substring(0, 5) ?? "\x1b[0m";
101
- const numberRegex = /\b\d+\b/g;
102
- const coloredMessage = info.message.replace(numberRegex, (match)=>`\x1b[35m${match}${reset}`);
103
- const serviceName = info[logContextClassProperty] ?? "unknown";
104
- let logEntry = `${gray}[${timestamp} ${reset}${levelAbbr}${reset}${gray}]${reset} ${gray}[${reset}${serviceName}${gray}]${reset} ${coloredMessage}`;
105
- if (info.meta) {
106
- const metaString = JSON.stringify(info.meta);
107
- const coloredMeta = metaString.replace(numberRegex, (match)=>`\x1b[35m${match}${reset}`);
108
- logEntry += ` ${coloredMeta}`;
109
- }
110
- return logEntry;
111
- })
112
- ] : [])
113
- })
114
- ],
115
- format: _winston.default.format.printf((info)=>{
116
- const now = new Date();
117
- const timestamp = `${now.toISOString().split("T")[0]} ${now.toTimeString().split(" ")[0]}.${now.getMilliseconds().toString().padStart(3, "0")}`;
118
- const levelAbbr = levelMap[info.level] || `[${info.level.substring(0, 3).toUpperCase()}]`;
119
- const serviceName = info[logContextClassProperty] ?? "unknown";
120
- let message = `[${timestamp} ${levelAbbr}] [${serviceName}] ${info.message}`;
121
- if (info.meta) {
122
- const pascalCaseMeta = Object.entries(info.meta).reduce((acc, [key, value])=>{
123
- const pascalKey = key.charAt(0).toUpperCase() + key.slice(1);
124
- acc[pascalKey] = value;
125
- return acc;
126
- }, {});
127
- message += ` ${JSON.stringify(pascalCaseMeta)}`;
128
- }
129
- return message;
130
- })
131
- });
24
+ if (staticLogger) return;
25
+ const isProd = process.env[AppConstants.NODE_ENV_KEY] === AppConstants.defaultProductionEnv;
26
+ const isTest = process.env[AppConstants.NODE_ENV_KEY] === AppConstants.defaultTestEnv;
27
+ const effectiveLogLevel = isProd || isTest ? "warn" : "debug";
28
+ const lokiTransport = createLokiLoggingTransport({ logLevel: effectiveLogLevel });
29
+ const extraWinstonTransports = [];
30
+ if (lokiTransport) extraWinstonTransports.push(lokiTransport);
31
+ const fileLoggerTransport = createFileLoggingTransport({
32
+ enabled: config.enableFileLogs,
33
+ isTest
34
+ });
35
+ if (fileLoggerTransport) extraWinstonTransports.push(fileLoggerTransport);
36
+ staticLogger = winston.createLogger({
37
+ transports: [...extraWinstonTransports, new winston.transports.Console({
38
+ level: effectiveLogLevel,
39
+ format: winston.format.combine(...isDevelopmentEnvironment() && process.env[AppConstants.ENABLE_COLORED_LOGS_KEY] == "true" ? [
40
+ winston.format((info) => {
41
+ info.rawLevel = info.level;
42
+ return info;
43
+ })(),
44
+ winston.format.colorize({
45
+ colors: {
46
+ error: "red",
47
+ warn: "yellow",
48
+ info: "white",
49
+ debug: "gray",
50
+ http: "magenta",
51
+ verbose: "cyan",
52
+ silly: "gray"
53
+ },
54
+ level: true,
55
+ message: true,
56
+ all: false
57
+ }),
58
+ winston.format.printf((info) => {
59
+ const now = /* @__PURE__ */ new Date();
60
+ const timestamp = `${now.toISOString().split("T")[0]} ${now.toTimeString().split(" ")[0]}.${now.getMilliseconds().toString().padStart(3, "0")}`;
61
+ const levelAbbr = levelMap[info.rawLevel] ?? info.rawLevel.substring(0, 3).toUpperCase();
62
+ const gray = "\x1B[90m";
63
+ const reset = info.message.substring(0, 5) ?? "\x1B[0m";
64
+ const numberRegex = /\b\d+\b/g;
65
+ const coloredMessage = info.message.replace(numberRegex, (match) => `\x1b[35m${match}${reset}`);
66
+ let logEntry = `${gray}[${timestamp} ${reset}${levelAbbr}${reset}${gray}]${reset} ${gray}[${reset}${info["class"] ?? "unknown"}${gray}]${reset} ${coloredMessage}`;
67
+ if (info.meta) {
68
+ const coloredMeta = JSON.stringify(info.meta).replace(numberRegex, (match) => `\x1b[35m${match}${reset}`);
69
+ logEntry += ` ${coloredMeta}`;
70
+ }
71
+ return logEntry;
72
+ })
73
+ ] : [])
74
+ })],
75
+ format: winston.format.printf((info) => {
76
+ const now = /* @__PURE__ */ new Date();
77
+ let message = `[${`${now.toISOString().split("T")[0]} ${now.toTimeString().split(" ")[0]}.${now.getMilliseconds().toString().padStart(3, "0")}`} ${levelMap[info.level] || `[${info.level.substring(0, 3).toUpperCase()}]`}] [${info["class"] ?? "unknown"}] ${info.message}`;
78
+ if (info.meta) {
79
+ const pascalCaseMeta = Object.entries(info.meta).reduce((acc, [key, value]) => {
80
+ const pascalKey = key.charAt(0).toUpperCase() + key.slice(1);
81
+ acc[pascalKey] = value;
82
+ return acc;
83
+ }, {});
84
+ message += ` ${JSON.stringify(pascalCaseMeta)}`;
85
+ }
86
+ return message;
87
+ })
88
+ });
132
89
  }
90
+ //#endregion
91
+ export { createStaticLogger, getStaticLogger, logContextClassProperty };
133
92
 
134
93
  //# sourceMappingURL=static.logger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/handlers/logging/static.logger.ts"],"names":["createStaticLogger","getStaticLogger","logContextClassProperty","staticLogger","levelMap","error","warn","info","debug","http","verbose","silly","Error","config","isProd","process","env","AppConstants","NODE_ENV_KEY","defaultProductionEnv","isTest","defaultTestEnv","effectiveLogLevel","lokiTransport","createLokiLoggingTransport","logLevel","extraWinstonTransports","push","fileLoggerTransport","createFileLoggingTransport","enabled","enableFileLogs","winston","createLogger","transports","Console","level","format","combine","isDevelopmentEnvironment","ENABLE_COLORED_LOGS_KEY","rawLevel","colorize","colors","message","all","printf","now","Date","timestamp","toISOString","split","toTimeString","getMilliseconds","toString","padStart","levelAbbr","substring","toUpperCase","gray","reset","numberRegex","coloredMessage","replace","match","serviceName","logEntry","meta","metaString","JSON","stringify","coloredMeta","pascalCaseMeta","Object","entries","reduce","acc","key","value","pascalKey","charAt","slice"],"mappings":"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"}
1
+ {"version":3,"file":"static.logger.js","names":[],"sources":["../../../src/handlers/logging/static.logger.ts"],"sourcesContent":["import winston from \"winston\";\nimport process from \"node:process\";\nimport { AppConstants } from \"@/server.constants\";\nimport { createLokiLoggingTransport } from \"@/handlers/logging/loki-logging.transport\";\nimport { createFileLoggingTransport } from \"@/handlers/logging/file-logging.transport\";\nimport { isDevelopmentEnvironment } from \"@/utils/env.utils\";\n\nlet staticLogger: winston.Logger | null = null;\n\nexport interface StaticLoggerConfig {\n enableFileLogs: boolean;\n}\n\nconst levelMap: Record<string, string> = {\n error: \"ERR\",\n warn: \"WRN\",\n info: \"INF\",\n debug: \"DBG\",\n http: \"HTT\",\n verbose: \"VRB\",\n silly: \"SLY\",\n};\n\nexport const logContextClassProperty = \"class\";\n\nexport function getStaticLogger() {\n if (!staticLogger) {\n throw new Error(\"Logger not yet initialized.\");\n }\n\n return staticLogger;\n}\n\nexport function createStaticLogger(config: StaticLoggerConfig) {\n if (staticLogger) {\n return;\n }\n\n const isProd = process.env[AppConstants.NODE_ENV_KEY] === AppConstants.defaultProductionEnv;\n const isTest = process.env[AppConstants.NODE_ENV_KEY] === AppConstants.defaultTestEnv;\n\n const effectiveLogLevel = isProd || isTest ? \"warn\" : \"debug\";\n\n const lokiTransport = createLokiLoggingTransport({\n logLevel: effectiveLogLevel,\n });\n\n const extraWinstonTransports: winston.transport[] = [];\n if (lokiTransport) {\n extraWinstonTransports.push(lokiTransport);\n }\n\n const fileLoggerTransport = createFileLoggingTransport({\n enabled: config.enableFileLogs,\n isTest,\n });\n if (fileLoggerTransport) {\n extraWinstonTransports.push(fileLoggerTransport);\n }\n\n staticLogger = winston.createLogger({\n transports: [\n ...extraWinstonTransports,\n // Always include console transport\n new winston.transports.Console({\n level: effectiveLogLevel,\n format: winston.format.combine(\n ...(isDevelopmentEnvironment() && process.env[AppConstants.ENABLE_COLORED_LOGS_KEY] == \"true\"\n ? [\n // Store the original level before colorization\n winston.format((info) => {\n info.rawLevel = info.level;\n return info;\n })(),\n winston.format.colorize({\n colors: {\n error: \"red\",\n warn: \"yellow\",\n info: \"white\",\n debug: \"gray\",\n http: \"magenta\",\n verbose: \"cyan\",\n silly: \"gray\",\n },\n level: true,\n message: true, // Don't colorize the whole message\n all: false,\n }),\n winston.format.printf((info) => {\n // Format timestamp similar to Serilog (ISO with milliseconds)\n const now = new Date();\n const timestamp = `${now.toISOString().split(\"T\")[0]} ${now.toTimeString().split(\" \")[0]}.${now.getMilliseconds().toString().padStart(3, \"0\")}`;\n\n // Get colored level from winston\n // @ts-ignore\n const levelAbbr = levelMap[info.rawLevel] ?? info.rawLevel.substring(0, 3).toUpperCase();\n\n // Apply custom coloring using ANSI color codes\n const gray = \"\\x1b[90m\"; // Dim/gray\n const reset = (info.message as string).substring(0, 5) ?? \"\\x1b[0m\"; // Reset\n const numberRegex = /\\b\\d+\\b/g;\n\n // Apply purple color to numbers in the message\n const coloredMessage = (info.message as string).replace(\n numberRegex,\n (match) => `\\x1b[35m${match}${reset}`,\n );\n\n const serviceName = info[logContextClassProperty] ?? \"unknown\";\n\n // Format the log entry with gray timestamp and brackets, colored level, and message with purple numbers\n let logEntry = `${gray}[${timestamp} ${reset}${levelAbbr}${reset}${gray}]${reset} ${gray}[${reset}${serviceName}${gray}]${reset} ${coloredMessage}`;\n\n // Add metadata if present\n if (info.meta) {\n // Add metadata with numbers colorized in purple\n const metaString = JSON.stringify(info.meta);\n const coloredMeta = metaString.replace(numberRegex, (match) => `\\x1b[35m${match}${reset}`);\n logEntry += ` ${coloredMeta}`;\n }\n\n return logEntry;\n }),\n ]\n : []),\n ),\n }),\n ],\n format: winston.format.printf((info) => {\n // Format timestamp similar to Serilog (ISO with milliseconds)\n const now = new Date();\n const timestamp = `${now.toISOString().split(\"T\")[0]} ${now.toTimeString().split(\" \")[0]}.${now.getMilliseconds().toString().padStart(3, \"0\")}`;\n\n const levelAbbr = levelMap[info.level] || `[${info.level.substring(0, 3).toUpperCase()}]`;\n\n const serviceName = info[logContextClassProperty] ?? \"unknown\";\n let message = `[${timestamp} ${levelAbbr}] [${serviceName}] ${info.message}`;\n\n // Add metadata if present, without dash separator\n if (info.meta) {\n // Convert camelCase to PascalCase for C# style\n const pascalCaseMeta = Object.entries(info.meta).reduce(\n (acc, [key, value]) => {\n const pascalKey = key.charAt(0).toUpperCase() + key.slice(1);\n acc[pascalKey] = value;\n return acc;\n },\n {} as Record<string, any>,\n );\n\n message += ` ${JSON.stringify(pascalCaseMeta)}`;\n }\n\n return message;\n }),\n });\n}\n"],"mappings":"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"}
@@ -1,31 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get validateInput () {
13
- return validateInput;
14
- },
15
- get validateMiddleware () {
16
- return validateMiddleware;
17
- }
18
- });
19
- const _runtimeexceptions = require("../exceptions/runtime.exceptions");
1
+ import { ValidationException } from "../exceptions/runtime.exceptions.js";
2
+ //#region src/handlers/validators.ts
20
3
  async function validateInput(data, zodSchema) {
21
- const result = await zodSchema.safeParseAsync(data);
22
- if (!result.success) {
23
- throw new _runtimeexceptions.ValidationException(result.error);
24
- }
25
- return result.data;
4
+ const result = await zodSchema.safeParseAsync(data);
5
+ if (!result.success) throw new ValidationException(result.error);
6
+ return result.data;
26
7
  }
27
8
  async function validateMiddleware(req, zodSchema) {
28
- return validateInput(req.body, zodSchema);
9
+ return validateInput(req.body, zodSchema);
29
10
  }
11
+ //#endregion
12
+ export { validateInput, validateMiddleware };
30
13
 
31
14
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/handlers/validators.ts"],"names":["validateInput","validateMiddleware","data","zodSchema","result","safeParseAsync","success","ValidationException","error","req","body"],"mappings":";;;;;;;;;;;QAIsBA;eAAAA;;QASAC;eAAAA;;;mCAZc;AAG7B,eAAeD,cAAoBE,IAAO,EAAEC,SAAuB;IACxE,MAAMC,SAAS,MAAMD,UAAUE,cAAc,CAACH;IAE9C,IAAI,CAACE,OAAOE,OAAO,EAAE;QACnB,MAAM,IAAIC,sCAAmB,CAACH,OAAOI,KAAK;IAC5C;IACA,OAAOJ,OAAOF,IAAI;AACpB;AAEO,eAAeD,mBAAyBQ,GAAe,EAAEN,SAAuB;IACrF,OAAOH,cAAcS,IAAIC,IAAI,EAAEP;AACjC"}
1
+ {"version":3,"file":"validators.js","names":[],"sources":["../../src/handlers/validators.ts"],"sourcesContent":["import type { Request } from \"express\";\nimport { ValidationException } from \"@/exceptions/runtime.exceptions\";\nimport { ZodSchema } from \"zod\";\n\nexport async function validateInput<I, S>(data: I, zodSchema: ZodSchema<S>): Promise<S> {\n const result = await zodSchema.safeParseAsync(data);\n\n if (!result.success) {\n throw new ValidationException(result.error);\n }\n return result.data;\n}\n\nexport async function validateMiddleware<I, S>(req: Request<I>, zodSchema: ZodSchema<S>): Promise<S> {\n return validateInput(req.body, zodSchema);\n}\n"],"mappings":";;AAIA,eAAsB,cAAoB,MAAS,WAAqC;CACtF,MAAM,SAAS,MAAM,UAAU,eAAe,KAAK;AAEnD,KAAI,CAAC,OAAO,QACV,OAAM,IAAI,oBAAoB,OAAO,MAAM;AAE7C,QAAO,OAAO;;AAGhB,eAAsB,mBAAyB,KAAiB,WAAqC;AACnG,QAAO,cAAc,IAAI,MAAM,UAAU"}
package/dist/index.js CHANGED
@@ -1,32 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _node = require("@sentry/node");
6
- const _serverenv = require("./server.env");
7
- const _servercore = require("./server.core");
8
- const _containertokens = require("./container.tokens");
9
- const _logger = require("./handlers/logger");
10
- const _staticlogger = require("./handlers/logging/static.logger");
11
- (0, _staticlogger.createStaticLogger)({
12
- enableFileLogs: true
13
- });
14
- const logger = new _logger.LoggerService("FDM-Environment");
1
+ import { DITokens } from "./container.tokens.js";
2
+ import { createStaticLogger } from "./handlers/logging/static.logger.js";
3
+ import { LoggerService } from "./handlers/logger.js";
4
+ import { setupEnvConfig } from "./server.env.js";
5
+ import { setupServer } from "./server.core.js";
6
+ import { captureException, flush } from "@sentry/node";
7
+ //#region src/index.ts
8
+ createStaticLogger({ enableFileLogs: true });
9
+ const logger = new LoggerService("FDM-Environment");
15
10
  logger.log("✓ Parsed environment with (optional) .env file, created static logger");
16
- (0, _serverenv.setupEnvConfig)();
17
- process.on("uncaughtException", (err)=>{
18
- logger.error("Uncaught exception", err);
11
+ setupEnvConfig();
12
+ process.on("uncaughtException", (err) => {
13
+ logger.error("Uncaught exception", err);
19
14
  });
20
- process.on("unhandledRejection", (reason)=>{
21
- logger.error("Unhandled promise rejection", reason);
15
+ process.on("unhandledRejection", (reason) => {
16
+ logger.error("Unhandled promise rejection", reason);
22
17
  });
23
- (0, _servercore.setupServer)().then(({ httpServer, container })=>{
24
- container.resolve(_containertokens.DITokens.serverHost).boot(httpServer).catch(async (e)=>{
25
- console.error("Server has crashed unintentionally - please report this", e);
26
- (0, _node.captureException)(e);
27
- await (0, _node.flush)(0);
28
- process.exit(1);
29
- });
18
+ setupServer().then(({ httpServer, container }) => {
19
+ container.resolve(DITokens.serverHost).boot(httpServer).catch(async (e) => {
20
+ console.error("Server has crashed unintentionally - please report this", e);
21
+ captureException(e);
22
+ await flush(0);
23
+ process.exit(1);
24
+ });
30
25
  });
26
+ //#endregion
27
+ export {};
31
28
 
32
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["createStaticLogger","enableFileLogs","logger","Logger","log","setupEnvConfig","process","on","err","error","reason","setupServer","then","httpServer","container","resolve","DITokens","serverHost","boot","catch","e","console","captureException","flush","exit"],"mappings":";;;;sBAEwC;2BACT;4BACH;iCACH;wBAEe;8BACL;AAGnCA,IAAAA,gCAAkB,EAAC;IAAEC,gBAAgB;AAAK;AAC1C,MAAMC,SAAS,IAAIC,qBAAM,CAAC;AAC1BD,OAAOE,GAAG,CAAC;AAEXC,IAAAA,yBAAc;AAEdC,QAAQC,EAAE,CAAC,qBAAqB,CAACC;IAC/BN,OAAOO,KAAK,CAAC,sBAAsBD;AACrC;AAEAF,QAAQC,EAAE,CAAC,sBAAsB,CAACG;IAChCR,OAAOO,KAAK,CAAC,+BAA+BC;AAC9C;AAEAC,IAAAA,uBAAW,IAAGC,IAAI,CAAC,CAAC,EAAEC,UAAU,EAAEC,SAAS,EAAE;IAC3CA,UACGC,OAAO,CAAaC,yBAAQ,CAACC,UAAU,EACvCC,IAAI,CAACL,YACLM,KAAK,CAAC,OAAOC;QACZC,QAAQZ,KAAK,CAAC,2DAA2DW;QAEzEE,IAAAA,sBAAgB,EAACF;QACjB,MAAMG,IAAAA,WAAK,EAAC;QACZjB,QAAQkB,IAAI,CAAC;IACf;AACJ"}
1
+ {"version":3,"file":"index.js","names":["Logger"],"sources":["../src/index.ts"],"sourcesContent":["import { captureException, flush } from \"@sentry/node\";\nimport { setupEnvConfig } from \"./server.env\";\nimport { setupServer } from \"./server.core\";\nimport { DITokens } from \"./container.tokens\";\nimport { ServerHost } from \"@/server.host\";\nimport { LoggerService as Logger } from \"@/handlers/logger\";\nimport { createStaticLogger } from \"@/handlers/logging/static.logger\";\n\ncreateStaticLogger({ enableFileLogs: true });\nconst logger = new Logger(\"FDM-Environment\");\nlogger.log(\"✓ Parsed environment with (optional) .env file, created static logger\");\n\nsetupEnvConfig();\n\nprocess.on(\"uncaughtException\", (err) => {\n logger.error(\"Uncaught exception\", err);\n});\n\nprocess.on(\"unhandledRejection\", (reason) => {\n logger.error(\"Unhandled promise rejection\", reason);\n});\n\nsetupServer().then(({ httpServer, container }) => {\n container\n .resolve<ServerHost>(DITokens.serverHost)\n .boot(httpServer)\n .catch(async (e: Error) => {\n console.error(\"Server has crashed unintentionally - please report this\", e);\n\n captureException(e);\n await flush(0);\n process.exit(1);\n });\n});\n"],"mappings":";;;;;;;AAQA,mBAAmB,EAAE,gBAAgB,MAAM,CAAC;AAC5C,MAAM,SAAS,IAAIA,cAAO,kBAAkB;AAC5C,OAAO,IAAI,wEAAwE;AAEnF,gBAAgB;AAEhB,QAAQ,GAAG,sBAAsB,QAAQ;AACvC,QAAO,MAAM,sBAAsB,IAAI;EACvC;AAEF,QAAQ,GAAG,uBAAuB,WAAW;AAC3C,QAAO,MAAM,+BAA+B,OAAO;EACnD;AAEF,aAAa,CAAC,MAAM,EAAE,YAAY,gBAAgB;AAChD,WACG,QAAoB,SAAS,WAAW,CACxC,KAAK,WAAW,CAChB,MAAM,OAAO,MAAa;AACzB,UAAQ,MAAM,2DAA2D,EAAE;AAE3E,mBAAiB,EAAE;AACnB,QAAM,MAAM,EAAE;AACd,UAAQ,KAAK,EAAE;GACf;EACJ"}
@@ -1,74 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
1
+ import { AuthenticationError, AuthorizationError } from "../exceptions/runtime.exceptions.js";
2
+ import { AUTH_ERROR_REASON } from "../constants/authorization.constants.js";
3
+ import { inject } from "awilix-express";
4
+ //#region src/middleware/authenticate.ts
5
+ const authenticate = () => inject((authService, loggerFactory, settingsStore) => async (req, res, next) => {
6
+ const logger = loggerFactory("Middleware:authenticate");
7
+ if (!await settingsStore.getLoginRequired()) return next();
8
+ if (req.user?.needsPasswordChange) throw new AuthenticationError("Password change required", AUTH_ERROR_REASON.PasswordChangeRequired);
9
+ const bearer = req.headers.authorization?.replace("Bearer ", "") || void 0;
10
+ if (!!bearer?.length && authService.isJwtTokenBlacklisted(bearer)) throw new AuthenticationError("Not authenticated", AUTH_ERROR_REASON.LoginRequired);
11
+ if (req.isAuthenticated()) return next();
12
+ logger.log(`Not authenticated for route: ${req.originalUrl}`);
13
+ throw new AuthenticationError("Not authenticated", AUTH_ERROR_REASON.InvalidOrExpiredAuthToken);
4
14
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get authenticate () {
13
- return authenticate;
14
- },
15
- get authorizeRoles () {
16
- return authorizeRoles;
17
- },
18
- get permission () {
19
- return permission;
20
- }
21
- });
22
- const _awilixexpress = require("awilix-express");
23
- const _runtimeexceptions = require("../exceptions/runtime.exceptions");
24
- const _authorizationconstants = require("../constants/authorization.constants");
25
- const authenticate = ()=>(0, _awilixexpress.inject)((authService, loggerFactory, settingsStore)=>async (req, res, next)=>{
26
- const logger = loggerFactory("Middleware:authenticate");
27
- const isLoginRequired = await settingsStore.getLoginRequired();
28
- if (!isLoginRequired) {
29
- return next();
30
- }
31
- if (req.user?.needsPasswordChange) {
32
- throw new _runtimeexceptions.AuthenticationError("Password change required", _authorizationconstants.AUTH_ERROR_REASON.PasswordChangeRequired);
33
- }
34
- const bearer = req.headers.authorization?.replace("Bearer ", "") || undefined;
35
- if (!!bearer?.length && authService.isJwtTokenBlacklisted(bearer)) {
36
- throw new _runtimeexceptions.AuthenticationError("Not authenticated", _authorizationconstants.AUTH_ERROR_REASON.LoginRequired);
37
- }
38
- if (req.isAuthenticated()) {
39
- return next();
40
- }
41
- logger.log(`Not authenticated for route: ${req.originalUrl}`);
42
- throw new _runtimeexceptions.AuthenticationError("Not authenticated", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredAuthToken);
43
- });
44
15
  function permission(requiredPermission) {
45
- return (0, _awilixexpress.inject)((permissionService, roleService)=>async (req, _res, next)=>{
46
- const userRoles = req.roles;
47
- if (!userRoles?.length) {
48
- throw new _runtimeexceptions.AuthorizationError({
49
- permissions: [
50
- requiredPermission
51
- ]
52
- });
53
- }
54
- const assignedPermissions = roleService.getRolesPermissions(userRoles);
55
- if (!permissionService.authorizePermission(requiredPermission, assignedPermissions)) {
56
- throw new _runtimeexceptions.AuthorizationError({
57
- permissions: [
58
- requiredPermission
59
- ]
60
- });
61
- }
62
- next();
63
- });
16
+ return inject((permissionService, roleService) => async (req, _res, next) => {
17
+ const userRoles = req.roles;
18
+ if (!userRoles?.length) throw new AuthorizationError({ permissions: [requiredPermission] });
19
+ const assignedPermissions = roleService.getRolesPermissions(userRoles);
20
+ if (!permissionService.authorizePermission(requiredPermission, assignedPermissions)) throw new AuthorizationError({ permissions: [requiredPermission] });
21
+ next();
22
+ });
64
23
  }
65
- const authorizeRoles = (requiredRoles, subset = true)=>(0, _awilixexpress.inject)((roleService)=>async (req, res, next)=>{
66
- if (!req.roles?.length || !roleService.authorizeRoles(requiredRoles, req.roles, subset)) {
67
- throw new _runtimeexceptions.AuthorizationError({
68
- roles: requiredRoles
69
- });
70
- }
71
- next();
72
- });
24
+ const authorizeRoles = (requiredRoles, subset = true) => inject((roleService) => async (req, res, next) => {
25
+ if (!req.roles?.length || !roleService.authorizeRoles(requiredRoles, req.roles, subset)) throw new AuthorizationError({ roles: requiredRoles });
26
+ next();
27
+ });
28
+ //#endregion
29
+ export { authenticate, authorizeRoles, permission };
73
30
 
74
31
  //# sourceMappingURL=authenticate.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/authenticate.ts"],"names":["authenticate","authorizeRoles","permission","inject","authService","loggerFactory","settingsStore","req","res","next","logger","isLoginRequired","getLoginRequired","user","needsPasswordChange","AuthenticationError","AUTH_ERROR_REASON","PasswordChangeRequired","bearer","headers","authorization","replace","undefined","length","isJwtTokenBlacklisted","LoginRequired","isAuthenticated","log","originalUrl","InvalidOrExpiredAuthToken","requiredPermission","permissionService","roleService","_res","userRoles","roles","AuthorizationError","permissions","assignedPermissions","getRolesPermissions","authorizePermission","requiredRoles","subset"],"mappings":";;;;;;;;;;;QAUaA;eAAAA;;QAkDAC;eAAAA;;QAnBGC;eAAAA;;;+BAzCO;mCACiC;wCAEI;AAOrD,MAAMF,eAAe,IAC1BG,IAAAA,qBAAM,EACJ,CAACC,aAA0BC,eAA+BC,gBACxD,OAAOC,KAAcC,KAAeC;YAClC,MAAMC,SAASL,cAAc;YAE7B,MAAMM,kBAAkB,MAAML,cAAcM,gBAAgB;YAC5D,IAAI,CAACD,iBAAiB;gBACpB,OAAOF;YACT;YAGA,IAAIF,IAAIM,IAAI,EAAEC,qBAAqB;gBACjC,MAAM,IAAIC,sCAAmB,CAAC,4BAA4BC,yCAAiB,CAACC,sBAAsB;YACpG;YAGA,MAAMC,SAASX,IAAIY,OAAO,CAACC,aAAa,EAAEC,QAAQ,WAAW,OAAOC;YACpE,IAAI,CAAC,CAACJ,QAAQK,UAAUnB,YAAYoB,qBAAqB,CAACN,SAAS;gBACjE,MAAM,IAAIH,sCAAmB,CAAC,qBAAqBC,yCAAiB,CAACS,aAAa;YACpF;YAEA,IAAIlB,IAAImB,eAAe,IAAI;gBACzB,OAAOjB;YACT;YAEAC,OAAOiB,GAAG,CAAC,CAAC,6BAA6B,EAAEpB,IAAIqB,WAAW,EAAE;YAC5D,MAAM,IAAIb,sCAAmB,CAAC,qBAAqBC,yCAAiB,CAACa,yBAAyB;QAChG;AAGC,SAAS3B,WAAW4B,kBAAkC;IAC3D,OAAO3B,IAAAA,qBAAM,EACX,CAAC4B,mBAAuCC,cACtC,OAAOzB,KAAc0B,MAAgBxB;YACnC,MAAMyB,YAAY3B,IAAI4B,KAAK;YAC3B,IAAI,CAACD,WAAWX,QAAQ;gBACtB,MAAM,IAAIa,qCAAkB,CAAC;oBAAEC,aAAa;wBAACP;qBAAmB;gBAAC;YACnE;YAEA,MAAMQ,sBAAsBN,YAAYO,mBAAmB,CAACL;YAC5D,IAAI,CAACH,kBAAkBS,mBAAmB,CAACV,oBAAoBQ,sBAAsB;gBACnF,MAAM,IAAIF,qCAAkB,CAAC;oBAAEC,aAAa;wBAACP;qBAAmB;gBAAC;YACnE;YAEArB;QACF;AAEN;AAEO,MAAMR,iBAAiB,CAACwC,eAA2BC,SAAS,IAAI,GACrEvC,IAAAA,qBAAM,EAAC,CAAC6B,cAA8B,OAAOzB,KAAcC,KAAeC;YACxE,IAAI,CAACF,IAAI4B,KAAK,EAAEZ,UAAU,CAACS,YAAY/B,cAAc,CAACwC,eAAelC,IAAI4B,KAAK,EAAEO,SAAS;gBACvF,MAAM,IAAIN,qCAAkB,CAAC;oBAAED,OAAOM;gBAAc;YACtD;YAEAhC;QACF"}
1
+ {"version":3,"file":"authenticate.js","names":[],"sources":["../../src/middleware/authenticate.ts"],"sourcesContent":["import { inject } from \"awilix-express\";\nimport { AuthenticationError, AuthorizationError } from \"@/exceptions/runtime.exceptions\";\nimport type { NextFunction, Request, Response } from \"express\";\nimport { AUTH_ERROR_REASON, type PermissionName, type RoleName } from \"@/constants/authorization.constants\";\nimport { SettingsStore } from \"@/state/settings.store\";\nimport { AuthService } from \"@/services/authentication/auth.service\";\nimport type { ILoggerFactory } from \"@/handlers/logger-factory\";\nimport type { IRoleService } from \"@/services/interfaces/role-service.interface\";\nimport type { IPermissionService } from \"@/services/interfaces/permission.service.interface\";\n\nexport const authenticate = () =>\n inject(\n (authService: AuthService, loggerFactory: ILoggerFactory, settingsStore: SettingsStore) =>\n async (req: Request, res: Response, next: NextFunction) => {\n const logger = loggerFactory(\"Middleware:authenticate\");\n\n const isLoginRequired = await settingsStore.getLoginRequired();\n if (!isLoginRequired) {\n return next();\n }\n\n // Check if a password change is required\n if (req.user?.needsPasswordChange) {\n throw new AuthenticationError(\"Password change required\", AUTH_ERROR_REASON.PasswordChangeRequired);\n }\n\n // Check if a logout was called\n const bearer = req.headers.authorization?.replace(\"Bearer \", \"\") || undefined;\n if (!!bearer?.length && authService.isJwtTokenBlacklisted(bearer)) {\n throw new AuthenticationError(\"Not authenticated\", AUTH_ERROR_REASON.LoginRequired);\n }\n\n if (req.isAuthenticated()) {\n return next();\n }\n\n logger.log(`Not authenticated for route: ${req.originalUrl}`);\n throw new AuthenticationError(\"Not authenticated\", AUTH_ERROR_REASON.InvalidOrExpiredAuthToken);\n },\n );\n\nexport function permission(requiredPermission: PermissionName) {\n return inject(\n (permissionService: IPermissionService, roleService: IRoleService) =>\n async (req: Request, _res: Response, next: NextFunction) => {\n const userRoles = req.roles;\n if (!userRoles?.length) {\n throw new AuthorizationError({ permissions: [requiredPermission] });\n }\n\n const assignedPermissions = roleService.getRolesPermissions(userRoles);\n if (!permissionService.authorizePermission(requiredPermission, assignedPermissions)) {\n throw new AuthorizationError({ permissions: [requiredPermission] });\n }\n\n next();\n },\n );\n}\n\nexport const authorizeRoles = (requiredRoles: RoleName[], subset = true) =>\n inject((roleService: IRoleService) => async (req: Request, res: Response, next: NextFunction) => {\n if (!req.roles?.length || !roleService.authorizeRoles(requiredRoles, req.roles, subset)) {\n throw new AuthorizationError({ roles: requiredRoles });\n }\n\n next();\n });\n"],"mappings":";;;;AAUA,MAAa,qBACX,QACG,aAA0B,eAA+B,kBACxD,OAAO,KAAc,KAAe,SAAuB;CACzD,MAAM,SAAS,cAAc,0BAA0B;AAGvD,KAAI,CAAC,MADyB,cAAc,kBAAkB,CAE5D,QAAO,MAAM;AAIf,KAAI,IAAI,MAAM,oBACZ,OAAM,IAAI,oBAAoB,4BAA4B,kBAAkB,uBAAuB;CAIrG,MAAM,SAAS,IAAI,QAAQ,eAAe,QAAQ,WAAW,GAAG,IAAI,KAAA;AACpE,KAAI,CAAC,CAAC,QAAQ,UAAU,YAAY,sBAAsB,OAAO,CAC/D,OAAM,IAAI,oBAAoB,qBAAqB,kBAAkB,cAAc;AAGrF,KAAI,IAAI,iBAAiB,CACvB,QAAO,MAAM;AAGf,QAAO,IAAI,gCAAgC,IAAI,cAAc;AAC7D,OAAM,IAAI,oBAAoB,qBAAqB,kBAAkB,0BAA0B;EAEpG;AAEH,SAAgB,WAAW,oBAAoC;AAC7D,QAAO,QACJ,mBAAuC,gBACtC,OAAO,KAAc,MAAgB,SAAuB;EAC1D,MAAM,YAAY,IAAI;AACtB,MAAI,CAAC,WAAW,OACd,OAAM,IAAI,mBAAmB,EAAE,aAAa,CAAC,mBAAmB,EAAE,CAAC;EAGrE,MAAM,sBAAsB,YAAY,oBAAoB,UAAU;AACtE,MAAI,CAAC,kBAAkB,oBAAoB,oBAAoB,oBAAoB,CACjF,OAAM,IAAI,mBAAmB,EAAE,aAAa,CAAC,mBAAmB,EAAE,CAAC;AAGrE,QAAM;GAEX;;AAGH,MAAa,kBAAkB,eAA2B,SAAS,SACjE,QAAQ,gBAA8B,OAAO,KAAc,KAAe,SAAuB;AAC/F,KAAI,CAAC,IAAI,OAAO,UAAU,CAAC,YAAY,eAAe,eAAe,IAAI,OAAO,OAAO,CACrF,OAAM,IAAI,mBAAmB,EAAE,OAAO,eAAe,CAAC;AAGxD,OAAM;EACN"}
@@ -1,26 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "interceptDatabaseError", {
6
- enumerable: true,
7
- get: function() {
8
- return interceptDatabaseError;
9
- }
10
- });
11
- const _containertokens = require("../container.tokens");
1
+ import { DITokens } from "../container.tokens.js";
2
+ //#region src/middleware/database.ts
3
+ /**
4
+ * 0 = disconnected, 1 = connected, 2 = connecting, 3 = disconnecting
5
+ */
12
6
  async function interceptDatabaseError(req, res, next) {
13
- const serverHost = req.container.resolve(_containertokens.DITokens.serverHost);
14
- const databaseReadyState = serverHost.hasConnected();
15
- if (databaseReadyState === 1) {
16
- next();
17
- } else {
18
- res.status(500);
19
- res.send({
20
- databaseReadyState: serverHost.hasConnected(),
21
- state: "Retrying database connection. Please contact the developer if this persists."
22
- });
23
- }
7
+ const serverHost = req.container.resolve(DITokens.serverHost);
8
+ if (serverHost.hasConnected() === 1) next();
9
+ else {
10
+ res.status(500);
11
+ res.send({
12
+ databaseReadyState: serverHost.hasConnected(),
13
+ state: "Retrying database connection. Please contact the developer if this persists."
14
+ });
15
+ }
24
16
  }
17
+ //#endregion
18
+ export { interceptDatabaseError };
25
19
 
26
20
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/database.ts"],"names":["interceptDatabaseError","req","res","next","serverHost","container","resolve","DITokens","databaseReadyState","hasConnected","status","send","state"],"mappings":";;;;+BAMsBA;;;eAAAA;;;iCANG;AAMlB,eAAeA,uBAAuBC,GAAkB,EAAEC,GAAa,EAAEC,IAAkB;IAChG,MAAMC,aAAaH,IAAII,SAAS,CAACC,OAAO,CAACC,yBAAQ,CAACH,UAAU;IAE5D,MAAMI,qBAAqBJ,WAAWK,YAAY;IAClD,IAAID,uBAAuB,GAAG;QAC5BL;IACF,OAAO;QACLD,IAAIQ,MAAM,CAAC;QACXR,IAAIS,IAAI,CAAC;YACPH,oBAAoBJ,WAAWK,YAAY;YAC3CG,OAAO;QACT;IACF;AACF"}
1
+ {"version":3,"file":"database.js","names":[],"sources":["../../src/middleware/database.ts"],"sourcesContent":["import { DITokens } from \"@/container.tokens\";\nimport type { NextFunction, Request, Response } from \"express\";\n\n/**\n * 0 = disconnected, 1 = connected, 2 = connecting, 3 = disconnecting\n */\nexport async function interceptDatabaseError(req: any | Request, res: Response, next: NextFunction) {\n const serverHost = req.container.resolve(DITokens.serverHost);\n\n const databaseReadyState = serverHost.hasConnected();\n if (databaseReadyState === 1) {\n next();\n } else {\n res.status(500);\n res.send({\n databaseReadyState: serverHost.hasConnected(),\n state: \"Retrying database connection. Please contact the developer if this persists.\",\n });\n }\n}\n"],"mappings":";;;;;AAMA,eAAsB,uBAAuB,KAAoB,KAAe,MAAoB;CAClG,MAAM,aAAa,IAAI,UAAU,QAAQ,SAAS,WAAW;AAG7D,KAD2B,WAAW,cAChB,KAAK,EACzB,OAAM;MACD;AACL,MAAI,OAAO,IAAI;AACf,MAAI,KAAK;GACP,oBAAoB,WAAW,cAAc;GAC7C,OAAO;GACR,CAAC"}