@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,40 +1,32 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "HttpClientFactory", {
6
- enumerable: true,
7
- get: function() {
8
- return HttpClientFactory;
9
- }
10
- });
11
- const _defaulthttpclientbuilder = require("../../shared/default-http-client.builder");
12
- class HttpClientFactory {
13
- settingsStore;
14
- constructor(settingsStore){
15
- this.settingsStore = settingsStore;
16
- }
17
- createClient(base, buildFluentOptions) {
18
- base.withMaxBodyLength(1000 * 1000 * 1000);
19
- base.withMaxContentLength(1000 * 1000 * 1000);
20
- base.withTimeout(this.settingsStore.getTimeoutSettings().apiTimeout);
21
- if (buildFluentOptions) {
22
- buildFluentOptions(base);
23
- }
24
- return base.build();
25
- }
26
- createDefaultClient(buildFluentOptions) {
27
- const builder = new _defaulthttpclientbuilder.DefaultHttpClientBuilder();
28
- return this.createClient(builder, buildFluentOptions);
29
- }
30
- createClientWithBaseUrl(base, baseAddress, buildFluentOptions) {
31
- return this.createClient(base, (builder)=>{
32
- builder.withBaseUrl(baseAddress);
33
- if (buildFluentOptions) {
34
- buildFluentOptions(base);
35
- }
36
- });
37
- }
38
- }
1
+ import { DefaultHttpClientBuilder } from "../../shared/default-http-client.builder.js";
2
+ //#region src/services/core/http-client.factory.ts
3
+ var HttpClientFactory = class {
4
+ constructor(settingsStore) {
5
+ this.settingsStore = settingsStore;
6
+ }
7
+ createClient(base, buildFluentOptions) {
8
+ base.withMaxBodyLength(1e3 * 1e3 * 1e3);
9
+ base.withMaxContentLength(1e3 * 1e3 * 1e3);
10
+ base.withTimeout(this.settingsStore.getTimeoutSettings().apiTimeout);
11
+ if (buildFluentOptions) buildFluentOptions(base);
12
+ return base.build();
13
+ }
14
+ /**
15
+ * Build a default http client with DefaultHttpClientBuilder.
16
+ * @param buildFluentOptions customize the client with builder options of DefaultHttpClientBuilder.
17
+ */
18
+ createDefaultClient(buildFluentOptions) {
19
+ const builder = new DefaultHttpClientBuilder();
20
+ return this.createClient(builder, buildFluentOptions);
21
+ }
22
+ createClientWithBaseUrl(base, baseAddress, buildFluentOptions) {
23
+ return this.createClient(base, (builder) => {
24
+ builder.withBaseUrl(baseAddress);
25
+ if (buildFluentOptions) buildFluentOptions(base);
26
+ });
27
+ }
28
+ };
29
+ //#endregion
30
+ export { HttpClientFactory };
39
31
 
40
32
  //# sourceMappingURL=http-client.factory.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/core/http-client.factory.ts"],"names":["HttpClientFactory","settingsStore","createClient","base","buildFluentOptions","withMaxBodyLength","withMaxContentLength","withTimeout","getTimeoutSettings","apiTimeout","build","createDefaultClient","builder","DefaultHttpClientBuilder","createClientWithBaseUrl","baseAddress","withBaseUrl"],"mappings":";;;;+BAIaA;;;eAAAA;;;0CAJ4B;AAIlC,MAAMA;;IACX,YAAY,AAAiBC,aAA4B,CAAE;aAA9BA,gBAAAA;IAA+B;IAE5DC,aAAiDC,IAAO,EAAEC,kBAAsC,EAAE;QAChGD,KAAKE,iBAAiB,CAAC,OAAO,OAAO;QACrCF,KAAKG,oBAAoB,CAAC,OAAO,OAAO;QACxCH,KAAKI,WAAW,CAAC,IAAI,CAACN,aAAa,CAACO,kBAAkB,GAAGC,UAAU;QAEnE,IAAIL,oBAAoB;YACtBA,mBAAmBD;QACrB;QAEA,OAAOA,KAAKO,KAAK;IACnB;IAMAC,oBAAoBP,kBAA6D,EAAE;QACjF,MAAMQ,UAAU,IAAIC,kDAAwB;QAC5C,OAAO,IAAI,CAACX,YAAY,CAACU,SAASR;IACpC;IAEAU,wBACEX,IAAO,EACPY,WAAmB,EACnBX,kBAAsC,EACvB;QACf,OAAO,IAAI,CAACF,YAAY,CAACC,MAAM,CAACS;YAC9BA,QAAQI,WAAW,CAACD;YAEpB,IAAIX,oBAAoB;gBACtBA,mBAAmBD;YACrB;QACF;IACF;AACF"}
1
+ {"version":3,"file":"http-client.factory.js","names":[],"sources":["../../../src/services/core/http-client.factory.ts"],"sourcesContent":["import { DefaultHttpClientBuilder } from \"@/shared/default-http-client.builder\";\nimport { AxiosInstance } from \"axios\";\nimport { SettingsStore } from \"@/state/settings.store\";\n\nexport class HttpClientFactory {\n constructor(private readonly settingsStore: SettingsStore) {}\n\n createClient<T extends DefaultHttpClientBuilder>(base: T, buildFluentOptions?: (base: T) => void) {\n base.withMaxBodyLength(1000 * 1000 * 1000);\n base.withMaxContentLength(1000 * 1000 * 1000);\n base.withTimeout(this.settingsStore.getTimeoutSettings().apiTimeout);\n\n if (buildFluentOptions) {\n buildFluentOptions(base);\n }\n\n return base.build();\n }\n\n /**\n * Build a default http client with DefaultHttpClientBuilder.\n * @param buildFluentOptions customize the client with builder options of DefaultHttpClientBuilder.\n */\n createDefaultClient(buildFluentOptions?: (base: DefaultHttpClientBuilder) => void) {\n const builder = new DefaultHttpClientBuilder();\n return this.createClient(builder, buildFluentOptions);\n }\n\n createClientWithBaseUrl<T extends DefaultHttpClientBuilder>(\n base: T,\n baseAddress: string,\n buildFluentOptions?: (base: T) => void,\n ): AxiosInstance {\n return this.createClient(base, (builder) => {\n builder.withBaseUrl(baseAddress);\n\n if (buildFluentOptions) {\n buildFluentOptions(base);\n }\n });\n }\n}\n"],"mappings":";;AAIA,IAAa,oBAAb,MAA+B;CAC7B,YAAY,eAA+C;AAA9B,OAAA,gBAAA;;CAE7B,aAAiD,MAAS,oBAAwC;AAChG,OAAK,kBAAkB,MAAO,MAAO,IAAK;AAC1C,OAAK,qBAAqB,MAAO,MAAO,IAAK;AAC7C,OAAK,YAAY,KAAK,cAAc,oBAAoB,CAAC,WAAW;AAEpE,MAAI,mBACF,oBAAmB,KAAK;AAG1B,SAAO,KAAK,OAAO;;;;;;CAOrB,oBAAoB,oBAA+D;EACjF,MAAM,UAAU,IAAI,0BAA0B;AAC9C,SAAO,KAAK,aAAa,SAAS,mBAAmB;;CAGvD,wBACE,MACA,aACA,oBACe;AACf,SAAO,KAAK,aAAa,OAAO,YAAY;AAC1C,WAAQ,YAAY,YAAY;AAEhC,OAAI,mBACF,oBAAmB,KAAK;IAE1B"}
@@ -1,86 +1,63 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "LogDumpService", {
6
- enumerable: true,
7
- get: function() {
8
- return LogDumpService;
9
- }
10
- });
11
- const _admzip = /*#__PURE__*/ _interop_require_default(require("adm-zip"));
12
- const _nodepath = require("node:path");
13
- const _nodefs = require("node:fs");
14
- const _serverconstants = require("../../server.constants");
15
- const _timeutils = require("../../utils/time.utils");
16
- const _fsutils = require("../../utils/fs.utils");
17
- function _interop_require_default(obj) {
18
- return obj && obj.__esModule ? obj : {
19
- default: obj
20
- };
21
- }
22
- class LogDumpService {
23
- logger;
24
- constructor(loggerFactory){
25
- this.logger = loggerFactory(LogDumpService.name);
26
- }
27
- async deleteOlderThanWeekAndMismatchingLogFiles() {
28
- this.logger.log("Cleaning log files");
29
- const path = (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultLogsFolder);
30
- const dirEntries = (0, _nodefs.readdirSync)(path, {
31
- withFileTypes: true
32
- });
33
- const files = dirEntries.filter((dirent)=>dirent.isFile()).map((dirent)=>dirent.name);
34
- const startingFormat = `${_serverconstants.AppConstants.logAppName}-`;
35
- const removedFilesNotInFormat = files.filter((f)=>f.endsWith(".log") && !f.startsWith(startingFormat));
36
- const removedFilesOutdated = files.filter((f)=>{
37
- const matchesFormat = f.endsWith(".log") && f.startsWith(startingFormat);
38
- if (!matchesFormat) return false;
39
- const strippedFilename = f.replace(".log", "").replace(startingFormat, "");
40
- if (!(0, _timeutils.isParsableDate)(strippedFilename)) {
41
- this.logger.warn("Failed to parse date from log file, removing it as outdated");
42
- return true;
43
- }
44
- const date = new Date(strippedFilename);
45
- const now = new Date();
46
- const diff = now.getTime() - date.getTime();
47
- const diffDays = diff / (1000 * 3600 * 24);
48
- return diffDays > 7;
49
- });
50
- this.logger.log(`Removing ${removedFilesNotInFormat.length} files that are not in the format of ${startingFormat}<date>.log, and ${removedFilesOutdated.length} files that are older than 7 days`);
51
- let removedWrongFormatFilesCount = 0;
52
- for (const file of removedFilesNotInFormat){
53
- try {
54
- (0, _nodefs.rmSync)((0, _nodepath.join)(path, file));
55
- removedWrongFormatFilesCount++;
56
- } catch (err) {
57
- this.logger.warn(`Failed to delete log file`);
58
- }
59
- }
60
- let removedOutdatedFilesCount = 0;
61
- for (const file of removedFilesOutdated){
62
- try {
63
- (0, _nodefs.rmSync)((0, _nodepath.join)(path, file));
64
- removedOutdatedFilesCount++;
65
- } catch (err) {
66
- this.logger.warn(`Failed to delete log file`);
67
- }
68
- }
69
- this.logger.log(`Removed ${removedWrongFormatFilesCount + removedOutdatedFilesCount} log file(s)`);
70
- return {
71
- removedWrongFormatFilesCount,
72
- removedOutdatedFilesCount
73
- };
74
- }
75
- async dumpZip() {
76
- this.logger.log("Dumping logs as ZIP");
77
- const zip = new _admzip.default();
78
- const path = (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultLogsFolder);
79
- zip.addLocalFolder(path, "/logs", (filename)=>filename.endsWith(".log"));
80
- const outputPath = (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultLogZipsFolder, `logs-${_serverconstants.AppConstants.serverRepoName}.zip`);
81
- zip.writeZip(outputPath);
82
- return outputPath;
83
- }
84
- }
1
+ import { AppConstants } from "../../server.constants.js";
2
+ import { getMediaPath } from "../../utils/fs.utils.js";
3
+ import { isParsableDate } from "../../utils/time.utils.js";
4
+ import { join } from "node:path";
5
+ import { readdirSync, rmSync } from "node:fs";
6
+ import AdmZip from "adm-zip";
7
+ //#region src/services/core/logs-manager.service.ts
8
+ var LogDumpService = class LogDumpService {
9
+ logger;
10
+ constructor(loggerFactory) {
11
+ this.logger = loggerFactory(LogDumpService.name);
12
+ }
13
+ async deleteOlderThanWeekAndMismatchingLogFiles() {
14
+ this.logger.log("Cleaning log files");
15
+ const path = join(getMediaPath(), AppConstants.defaultLogsFolder);
16
+ const files = readdirSync(path, { withFileTypes: true }).filter((dirent) => dirent.isFile()).map((dirent) => dirent.name);
17
+ const startingFormat = `${AppConstants.logAppName}-`;
18
+ const removedFilesNotInFormat = files.filter((f) => f.endsWith(".log") && !f.startsWith(startingFormat));
19
+ const removedFilesOutdated = files.filter((f) => {
20
+ if (!(f.endsWith(".log") && f.startsWith(startingFormat))) return false;
21
+ const strippedFilename = f.replace(".log", "").replace(startingFormat, "");
22
+ if (!isParsableDate(strippedFilename)) {
23
+ this.logger.warn("Failed to parse date from log file, removing it as outdated");
24
+ return true;
25
+ }
26
+ const date = new Date(strippedFilename);
27
+ return ((/* @__PURE__ */ new Date()).getTime() - date.getTime()) / (1e3 * 3600 * 24) > 7;
28
+ });
29
+ this.logger.log(`Removing ${removedFilesNotInFormat.length} files that are not in the format of ${startingFormat}<date>.log, and ${removedFilesOutdated.length} files that are older than 7 days`);
30
+ let removedWrongFormatFilesCount = 0;
31
+ for (const file of removedFilesNotInFormat) try {
32
+ rmSync(join(path, file));
33
+ removedWrongFormatFilesCount++;
34
+ } catch (err) {
35
+ this.logger.warn(`Failed to delete log file`);
36
+ }
37
+ let removedOutdatedFilesCount = 0;
38
+ for (const file of removedFilesOutdated) try {
39
+ rmSync(join(path, file));
40
+ removedOutdatedFilesCount++;
41
+ } catch (err) {
42
+ this.logger.warn(`Failed to delete log file`);
43
+ }
44
+ this.logger.log(`Removed ${removedWrongFormatFilesCount + removedOutdatedFilesCount} log file(s)`);
45
+ return {
46
+ removedWrongFormatFilesCount,
47
+ removedOutdatedFilesCount
48
+ };
49
+ }
50
+ async dumpZip() {
51
+ this.logger.log("Dumping logs as ZIP");
52
+ const zip = new AdmZip();
53
+ const path = join(getMediaPath(), AppConstants.defaultLogsFolder);
54
+ zip.addLocalFolder(path, "/logs", (filename) => filename.endsWith(".log"));
55
+ const outputPath = join(getMediaPath(), AppConstants.defaultLogZipsFolder, `logs-${AppConstants.serverRepoName}.zip`);
56
+ zip.writeZip(outputPath);
57
+ return outputPath;
58
+ }
59
+ };
60
+ //#endregion
61
+ export { LogDumpService };
85
62
 
86
63
  //# sourceMappingURL=logs-manager.service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/core/logs-manager.service.ts"],"names":["LogDumpService","logger","loggerFactory","name","deleteOlderThanWeekAndMismatchingLogFiles","log","path","join","getMediaPath","AppConstants","defaultLogsFolder","dirEntries","readdirSync","withFileTypes","files","filter","dirent","isFile","map","startingFormat","logAppName","removedFilesNotInFormat","f","endsWith","startsWith","removedFilesOutdated","matchesFormat","strippedFilename","replace","isParsableDate","warn","date","Date","now","diff","getTime","diffDays","length","removedWrongFormatFilesCount","file","rmSync","err","removedOutdatedFilesCount","dumpZip","zip","AdmZip","addLocalFolder","filename","outputPath","defaultLogZipsFolder","serverRepoName","writeZip"],"mappings":"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"}
1
+ {"version":3,"file":"logs-manager.service.js","names":[],"sources":["../../../src/services/core/logs-manager.service.ts"],"sourcesContent":["import AdmZip from \"adm-zip\";\nimport { join } from \"node:path\";\nimport { rmSync, readdirSync } from \"node:fs\";\nimport { AppConstants } from \"@/server.constants\";\nimport { isParsableDate } from \"@/utils/time.utils\";\nimport { LoggerService } from \"@/handlers/logger\";\nimport type { ILoggerFactory } from \"@/handlers/logger-factory\";\nimport { getMediaPath } from \"@/utils/fs.utils\";\n\nexport class LogDumpService {\n private readonly logger: LoggerService;\n\n constructor(loggerFactory: ILoggerFactory) {\n this.logger = loggerFactory(LogDumpService.name);\n }\n\n async deleteOlderThanWeekAndMismatchingLogFiles() {\n this.logger.log(\"Cleaning log files\");\n const path = join(getMediaPath(), AppConstants.defaultLogsFolder);\n const dirEntries = readdirSync(path, { withFileTypes: true });\n const files = dirEntries.filter((dirent) => dirent.isFile()).map((dirent) => dirent.name);\n\n // Filter only log files that are not in the format of logs/<app-name>-<date>.log\n const startingFormat = `${AppConstants.logAppName}-`;\n const removedFilesNotInFormat = files.filter((f) => f.endsWith(\".log\") && !f.startsWith(startingFormat));\n const removedFilesOutdated = files.filter((f) => {\n const matchesFormat = f.endsWith(\".log\") && f.startsWith(startingFormat);\n if (!matchesFormat) return false;\n\n const strippedFilename = f.replace(\".log\", \"\").replace(startingFormat, \"\");\n if (!isParsableDate(strippedFilename)) {\n this.logger.warn(\"Failed to parse date from log file, removing it as outdated\");\n return true;\n }\n\n const date = new Date(strippedFilename);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const diffDays = diff / (1000 * 3600 * 24);\n return diffDays > 7;\n });\n\n this.logger.log(\n `Removing ${removedFilesNotInFormat.length} files that are not in the format of ${startingFormat}<date>.log, and ${removedFilesOutdated.length} files that are older than 7 days`,\n );\n\n let removedWrongFormatFilesCount = 0;\n for (const file of removedFilesNotInFormat) {\n try {\n rmSync(join(path, file));\n removedWrongFormatFilesCount++;\n } catch (err) {\n this.logger.warn(`Failed to delete log file`);\n }\n }\n\n let removedOutdatedFilesCount = 0;\n for (const file of removedFilesOutdated) {\n try {\n rmSync(join(path, file));\n removedOutdatedFilesCount++;\n } catch (err) {\n this.logger.warn(`Failed to delete log file`);\n }\n }\n\n this.logger.log(`Removed ${removedWrongFormatFilesCount + removedOutdatedFilesCount} log file(s)`);\n return {\n removedWrongFormatFilesCount,\n removedOutdatedFilesCount,\n };\n }\n\n async dumpZip() {\n this.logger.log(\"Dumping logs as ZIP\");\n const zip = new AdmZip();\n const path = join(getMediaPath(), AppConstants.defaultLogsFolder);\n zip.addLocalFolder(path, \"/logs\", (filename) => filename.endsWith(\".log\"));\n\n const outputPath = join(\n getMediaPath(),\n AppConstants.defaultLogZipsFolder,\n `logs-${AppConstants.serverRepoName}.zip`,\n );\n zip.writeZip(outputPath);\n return outputPath;\n }\n}\n"],"mappings":";;;;;;;AASA,IAAa,iBAAb,MAAa,eAAe;CAC1B;CAEA,YAAY,eAA+B;AACzC,OAAK,SAAS,cAAc,eAAe,KAAK;;CAGlD,MAAM,4CAA4C;AAChD,OAAK,OAAO,IAAI,qBAAqB;EACrC,MAAM,OAAO,KAAK,cAAc,EAAE,aAAa,kBAAkB;EAEjE,MAAM,QADa,YAAY,MAAM,EAAE,eAAe,MAAM,CACpC,CAAC,QAAQ,WAAW,OAAO,QAAQ,CAAC,CAAC,KAAK,WAAW,OAAO,KAAK;EAGzF,MAAM,iBAAiB,GAAG,aAAa,WAAW;EAClD,MAAM,0BAA0B,MAAM,QAAQ,MAAM,EAAE,SAAS,OAAO,IAAI,CAAC,EAAE,WAAW,eAAe,CAAC;EACxG,MAAM,uBAAuB,MAAM,QAAQ,MAAM;AAE/C,OAAI,EADkB,EAAE,SAAS,OAAO,IAAI,EAAE,WAAW,eAAe,EACpD,QAAO;GAE3B,MAAM,mBAAmB,EAAE,QAAQ,QAAQ,GAAG,CAAC,QAAQ,gBAAgB,GAAG;AAC1E,OAAI,CAAC,eAAe,iBAAiB,EAAE;AACrC,SAAK,OAAO,KAAK,8DAA8D;AAC/E,WAAO;;GAGT,MAAM,OAAO,IAAI,KAAK,iBAAiB;AAIvC,4BAFa,IADG,MACA,EAAC,SAAS,GAAG,KAAK,SAAS,KAClB,MAAO,OAAO,MACrB;IAClB;AAEF,OAAK,OAAO,IACV,YAAY,wBAAwB,OAAO,uCAAuC,eAAe,kBAAkB,qBAAqB,OAAO,mCAChJ;EAED,IAAI,+BAA+B;AACnC,OAAK,MAAM,QAAQ,wBACjB,KAAI;AACF,UAAO,KAAK,MAAM,KAAK,CAAC;AACxB;WACO,KAAK;AACZ,QAAK,OAAO,KAAK,4BAA4B;;EAIjD,IAAI,4BAA4B;AAChC,OAAK,MAAM,QAAQ,qBACjB,KAAI;AACF,UAAO,KAAK,MAAM,KAAK,CAAC;AACxB;WACO,KAAK;AACZ,QAAK,OAAO,KAAK,4BAA4B;;AAIjD,OAAK,OAAO,IAAI,WAAW,+BAA+B,0BAA0B,cAAc;AAClG,SAAO;GACL;GACA;GACD;;CAGH,MAAM,UAAU;AACd,OAAK,OAAO,IAAI,sBAAsB;EACtC,MAAM,MAAM,IAAI,QAAQ;EACxB,MAAM,OAAO,KAAK,cAAc,EAAE,aAAa,kBAAkB;AACjE,MAAI,eAAe,MAAM,UAAU,aAAa,SAAS,SAAS,OAAO,CAAC;EAE1E,MAAM,aAAa,KACjB,cAAc,EACd,aAAa,sBACb,QAAQ,aAAa,eAAe,MACrC;AACD,MAAI,SAAS,WAAW;AACxB,SAAO"}
@@ -1,38 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "MonsterPiService", {
6
- enumerable: true,
7
- get: function() {
8
- return MonsterPiService;
9
- }
10
- });
11
- const _node = require("@sentry/node");
12
- const _fs = require("fs");
13
- const _serverconstants = require("../../server.constants");
14
- class MonsterPiService {
15
- monsterPiVersion = null;
16
- logger;
17
- fileLocation = _serverconstants.AppConstants.monsterPiFilePath;
18
- constructor(loggerFactory){
19
- this.logger = loggerFactory(MonsterPiService.name);
20
- }
21
- getMonsterPiVersionSafe() {
22
- const fileExists = (0, _fs.existsSync)(this.fileLocation);
23
- if (!fileExists) {
24
- return null;
25
- }
26
- try {
27
- const contents = (0, _fs.readFileSync)(this.fileLocation);
28
- this.monsterPiVersion = contents.toString().replaceAll(" ", "");
29
- return this.monsterPiVersion;
30
- } catch (e) {
31
- this.logger.warn("Error checking MonsterPi version");
32
- (0, _node.captureException)(e);
33
- }
34
- return null;
35
- }
36
- }
1
+ import { AppConstants } from "../../server.constants.js";
2
+ import { captureException } from "@sentry/node";
3
+ import { existsSync, readFileSync } from "fs";
4
+ //#region src/services/core/monsterpi.service.ts
5
+ var MonsterPiService = class MonsterPiService {
6
+ monsterPiVersion = null;
7
+ logger;
8
+ fileLocation = AppConstants.monsterPiFilePath;
9
+ constructor(loggerFactory) {
10
+ this.logger = loggerFactory(MonsterPiService.name);
11
+ }
12
+ getMonsterPiVersionSafe() {
13
+ if (!existsSync(this.fileLocation)) return null;
14
+ try {
15
+ const contents = readFileSync(this.fileLocation);
16
+ this.monsterPiVersion = contents.toString().replaceAll(" ", "");
17
+ return this.monsterPiVersion;
18
+ } catch (e) {
19
+ this.logger.warn("Error checking MonsterPi version");
20
+ captureException(e);
21
+ }
22
+ return null;
23
+ }
24
+ };
25
+ //#endregion
26
+ export { MonsterPiService };
37
27
 
38
28
  //# sourceMappingURL=monsterpi.service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/core/monsterpi.service.ts"],"names":["MonsterPiService","monsterPiVersion","logger","fileLocation","AppConstants","monsterPiFilePath","loggerFactory","name","getMonsterPiVersionSafe","fileExists","existsSync","contents","readFileSync","toString","replaceAll","e","warn","captureException"],"mappings":";;;;+BAKaA;;;eAAAA;;;sBALoB;oBACQ;iCACZ;AAGtB,MAAMA;IACHC,mBAAkC,KAAK;IAC9BC,OAAO;IACPC,eAAeC,6BAAY,CAACC,iBAAiB,CAAC;IAE/D,YAAYC,aAA6B,CAAE;QACzC,IAAI,CAACJ,MAAM,GAAGI,cAAcN,iBAAiBO,IAAI;IACnD;IAEAC,0BAA0B;QACxB,MAAMC,aAAaC,IAAAA,cAAU,EAAC,IAAI,CAACP,YAAY;QAC/C,IAAI,CAACM,YAAY;YACf,OAAO;QACT;QAEA,IAAI;YACF,MAAME,WAAWC,IAAAA,gBAAY,EAAC,IAAI,CAACT,YAAY;YAC/C,IAAI,CAACF,gBAAgB,GAAGU,SAASE,QAAQ,GAAGC,UAAU,CAAC,KAAK;YAC5D,OAAO,IAAI,CAACb,gBAAgB;QAC9B,EAAE,OAAOc,GAAG;YACV,IAAI,CAACb,MAAM,CAACc,IAAI,CAAC;YACjBC,IAAAA,sBAAgB,EAACF;QACnB;QACA,OAAO;IACT;AACF"}
1
+ {"version":3,"file":"monsterpi.service.js","names":[],"sources":["../../../src/services/core/monsterpi.service.ts"],"sourcesContent":["import { captureException } from \"@sentry/node\";\nimport { existsSync, readFileSync } from \"fs\";\nimport { AppConstants } from \"@/server.constants\";\nimport type { ILoggerFactory } from \"@/handlers/logger-factory\";\n\nexport class MonsterPiService {\n private monsterPiVersion: string | null = null;\n private readonly logger;\n private readonly fileLocation = AppConstants.monsterPiFilePath;\n\n constructor(loggerFactory: ILoggerFactory) {\n this.logger = loggerFactory(MonsterPiService.name);\n }\n\n getMonsterPiVersionSafe() {\n const fileExists = existsSync(this.fileLocation);\n if (!fileExists) {\n return null;\n }\n\n try {\n const contents = readFileSync(this.fileLocation);\n this.monsterPiVersion = contents.toString().replaceAll(\" \", \"\");\n return this.monsterPiVersion;\n } catch (e) {\n this.logger.warn(\"Error checking MonsterPi version\");\n captureException(e);\n }\n return null;\n }\n}\n"],"mappings":";;;;AAKA,IAAa,mBAAb,MAAa,iBAAiB;CAC5B,mBAA0C;CAC1C;CACA,eAAgC,aAAa;CAE7C,YAAY,eAA+B;AACzC,OAAK,SAAS,cAAc,iBAAiB,KAAK;;CAGpD,0BAA0B;AAExB,MAAI,CADe,WAAW,KAAK,aACpB,CACb,QAAO;AAGT,MAAI;GACF,MAAM,WAAW,aAAa,KAAK,aAAa;AAChD,QAAK,mBAAmB,SAAS,UAAU,CAAC,WAAW,KAAK,GAAG;AAC/D,UAAO,KAAK;WACL,GAAG;AACV,QAAK,OAAO,KAAK,mCAAmC;AACpD,oBAAiB,EAAE;;AAErB,SAAO"}
@@ -1,131 +1,71 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "MulterService", {
6
- enumerable: true,
7
- get: function() {
8
- return MulterService;
9
- }
10
- });
11
- const _multer = /*#__PURE__*/ _interop_require_wildcard(require("multer"));
12
- const _nodepath = require("node:path");
13
- const _nodefs = require("node:fs");
14
- const _fsutils = require("../../utils/fs.utils");
15
- const _serverconstants = require("../../server.constants");
16
- const _errorutils = require("../../utils/error.utils");
17
- const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
18
- function _getRequireWildcardCache(nodeInterop) {
19
- if (typeof WeakMap !== "function") return null;
20
- var cacheBabelInterop = new WeakMap();
21
- var cacheNodeInterop = new WeakMap();
22
- return (_getRequireWildcardCache = function(nodeInterop) {
23
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
24
- })(nodeInterop);
25
- }
26
- function _interop_require_wildcard(obj, nodeInterop) {
27
- if (!nodeInterop && obj && obj.__esModule) {
28
- return obj;
29
- }
30
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
31
- return {
32
- default: obj
33
- };
34
- }
35
- var cache = _getRequireWildcardCache(nodeInterop);
36
- if (cache && cache.has(obj)) {
37
- return cache.get(obj);
38
- }
39
- var newObj = {
40
- __proto__: null
41
- };
42
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
43
- for(var key in obj){
44
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
45
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
46
- if (desc && (desc.get || desc.set)) {
47
- Object.defineProperty(newObj, key, desc);
48
- } else {
49
- newObj[key] = obj[key];
50
- }
51
- }
52
- }
53
- newObj.default = obj;
54
- if (cache) {
55
- cache.set(obj, newObj);
56
- }
57
- return newObj;
58
- }
59
- class MulterService {
60
- fileUploadTrackerCache;
61
- logger;
62
- constructor(loggerFactory, fileUploadTrackerCache){
63
- this.fileUploadTrackerCache = fileUploadTrackerCache;
64
- this.logger = loggerFactory(MulterService.name);
65
- }
66
- startTrackingSession(multerFile, printerId) {
67
- return this.fileUploadTrackerCache.addUploadTracker(multerFile, printerId);
68
- }
69
- clearUploadsFolder() {
70
- const fileUploadsPath = (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultFileUploadsStorage);
71
- if (!(0, _nodefs.existsSync)(fileUploadsPath)) return;
72
- const files = (0, _nodefs.readdirSync)(fileUploadsPath, {
73
- withFileTypes: true
74
- }).filter((item)=>!item.isDirectory()).map((item)=>item.name);
75
- for (const file of files){
76
- try {
77
- (0, _nodefs.rmSync)((0, _nodepath.join)(fileUploadsPath, file));
78
- } catch (error) {
79
- this.logger.error(`Could not clear upload file in temporary folder ${(0, _errorutils.errorSummary)(error)}`);
80
- }
81
- }
82
- }
83
- clearUploadedFile(multerFile) {
84
- if ((0, _nodefs.existsSync)(multerFile.path)) {
85
- (0, _nodefs.rmSync)(multerFile.path);
86
- } else {
87
- this.logger.warn("Cannot unlink temporarily uploaded file as it was not found");
88
- }
89
- }
90
- getMulterGCodeFileFilter(storeAsFile = true) {
91
- return this.getMulterFileFilter(storeAsFile);
92
- }
93
- async multerLoadFileAsync(req, res, fileExtensions, storeAsFile = true) {
94
- const files = await new Promise((resolve, reject)=>this.getMulterFileFilter(storeAsFile)(req, res, (err)=>{
95
- if (err) return reject(err);
96
- resolve(req.files);
97
- }));
98
- this.validateUploadedFiles(files, fileExtensions, storeAsFile);
99
- return files;
100
- }
101
- validateUploadedFiles(files, allowedExtensions, storeAsFile) {
102
- if (!files?.length || !allowedExtensions?.length) return;
103
- for (const file of files){
104
- const ext = (0, _nodepath.extname)(file.originalname)?.toLowerCase();
105
- if (!allowedExtensions.includes(ext)) {
106
- if (storeAsFile && file.path && (0, _nodefs.existsSync)(file.path)) {
107
- try {
108
- (0, _nodefs.rmSync)(file.path);
109
- } catch (e) {
110
- this.logger.error(`Could not remove invalid file ${(0, _errorutils.errorSummary)(e)}`);
111
- }
112
- }
113
- throw new _runtimeexceptions.ValidationException({
114
- error: `Only files with extensions ${allowedExtensions.join(", ")} are allowed`
115
- });
116
- }
117
- }
118
- }
119
- getMulterFileFilter(storeAsFile = true) {
120
- return (0, _multer.default)({
121
- storage: storeAsFile ? (0, _multer.diskStorage)({
122
- destination: (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultFileUploadsStorage)
123
- }) : (0, _multer.memoryStorage)()
124
- }).any();
125
- }
126
- getSessions() {
127
- return this.fileUploadTrackerCache.getUploads();
128
- }
129
- }
1
+ import { ValidationException } from "../../exceptions/runtime.exceptions.js";
2
+ import { AppConstants } from "../../server.constants.js";
3
+ import { getMediaPath } from "../../utils/fs.utils.js";
4
+ import { errorSummary } from "../../utils/error.utils.js";
5
+ import { extname, join } from "node:path";
6
+ import { existsSync, readdirSync, rmSync } from "node:fs";
7
+ import multer, { diskStorage, memoryStorage } from "multer";
8
+ //#region src/services/core/multer.service.ts
9
+ var MulterService = class MulterService {
10
+ logger;
11
+ constructor(loggerFactory, fileUploadTrackerCache) {
12
+ this.fileUploadTrackerCache = fileUploadTrackerCache;
13
+ this.logger = loggerFactory(MulterService.name);
14
+ }
15
+ startTrackingSession(multerFile, printerId) {
16
+ return this.fileUploadTrackerCache.addUploadTracker(multerFile, printerId);
17
+ }
18
+ clearUploadsFolder() {
19
+ const fileUploadsPath = join(getMediaPath(), AppConstants.defaultFileUploadsStorage);
20
+ if (!existsSync(fileUploadsPath)) return;
21
+ const files = readdirSync(fileUploadsPath, { withFileTypes: true }).filter((item) => !item.isDirectory()).map((item) => item.name);
22
+ for (const file of files) try {
23
+ rmSync(join(fileUploadsPath, file));
24
+ } catch (error) {
25
+ this.logger.error(`Could not clear upload file in temporary folder ${errorSummary(error)}`);
26
+ }
27
+ }
28
+ clearUploadedFile(multerFile) {
29
+ if (existsSync(multerFile.path)) rmSync(multerFile.path);
30
+ else this.logger.warn("Cannot unlink temporarily uploaded file as it was not found");
31
+ }
32
+ getMulterGCodeFileFilter(storeAsFile = true) {
33
+ return this.getMulterFileFilter(storeAsFile);
34
+ }
35
+ async multerLoadFileAsync(req, res, fileExtensions, storeAsFile = true) {
36
+ const files = await new Promise((resolve, reject) => this.getMulterFileFilter(storeAsFile)(req, res, (err) => {
37
+ if (err) return reject(err);
38
+ resolve(req.files);
39
+ }));
40
+ this.validateUploadedFiles(files, fileExtensions, storeAsFile);
41
+ return files;
42
+ }
43
+ /**
44
+ * Validates uploaded files against allowed extensions.
45
+ * Removes invalid files if stored on disk and throws a ValidationException.
46
+ */
47
+ validateUploadedFiles(files, allowedExtensions, storeAsFile) {
48
+ if (!files?.length || !allowedExtensions?.length) return;
49
+ for (const file of files) {
50
+ const ext = extname(file.originalname)?.toLowerCase();
51
+ if (!allowedExtensions.includes(ext)) {
52
+ if (storeAsFile && file.path && existsSync(file.path)) try {
53
+ rmSync(file.path);
54
+ } catch (e) {
55
+ this.logger.error(`Could not remove invalid file ${errorSummary(e)}`);
56
+ }
57
+ throw new ValidationException({ error: `Only files with extensions ${allowedExtensions.join(", ")} are allowed` });
58
+ }
59
+ }
60
+ }
61
+ getMulterFileFilter(storeAsFile = true) {
62
+ return multer({ storage: storeAsFile ? diskStorage({ destination: join(getMediaPath(), AppConstants.defaultFileUploadsStorage) }) : memoryStorage() }).any();
63
+ }
64
+ getSessions() {
65
+ return this.fileUploadTrackerCache.getUploads();
66
+ }
67
+ };
68
+ //#endregion
69
+ export { MulterService };
130
70
 
131
71
  //# sourceMappingURL=multer.service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/core/multer.service.ts"],"names":["MulterService","logger","loggerFactory","fileUploadTrackerCache","name","startTrackingSession","multerFile","printerId","addUploadTracker","clearUploadsFolder","fileUploadsPath","join","getMediaPath","AppConstants","defaultFileUploadsStorage","existsSync","files","readdirSync","withFileTypes","filter","item","isDirectory","map","file","rmSync","error","errorSummary","clearUploadedFile","path","warn","getMulterGCodeFileFilter","storeAsFile","getMulterFileFilter","multerLoadFileAsync","req","res","fileExtensions","Promise","resolve","reject","err","validateUploadedFiles","allowedExtensions","length","ext","extname","originalname","toLowerCase","includes","e","ValidationException","multer","storage","diskStorage","destination","memoryStorage","any","getSessions","getUploads"],"mappings":"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"}
1
+ {"version":3,"file":"multer.service.js","names":[],"sources":["../../../src/services/core/multer.service.ts"],"sourcesContent":["import multer, { diskStorage, memoryStorage } from \"multer\";\nimport { extname, join } from \"node:path\";\nimport { existsSync, readdirSync, rmSync } from \"node:fs\";\nimport { getMediaPath } from \"@/utils/fs.utils\";\nimport { AppConstants } from \"@/server.constants\";\nimport { FileUploadTrackerCache } from \"@/state/file-upload-tracker.cache\";\nimport type { Request, Response } from \"express\";\nimport { errorSummary } from \"@/utils/error.utils\";\nimport { LoggerService } from \"@/handlers/logger\";\nimport type { ILoggerFactory } from \"@/handlers/logger-factory\";\nimport { ValidationException } from \"@/exceptions/runtime.exceptions\";\n\nexport class MulterService {\n private readonly logger: LoggerService;\n\n constructor(\n loggerFactory: ILoggerFactory,\n private readonly fileUploadTrackerCache: FileUploadTrackerCache,\n ) {\n this.logger = loggerFactory(MulterService.name);\n }\n\n public startTrackingSession(multerFile: Express.Multer.File, printerId: number) {\n return this.fileUploadTrackerCache.addUploadTracker(multerFile, printerId);\n }\n\n public clearUploadsFolder() {\n const fileUploadsPath = join(getMediaPath(), AppConstants.defaultFileUploadsStorage);\n if (!existsSync(fileUploadsPath)) return;\n\n const files = readdirSync(fileUploadsPath, { withFileTypes: true })\n .filter((item) => !item.isDirectory())\n .map((item) => item.name);\n\n for (const file of files) {\n try {\n rmSync(join(fileUploadsPath, file));\n } catch (error) {\n this.logger.error(`Could not clear upload file in temporary folder ${errorSummary(error)}`);\n }\n }\n }\n\n public clearUploadedFile(multerFile: Express.Multer.File) {\n if (existsSync(multerFile.path)) {\n rmSync(multerFile.path);\n } else {\n this.logger.warn(\"Cannot unlink temporarily uploaded file as it was not found\");\n }\n }\n\n getMulterGCodeFileFilter(storeAsFile = true) {\n return this.getMulterFileFilter(storeAsFile);\n }\n\n async multerLoadFileAsync(req: Request, res: Response, fileExtensions: string[], storeAsFile = true) {\n const files = await new Promise<Express.Multer.File[]>((resolve, reject) =>\n this.getMulterFileFilter(storeAsFile)(req, res, (err) => {\n if (err) return reject(err);\n resolve(req.files as Express.Multer.File[]);\n }),\n );\n\n this.validateUploadedFiles(files, fileExtensions, storeAsFile);\n\n return files;\n }\n\n /**\n * Validates uploaded files against allowed extensions.\n * Removes invalid files if stored on disk and throws a ValidationException.\n */\n private validateUploadedFiles(\n files: Express.Multer.File[] | undefined,\n allowedExtensions: string[],\n storeAsFile: boolean,\n ) {\n if (!files?.length || !allowedExtensions?.length) return;\n\n for (const file of files) {\n const ext = extname(file.originalname)?.toLowerCase();\n if (!allowedExtensions.includes(ext)) {\n // Remove invalid file if stored on disk\n if (storeAsFile && file.path && existsSync(file.path)) {\n try {\n rmSync(file.path);\n } catch (e) {\n this.logger.error(`Could not remove invalid file ${errorSummary(e)}`);\n }\n }\n\n throw new ValidationException({\n error: `Only files with extensions ${allowedExtensions.join(\", \")} are allowed`,\n });\n }\n }\n }\n\n getMulterFileFilter(storeAsFile = true) {\n return multer({\n storage: storeAsFile\n ? diskStorage({\n destination: join(getMediaPath(), AppConstants.defaultFileUploadsStorage),\n })\n : memoryStorage(),\n }).any();\n }\n\n getSessions() {\n return this.fileUploadTrackerCache.getUploads();\n }\n}\n"],"mappings":";;;;;;;;AAYA,IAAa,gBAAb,MAAa,cAAc;CACzB;CAEA,YACE,eACA,wBACA;AADiB,OAAA,yBAAA;AAEjB,OAAK,SAAS,cAAc,cAAc,KAAK;;CAGjD,qBAA4B,YAAiC,WAAmB;AAC9E,SAAO,KAAK,uBAAuB,iBAAiB,YAAY,UAAU;;CAG5E,qBAA4B;EAC1B,MAAM,kBAAkB,KAAK,cAAc,EAAE,aAAa,0BAA0B;AACpF,MAAI,CAAC,WAAW,gBAAgB,CAAE;EAElC,MAAM,QAAQ,YAAY,iBAAiB,EAAE,eAAe,MAAM,CAAC,CAChE,QAAQ,SAAS,CAAC,KAAK,aAAa,CAAC,CACrC,KAAK,SAAS,KAAK,KAAK;AAE3B,OAAK,MAAM,QAAQ,MACjB,KAAI;AACF,UAAO,KAAK,iBAAiB,KAAK,CAAC;WAC5B,OAAO;AACd,QAAK,OAAO,MAAM,mDAAmD,aAAa,MAAM,GAAG;;;CAKjG,kBAAyB,YAAiC;AACxD,MAAI,WAAW,WAAW,KAAK,CAC7B,QAAO,WAAW,KAAK;MAEvB,MAAK,OAAO,KAAK,8DAA8D;;CAInF,yBAAyB,cAAc,MAAM;AAC3C,SAAO,KAAK,oBAAoB,YAAY;;CAG9C,MAAM,oBAAoB,KAAc,KAAe,gBAA0B,cAAc,MAAM;EACnG,MAAM,QAAQ,MAAM,IAAI,SAAgC,SAAS,WAC/D,KAAK,oBAAoB,YAAY,CAAC,KAAK,MAAM,QAAQ;AACvD,OAAI,IAAK,QAAO,OAAO,IAAI;AAC3B,WAAQ,IAAI,MAA+B;IAC3C,CACH;AAED,OAAK,sBAAsB,OAAO,gBAAgB,YAAY;AAE9D,SAAO;;;;;;CAOT,sBACE,OACA,mBACA,aACA;AACA,MAAI,CAAC,OAAO,UAAU,CAAC,mBAAmB,OAAQ;AAElD,OAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,MAAM,QAAQ,KAAK,aAAa,EAAE,aAAa;AACrD,OAAI,CAAC,kBAAkB,SAAS,IAAI,EAAE;AAEpC,QAAI,eAAe,KAAK,QAAQ,WAAW,KAAK,KAAK,CACnD,KAAI;AACF,YAAO,KAAK,KAAK;aACV,GAAG;AACV,UAAK,OAAO,MAAM,iCAAiC,aAAa,EAAE,GAAG;;AAIzE,UAAM,IAAI,oBAAoB,EAC5B,OAAO,8BAA8B,kBAAkB,KAAK,KAAK,CAAC,eACnE,CAAC;;;;CAKR,oBAAoB,cAAc,MAAM;AACtC,SAAO,OAAO,EACZ,SAAS,cACL,YAAY,EACV,aAAa,KAAK,cAAc,EAAE,aAAa,0BAA0B,EAC1E,CAAC,GACF,eAAe,EACpB,CAAC,CAAC,KAAK;;CAGV,cAAc;AACZ,SAAO,KAAK,uBAAuB,YAAY"}