@fdm-monster/server 1.8.3 → 1.9.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/.env.template +5 -3
  2. package/.gitattributes +4 -2
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.9.1.cjs +948 -0
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +25 -26
  7. package/RELEASE_NOTES.MD +50 -1
  8. package/biome.json +33 -0
  9. package/dist/consoles/download-github-releases.js.map +1 -1
  10. package/dist/consoles/launch-http-servers.js +31 -0
  11. package/dist/consoles/launch-http-servers.js.map +1 -0
  12. package/dist/consoles/mock-octoprint.server.js +291 -0
  13. package/dist/consoles/mock-octoprint.server.js.map +1 -0
  14. package/dist/consoles/mock-prusalink.server.js +57 -0
  15. package/dist/consoles/mock-prusalink.server.js.map +1 -0
  16. package/dist/consoles/utils/api-messages.js +856 -0
  17. package/dist/consoles/utils/api-messages.js.map +1 -0
  18. package/dist/consoles/utils/delayed-memory.storage.js +42 -0
  19. package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
  20. package/dist/consoles/utils/ws-messages.js +88 -0
  21. package/dist/consoles/utils/ws-messages.js.map +1 -0
  22. package/dist/constants/event.constants.js +5 -21
  23. package/dist/constants/event.constants.js.map +1 -1
  24. package/dist/constants/server-settings.constants.js +6 -11
  25. package/dist/constants/server-settings.constants.js.map +1 -1
  26. package/dist/container.js +13 -14
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.tokens.js +3 -4
  29. package/dist/container.tokens.js.map +1 -1
  30. package/dist/controllers/auth.controller.js +114 -24
  31. package/dist/controllers/auth.controller.js.map +1 -1
  32. package/dist/controllers/batch-call.controller.js +95 -24
  33. package/dist/controllers/batch-call.controller.js.map +1 -1
  34. package/dist/controllers/camera-stream.controller.js +16 -12
  35. package/dist/controllers/camera-stream.controller.js.map +1 -1
  36. package/dist/controllers/custom-gcode.controller.js +116 -40
  37. package/dist/controllers/custom-gcode.controller.js.map +1 -1
  38. package/dist/controllers/dto/update-client-dist.dto.js +0 -21
  39. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
  40. package/dist/controllers/first-time-setup.controller.js +54 -18
  41. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  42. package/dist/controllers/floor.controller.js +154 -43
  43. package/dist/controllers/floor.controller.js.map +1 -1
  44. package/dist/controllers/metrics.controller.js +56 -0
  45. package/dist/controllers/metrics.controller.js.map +1 -0
  46. package/dist/controllers/print-completion.controller.js +81 -18
  47. package/dist/controllers/print-completion.controller.js.map +1 -1
  48. package/dist/controllers/printer-files.controller.js +42 -28
  49. package/dist/controllers/printer-files.controller.js.map +1 -1
  50. package/dist/controllers/printer-group.controller.js +123 -33
  51. package/dist/controllers/printer-group.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +73 -26
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/printer.controller.js +57 -198
  55. package/dist/controllers/printer.controller.js.map +1 -1
  56. package/dist/controllers/server-private.controller.js +153 -39
  57. package/dist/controllers/server-private.controller.js.map +1 -1
  58. package/dist/controllers/server-public.controller.js +79 -84
  59. package/dist/controllers/server-public.controller.js.map +1 -1
  60. package/dist/controllers/settings.controller.js +222 -79
  61. package/dist/controllers/settings.controller.js.map +1 -1
  62. package/dist/controllers/user.controller.js +67 -57
  63. package/dist/controllers/user.controller.js.map +1 -1
  64. package/dist/controllers/validation/auth-controller.validation.js +6 -5
  65. package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
  66. package/dist/controllers/validation/batch-controller.validation.js +17 -18
  67. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  68. package/dist/controllers/validation/generic.validation.js +8 -3
  69. package/dist/controllers/validation/generic.validation.js.map +1 -1
  70. package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
  71. package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
  72. package/dist/controllers/validation/printer-controller.validation.js +31 -50
  73. package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
  74. package/dist/controllers/validation/printer-files-controller.validation.js +16 -15
  75. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  76. package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
  77. package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
  78. package/dist/controllers/validation/server-private.validation.js +17 -0
  79. package/dist/controllers/validation/server-private.validation.js.map +1 -0
  80. package/dist/controllers/validation/setting.validation.js +28 -10
  81. package/dist/controllers/validation/setting.validation.js.map +1 -1
  82. package/dist/controllers/validation/user-controller.validation.js +44 -13
  83. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  84. package/dist/data-source.js +10 -6
  85. package/dist/data-source.js.map +1 -1
  86. package/dist/entities/camera-stream.entity.js +2 -3
  87. package/dist/entities/camera-stream.entity.js.map +1 -1
  88. package/dist/entities/custom-gcode.entity.js +1 -2
  89. package/dist/entities/custom-gcode.entity.js.map +1 -1
  90. package/dist/entities/floor-position.entity.js.map +1 -1
  91. package/dist/entities/floor.entity.js +1 -2
  92. package/dist/entities/floor.entity.js.map +1 -1
  93. package/dist/entities/group.entity.js +6 -2
  94. package/dist/entities/group.entity.js.map +1 -1
  95. package/dist/entities/permission.entity.js +1 -2
  96. package/dist/entities/permission.entity.js.map +1 -1
  97. package/dist/entities/print-completion.entity.js +1 -2
  98. package/dist/entities/print-completion.entity.js.map +1 -1
  99. package/dist/entities/printer-group.entity.js +6 -2
  100. package/dist/entities/printer-group.entity.js.map +1 -1
  101. package/dist/entities/printer.entity.js +22 -4
  102. package/dist/entities/printer.entity.js.map +1 -1
  103. package/dist/entities/refresh-token.entity.js +1 -2
  104. package/dist/entities/refresh-token.entity.js.map +1 -1
  105. package/dist/entities/role.entity.js +1 -2
  106. package/dist/entities/role.entity.js.map +1 -1
  107. package/dist/entities/settings.entity.js +1 -2
  108. package/dist/entities/settings.entity.js.map +1 -1
  109. package/dist/entities/user-role.entity.js +1 -2
  110. package/dist/entities/user-role.entity.js.map +1 -1
  111. package/dist/entities/user.entity.js +1 -2
  112. package/dist/entities/user.entity.js.map +1 -1
  113. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  114. package/dist/handlers/logger.js +131 -36
  115. package/dist/handlers/logger.js.map +1 -1
  116. package/dist/handlers/validators.js +7 -116
  117. package/dist/handlers/validators.js.map +1 -1
  118. package/dist/index.js.map +1 -1
  119. package/dist/middleware/authenticate.js +11 -22
  120. package/dist/middleware/authenticate.js.map +1 -1
  121. package/dist/middleware/database.js.map +1 -1
  122. package/dist/middleware/demo.middleware.js +4 -17
  123. package/dist/middleware/demo.middleware.js.map +1 -1
  124. package/dist/middleware/exception.filter.js +23 -23
  125. package/dist/middleware/exception.filter.js.map +1 -1
  126. package/dist/middleware/global.middleware.js +4 -4
  127. package/dist/middleware/global.middleware.js.map +1 -1
  128. package/dist/middleware/param-converter.middleware.js +81 -0
  129. package/dist/middleware/param-converter.middleware.js.map +1 -0
  130. package/dist/middleware/passport.js +3 -5
  131. package/dist/middleware/passport.js.map +1 -1
  132. package/dist/middleware/printer-resolver.js +37 -0
  133. package/dist/middleware/printer-resolver.js.map +1 -0
  134. package/dist/middleware/printer.js +22 -10
  135. package/dist/middleware/printer.js.map +1 -1
  136. package/dist/middleware/socketio.middleware.js +27 -0
  137. package/dist/middleware/socketio.middleware.js.map +1 -0
  138. package/dist/migrations/1706829146617-InitSqlite.js +1 -1
  139. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  140. package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
  141. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  142. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
  143. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  144. package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
  145. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  146. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
  147. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
  148. package/dist/models/Auth/Permission.js.map +1 -1
  149. package/dist/models/Auth/RefreshToken.js +1 -1
  150. package/dist/models/Auth/RefreshToken.js.map +1 -1
  151. package/dist/models/Auth/Role.js.map +1 -1
  152. package/dist/models/Auth/User.js.map +1 -1
  153. package/dist/models/CameraStream.js +20 -0
  154. package/dist/models/CameraStream.js.map +1 -1
  155. package/dist/models/CustomGcode.js.map +1 -1
  156. package/dist/models/Floor.js.map +1 -1
  157. package/dist/models/FloorPrinter.js +10 -1
  158. package/dist/models/FloorPrinter.js.map +1 -1
  159. package/dist/models/PrintCompletion.js.map +1 -1
  160. package/dist/models/Printer.js +12 -5
  161. package/dist/models/Printer.js.map +1 -1
  162. package/dist/models/Settings.js +5 -42
  163. package/dist/models/Settings.js.map +1 -1
  164. package/dist/models/index.js +0 -4
  165. package/dist/models/index.js.map +1 -1
  166. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
  167. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
  168. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
  169. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
  170. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
  171. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
  172. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
  173. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
  174. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
  175. package/dist/server.constants.js +7 -4
  176. package/dist/server.constants.js.map +1 -1
  177. package/dist/server.core.js +29 -2
  178. package/dist/server.core.js.map +1 -1
  179. package/dist/server.env.js +13 -8
  180. package/dist/server.env.js.map +1 -1
  181. package/dist/server.host.js +24 -33
  182. package/dist/server.host.js.map +1 -1
  183. package/dist/services/authentication/auth.service.js +15 -20
  184. package/dist/services/authentication/auth.service.js.map +1 -1
  185. package/dist/services/authentication/jwt.service.js +1 -1
  186. package/dist/services/authentication/jwt.service.js.map +1 -1
  187. package/dist/services/core/batch-call.service.js +23 -25
  188. package/dist/services/core/batch-call.service.js.map +1 -1
  189. package/dist/services/core/client-bundle.service.js +78 -136
  190. package/dist/services/core/client-bundle.service.js.map +1 -1
  191. package/dist/services/core/config.service.js.map +1 -1
  192. package/dist/services/core/cradle.service.js +21 -0
  193. package/dist/services/core/cradle.service.js.map +1 -0
  194. package/dist/services/core/github.service.js +2 -2
  195. package/dist/services/core/github.service.js.map +1 -1
  196. package/dist/services/core/http-client.factory.js +1 -1
  197. package/dist/services/core/http-client.factory.js.map +1 -1
  198. package/dist/services/core/logs-manager.service.js +3 -3
  199. package/dist/services/core/logs-manager.service.js.map +1 -1
  200. package/dist/services/core/monsterpi.service.js +1 -1
  201. package/dist/services/core/monsterpi.service.js.map +1 -1
  202. package/dist/services/core/multer.service.js +8 -7
  203. package/dist/services/core/multer.service.js.map +1 -1
  204. package/dist/services/core/server-release.service.js +14 -8
  205. package/dist/services/core/server-release.service.js.map +1 -1
  206. package/dist/services/core/yaml.service.js +16 -17
  207. package/dist/services/core/yaml.service.js.map +1 -1
  208. package/dist/services/interfaces/camera-stream.dto.js +4 -34
  209. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  210. package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
  211. package/dist/services/interfaces/floor.dto.js +5 -47
  212. package/dist/services/interfaces/floor.dto.js.map +1 -1
  213. package/dist/services/interfaces/login.dto.js +2 -0
  214. package/dist/services/interfaces/login.dto.js.map +1 -1
  215. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  216. package/dist/services/interfaces/printer-group.dto.js +0 -14
  217. package/dist/services/interfaces/printer-group.dto.js.map +1 -1
  218. package/dist/services/interfaces/printer.dto.js +11 -11
  219. package/dist/services/interfaces/printer.dto.js.map +1 -1
  220. package/dist/services/interfaces/settings.dto.js.map +1 -1
  221. package/dist/services/interfaces/task.interfaces.js +6 -0
  222. package/dist/services/interfaces/task.interfaces.js.map +1 -0
  223. package/dist/services/mongoose/camera-stream.service.js +17 -15
  224. package/dist/services/mongoose/camera-stream.service.js.map +1 -1
  225. package/dist/services/mongoose/custom-gcode.service.js +4 -2
  226. package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
  227. package/dist/services/mongoose/floor.service.js +37 -30
  228. package/dist/services/mongoose/floor.service.js.map +1 -1
  229. package/dist/services/mongoose/permission.service.js +1 -1
  230. package/dist/services/mongoose/permission.service.js.map +1 -1
  231. package/dist/services/mongoose/print-completion.service.js +2 -2
  232. package/dist/services/mongoose/print-completion.service.js.map +1 -1
  233. package/dist/services/mongoose/print-completion.shared.js +2 -2
  234. package/dist/services/mongoose/print-completion.shared.js.map +1 -1
  235. package/dist/services/mongoose/printer.service.js +33 -45
  236. package/dist/services/mongoose/printer.service.js.map +1 -1
  237. package/dist/services/mongoose/refresh-token.service.js +5 -8
  238. package/dist/services/mongoose/refresh-token.service.js.map +1 -1
  239. package/dist/services/mongoose/role.service.js +14 -5
  240. package/dist/services/mongoose/role.service.js.map +1 -1
  241. package/dist/services/mongoose/settings.service.js +35 -62
  242. package/dist/services/mongoose/settings.service.js.map +1 -1
  243. package/dist/services/mongoose/user.service.js +8 -7
  244. package/dist/services/mongoose/user.service.js.map +1 -1
  245. package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
  246. package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
  247. package/dist/services/moonraker/moonraker-websocket.adapter.js +102 -94
  248. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  249. package/dist/services/moonraker/moonraker.client.js +19 -14
  250. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  251. package/dist/services/moonraker.api.js +3 -5
  252. package/dist/services/moonraker.api.js.map +1 -1
  253. package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
  254. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  255. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
  256. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  257. package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
  258. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  259. package/dist/services/octoprint/octoprint-api.routes.js +0 -37
  260. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  261. package/dist/services/octoprint/octoprint-websocket.adapter.js +66 -72
  262. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  263. package/dist/services/octoprint/octoprint.client.js +12 -185
  264. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  265. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
  266. package/dist/services/octoprint.api.js +8 -14
  267. package/dist/services/octoprint.api.js.map +1 -1
  268. package/dist/services/orm/base.service.js +11 -12
  269. package/dist/services/orm/base.service.js.map +1 -1
  270. package/dist/services/orm/camera-stream.service.js +5 -1
  271. package/dist/services/orm/camera-stream.service.js.map +1 -1
  272. package/dist/services/orm/custom-gcode.service.js +2 -2
  273. package/dist/services/orm/custom-gcode.service.js.map +1 -1
  274. package/dist/services/orm/floor-position.service.js +0 -5
  275. package/dist/services/orm/floor-position.service.js.map +1 -1
  276. package/dist/services/orm/floor.service.js +43 -39
  277. package/dist/services/orm/floor.service.js.map +1 -1
  278. package/dist/services/orm/permission.service.js +3 -4
  279. package/dist/services/orm/permission.service.js.map +1 -1
  280. package/dist/services/orm/print-completion.service.js +2 -4
  281. package/dist/services/orm/print-completion.service.js.map +1 -1
  282. package/dist/services/orm/printer-group.service.js +2 -7
  283. package/dist/services/orm/printer-group.service.js.map +1 -1
  284. package/dist/services/orm/printer.service.js +21 -36
  285. package/dist/services/orm/printer.service.js.map +1 -1
  286. package/dist/services/orm/refresh-token.service.js +5 -11
  287. package/dist/services/orm/refresh-token.service.js.map +1 -1
  288. package/dist/services/orm/role.service.js +11 -10
  289. package/dist/services/orm/role.service.js.map +1 -1
  290. package/dist/services/orm/settings.service.js +37 -133
  291. package/dist/services/orm/settings.service.js.map +1 -1
  292. package/dist/services/orm/user.service.js +13 -15
  293. package/dist/services/orm/user.service.js.map +1 -1
  294. package/dist/services/printer-api.factory.js +9 -6
  295. package/dist/services/printer-api.factory.js.map +1 -1
  296. package/dist/services/printer-api.interface.js +13 -6
  297. package/dist/services/printer-api.interface.js.map +1 -1
  298. package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
  299. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
  300. package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
  301. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
  302. package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
  303. package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
  304. package/dist/services/{octoprint/dto/plugin.dto.js → prusa-link/dto/file.dto.js} +1 -1
  305. package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
  306. package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
  307. package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
  308. package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
  309. package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
  310. package/dist/services/prusa-link/dto/status.dto.js +6 -0
  311. package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
  312. package/dist/services/prusa-link/dto/version.dto.js +6 -0
  313. package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
  314. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
  315. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
  316. package/dist/services/prusa-link/prusa-link.api.js +233 -0
  317. package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
  318. package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
  319. package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
  320. package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
  321. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
  322. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
  323. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
  324. package/dist/services/socket.factory.js +9 -6
  325. package/dist/services/socket.factory.js.map +1 -1
  326. package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
  327. package/dist/services/task-manager.service.js.map +1 -0
  328. package/dist/services/validators/camera-service.validation.js +19 -0
  329. package/dist/services/validators/camera-service.validation.js.map +1 -0
  330. package/dist/services/validators/floor-service.validation.js +47 -36
  331. package/dist/services/validators/floor-service.validation.js.map +1 -1
  332. package/dist/services/validators/print-completion-service.validation.js +22 -9
  333. package/dist/services/validators/print-completion-service.validation.js.map +1 -1
  334. package/dist/services/validators/printer-service.validation.js +112 -29
  335. package/dist/services/validators/printer-service.validation.js.map +1 -1
  336. package/dist/services/validators/settings-service.validation.js +78 -66
  337. package/dist/services/validators/settings-service.validation.js.map +1 -1
  338. package/dist/services/validators/user-service.validation.js +17 -16
  339. package/dist/services/validators/user-service.validation.js.map +1 -1
  340. package/dist/services/validators/yaml-service.validation.js +94 -51
  341. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  342. package/dist/shared/default-http-client.builder.js.map +1 -1
  343. package/dist/shared/load-controllers.js +20 -0
  344. package/dist/shared/load-controllers.js.map +1 -0
  345. package/dist/shared/runtime-settings.migration.js +46 -0
  346. package/dist/shared/runtime-settings.migration.js.map +1 -0
  347. package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
  348. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  349. package/dist/shared/websocket.adapter.js +4 -5
  350. package/dist/shared/websocket.adapter.js.map +1 -1
  351. package/dist/state/file-upload-tracker.cache.js +5 -4
  352. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  353. package/dist/state/file.cache.js +1 -1
  354. package/dist/state/file.cache.js.map +1 -1
  355. package/dist/state/floor.store.js +6 -6
  356. package/dist/state/floor.store.js.map +1 -1
  357. package/dist/state/printer-events.cache.js +21 -22
  358. package/dist/state/printer-events.cache.js.map +1 -1
  359. package/dist/state/printer-files.store.js +6 -8
  360. package/dist/state/printer-files.store.js.map +1 -1
  361. package/dist/state/printer-socket.store.js +27 -50
  362. package/dist/state/printer-socket.store.js.map +1 -1
  363. package/dist/state/printer-thumbnail.cache.js +5 -9
  364. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  365. package/dist/state/printer.cache.js +14 -12
  366. package/dist/state/printer.cache.js.map +1 -1
  367. package/dist/state/settings.store.js +74 -50
  368. package/dist/state/settings.store.js.map +1 -1
  369. package/dist/state/socket-io.gateway.js +39 -36
  370. package/dist/state/socket-io.gateway.js.map +1 -1
  371. package/dist/state/test-printer-socket.store.js +20 -15
  372. package/dist/state/test-printer-socket.store.js.map +1 -1
  373. package/dist/state/validation/create-test-printer.validation.js +13 -11
  374. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  375. package/dist/task.presets.js.map +1 -1
  376. package/dist/tasks/boot.task.js +14 -19
  377. package/dist/tasks/boot.task.js.map +1 -1
  378. package/dist/tasks/client-bundle.task.js +1 -3
  379. package/dist/tasks/client-bundle.task.js.map +1 -1
  380. package/dist/tasks/print-completion.socketio.task.js +27 -28
  381. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  382. package/dist/tasks/printer-file-clean.task.js +6 -10
  383. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  384. package/dist/tasks/printer-websocket-restore.task.js +3 -14
  385. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  386. package/dist/tasks/printer-websocket.task.js +2 -14
  387. package/dist/tasks/printer-websocket.task.js.map +1 -1
  388. package/dist/tasks/socketio.task.js +6 -33
  389. package/dist/tasks/socketio.task.js.map +1 -1
  390. package/dist/tasks/software-update.task.js +1 -1
  391. package/dist/tasks/software-update.task.js.map +1 -1
  392. package/dist/tasks.js +3 -3
  393. package/dist/tasks.js.map +1 -1
  394. package/dist/utils/array.util.js.map +1 -1
  395. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  396. package/dist/utils/env.utils.js +0 -2
  397. package/dist/utils/env.utils.js.map +1 -1
  398. package/dist/utils/normalize-url.js +3 -2
  399. package/dist/utils/normalize-url.js.map +1 -1
  400. package/dist/utils/printer-type.utils.js.map +1 -1
  401. package/dist/utils/time.utils.js +7 -17
  402. package/dist/utils/time.utils.js.map +1 -1
  403. package/dist/utils/url.utils.js +3 -4
  404. package/dist/utils/url.utils.js.map +1 -1
  405. package/package.json +44 -47
  406. package/tsconfig.json +2 -1
  407. package/.yarn/releases/yarn-4.7.0.cjs +0 -935
  408. package/dist/consoles/check-ports.js +0 -170
  409. package/dist/consoles/check-ports.js.map +0 -1
  410. package/dist/consoles/http-file-receiver.console.js +0 -81
  411. package/dist/consoles/http-file-receiver.console.js.map +0 -1
  412. package/dist/consoles/sqlite-torm.js +0 -31
  413. package/dist/consoles/sqlite-torm.js.map +0 -1
  414. package/dist/consoles/upload-test.js +0 -52
  415. package/dist/consoles/upload-test.js.map +0 -1
  416. package/dist/controllers/plugin-firmware-update.controller.js +0 -234
  417. package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
  418. package/dist/entities/base.entity.js +0 -29
  419. package/dist/entities/base.entity.js.map +0 -1
  420. package/dist/entities/printer-file.entity.js +0 -140
  421. package/dist/entities/printer-file.entity.js.map +0 -1
  422. package/dist/handlers/cache-manager.js +0 -18
  423. package/dist/handlers/cache-manager.js.map +0 -1
  424. package/dist/models/PrinterFile.js +0 -44
  425. package/dist/models/PrinterFile.js.map +0 -1
  426. package/dist/services/core/task-manager.service.js.map +0 -1
  427. package/dist/services/octoprint/dto/plugin.dto.js.map +0 -1
  428. package/dist/services/octoprint/plugin-base.service.js +0 -101
  429. package/dist/services/octoprint/plugin-base.service.js.map +0 -1
  430. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
  431. package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
  432. package/dist/services/octoprint/plugin-repository.cache.js +0 -46
  433. package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
  434. package/dist/utils/benchmark.util.js +0 -39
  435. package/dist/utils/benchmark.util.js.map +0 -1
  436. package/dist/utils/is-docker.js +0 -40
  437. package/dist/utils/is-docker.js.map +0 -1
  438. package/dist/utils/metric.utils.js +0 -35
  439. package/dist/utils/metric.utils.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrusaLinkEventDto", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PrusaLinkEventDto;
9
+ }
10
+ });
11
+ class PrusaLinkEventDto {
12
+ event;
13
+ payload;
14
+ printerId;
15
+ printerType;
16
+ }
17
+
18
+ //# sourceMappingURL=prusalink-event.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/constants/prusalink-event.dto.ts"],"names":["PrusaLinkEventDto","event","payload","printerId","printerType"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,MAAS;IACTC,QAAW;IACXC,UAAa;IACbC,YAAe;AACjB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "prusaLinkEvent", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return prusaLinkEvent;
9
+ }
10
+ });
11
+ const prusaLinkEvent = (event)=>`prusalink.${event}`;
12
+
13
+ //# sourceMappingURL=prusalink.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/constants/prusalink.constants.ts"],"names":["prusaLinkEvent","event"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,iBAAiB,CAACC,QAAkB,CAAC,UAAU,EAAEA,OAAO"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=file-response.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/dto/file-response.dto.ts"],"names":[],"mappings":""}
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
 
6
- //# sourceMappingURL=plugin.dto.js.map
6
+ //# sourceMappingURL=file.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/dto/file.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=job-state.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/dto/job-state.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=printer-state.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/dto/printer-state.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=status.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/dto/status.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=version.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/dto/version.dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrusaLinkHttpPollingAdapter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PrusaLinkHttpPollingAdapter;
9
+ }
10
+ });
11
+ const _printerapiinterface = require("../printer-api.interface");
12
+ const _errorutils = require("../../utils/error.utils");
13
+ const _prusalinkconstants = require("./constants/prusalink.constants");
14
+ const defaultLog = {
15
+ adapter: "prusa-link"
16
+ };
17
+ class PrusaLinkHttpPollingAdapter {
18
+ prusaLinkApi;
19
+ eventEmitter2;
20
+ configService;
21
+ printerType;
22
+ printerId;
23
+ login;
24
+ socketState;
25
+ apiState;
26
+ lastMessageReceivedTimestamp;
27
+ refreshPrinterCurrentInterval;
28
+ eventEmittingAllowed;
29
+ constructor(loggerFactory, prusaLinkApi, eventEmitter2, configService){
30
+ this.prusaLinkApi = prusaLinkApi;
31
+ this.eventEmitter2 = eventEmitter2;
32
+ this.configService = configService;
33
+ this.printerType = _printerapiinterface.PrusaLinkType;
34
+ this.eventEmittingAllowed = true;
35
+ this.logger = loggerFactory(PrusaLinkHttpPollingAdapter.name);
36
+ }
37
+ allowEmittingEvents() {
38
+ this.eventEmittingAllowed = true;
39
+ }
40
+ disallowEmittingEvents() {
41
+ this.eventEmittingAllowed = false;
42
+ }
43
+ needsReopen() {
44
+ return !this.refreshPrinterCurrentInterval;
45
+ }
46
+ needsSetup() {
47
+ return !this.refreshPrinterCurrentInterval;
48
+ }
49
+ needsReauth() {
50
+ throw new Error("Method not implemented.");
51
+ }
52
+ isClosedOrAborted() {
53
+ throw new Error("Method not implemented.");
54
+ }
55
+ reauthSession() {
56
+ throw new Error("Method not implemented.");
57
+ }
58
+ registerCredentials(socketLogin) {
59
+ this.login = socketLogin.loginDto;
60
+ this.printerId = socketLogin.printerId;
61
+ }
62
+ open() {
63
+ this.startPolling();
64
+ }
65
+ close() {
66
+ this.logger.debug("Polling adapter attempting stoppage.", this.logMeta());
67
+ this.stopPolling();
68
+ }
69
+ setupSocketSession() {
70
+ this.logger.warn("SetupSocketSession", defaultLog);
71
+ return Promise.resolve();
72
+ }
73
+ resetSocketState() {
74
+ this.logger.warn("ResetSocketState", defaultLog);
75
+ }
76
+ startPolling() {
77
+ this.stopPolling();
78
+ this.logger.debug("Polling adapter starting, setting interval.", this.logMeta());
79
+ this.refreshPrinterCurrentInterval = setInterval(async ()=>{
80
+ if (!this.printerId) {
81
+ this.logger.warn("Printer ID is not set, skipping status check.", this.logMeta());
82
+ this.stopPolling();
83
+ return;
84
+ }
85
+ this.socketState = "opening";
86
+ try {
87
+ this.prusaLinkApi.login = {
88
+ printerURL: this.login.printerURL,
89
+ username: this.login.username,
90
+ password: this.login.password,
91
+ apiKey: "",
92
+ printerType: _printerapiinterface.PrusaLinkType
93
+ };
94
+ this.socketState = "authenticating";
95
+ const printerState = await this.prusaLinkApi.getPrinterState();
96
+ if (printerState.state.flags?.link_state && printerState.state.flags?.link_state !== "PRINTING") {
97
+ printerState.state.text = printerState.state.flags.link_state;
98
+ }
99
+ const jobState = await this.prusaLinkApi.getJobState();
100
+ this.socketState = "authenticated";
101
+ this.apiState = "responding";
102
+ await this.emitEvent("current", {
103
+ ...printerState,
104
+ job: jobState.job,
105
+ progress: {
106
+ printTime: jobState.progress?.printTime,
107
+ printTimeLeft: jobState.progress?.printTimeLeft,
108
+ completion: jobState.progress?.completion * 100
109
+ }
110
+ });
111
+ } catch (error) {
112
+ this.socketState = "error";
113
+ this.logger.error(`Failed to fetch PrusaLink status ${(0, _errorutils.errorSummary)(error)}`, this.logMeta());
114
+ }
115
+ }, 5000);
116
+ }
117
+ stopPolling() {
118
+ if (this.refreshPrinterCurrentInterval) {
119
+ this.logger.debug("Polling adapter stopping, clearing interval.", this.logMeta());
120
+ clearInterval(this.refreshPrinterCurrentInterval);
121
+ this.refreshPrinterCurrentInterval = undefined;
122
+ this.socketState = "closed";
123
+ }
124
+ }
125
+ async emitEvent(event, payload) {
126
+ if (!this.eventEmittingAllowed) {
127
+ return;
128
+ }
129
+ this.logger.debug(`Emitting event ${(0, _prusalinkconstants.prusaLinkEvent)(event)}`, this.logMeta());
130
+ await this.eventEmitter2.emitAsync((0, _prusalinkconstants.prusaLinkEvent)(event), {
131
+ event,
132
+ payload,
133
+ printerId: this.printerId,
134
+ printerType: _printerapiinterface.PrusaLinkType
135
+ });
136
+ }
137
+ logMeta() {
138
+ return defaultLog;
139
+ }
140
+ }
141
+
142
+ //# sourceMappingURL=prusa-link-http-polling.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/prusa-link/prusa-link-http-polling.adapter.ts"],"names":["PrusaLinkHttpPollingAdapter","defaultLog","adapter","printerType","printerId","login","socketState","apiState","lastMessageReceivedTimestamp","refreshPrinterCurrentInterval","eventEmittingAllowed","constructor","loggerFactory","prusaLinkApi","eventEmitter2","configService","PrusaLinkType","logger","name","allowEmittingEvents","disallowEmittingEvents","needsReopen","needsSetup","needsReauth","Error","isClosedOrAborted","reauthSession","registerCredentials","socketLogin","loginDto","open","startPolling","close","debug","logMeta","stopPolling","setupSocketSession","warn","Promise","resolve","resetSocketState","setInterval","printerURL","username","password","apiKey","printerState","getPrinterState","state","flags","link_state","text","jobState","getJobState","emitEvent","job","progress","printTime","printTimeLeft","completion","error","errorSummary","clearInterval","undefined","event","payload","prusaLinkEvent","emitAsync"],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrusaLinkApi", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PrusaLinkApi;
9
+ }
10
+ });
11
+ const _printerapiinterface = require("../printer-api.interface");
12
+ const _prusalinkhttpclientbuilder = require("./utils/prusa-link-http-client.builder");
13
+ const _fs = require("fs");
14
+ const _eventconstants = require("../../constants/event.constants");
15
+ const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
16
+ const defaultLog = {
17
+ adapter: "prusa-link"
18
+ };
19
+ class PrusaLinkApi {
20
+ eventEmitter2;
21
+ httpClientFactory;
22
+ printerLogin;
23
+ logger;
24
+ authHeader;
25
+ constructor(loggerFactory, eventEmitter2, httpClientFactory, printerLogin){
26
+ this.eventEmitter2 = eventEmitter2;
27
+ this.httpClientFactory = httpClientFactory;
28
+ this.printerLogin = printerLogin;
29
+ this.authHeader = null;
30
+ this.logger = loggerFactory(PrusaLinkApi.name);
31
+ this.logger.debug("Constructed api client", this.logMeta());
32
+ }
33
+ get type() {
34
+ return _printerapiinterface.PrusaLinkType;
35
+ }
36
+ set login(login) {
37
+ this.printerLogin = login;
38
+ }
39
+ get client() {
40
+ return this.createClient();
41
+ }
42
+ async getVersion() {
43
+ const response = await this.client.get("/api/version");
44
+ return response.data.server;
45
+ }
46
+ async getFiles() {
47
+ const response = await this.client.get("/api/files");
48
+ return response.data.files.filter((dir)=>dir.path === "/usb")[0].children.map((f)=>({
49
+ path: f.display,
50
+ date: null,
51
+ size: -1
52
+ }));
53
+ }
54
+ async getFile(path) {
55
+ const response = await this.getFileRaw(path);
56
+ return {
57
+ path: response.data.name,
58
+ size: response.data.size,
59
+ date: null
60
+ };
61
+ }
62
+ async getStatus() {
63
+ const response = await this.client.get("/api/v1/status");
64
+ return response.data;
65
+ }
66
+ async getPrinterState() {
67
+ const response = await this.client.get("/api/printer");
68
+ return response.data;
69
+ }
70
+ async getJobState() {
71
+ const response = await this.client.get("/api/job");
72
+ return response.data;
73
+ }
74
+ connect() {
75
+ throw new Error("Method not implemented.");
76
+ }
77
+ disconnect() {
78
+ throw new Error("Method not implemented.");
79
+ }
80
+ restartServer() {
81
+ throw new Error("Method not implemented.");
82
+ }
83
+ restartHost() {
84
+ throw new Error("Method not implemented.");
85
+ }
86
+ restartPrinterFirmware() {
87
+ throw new Error("Method not implemented.");
88
+ }
89
+ async startPrint(path) {
90
+ await this.client.post(`/api/v1/files/usb/${path}`);
91
+ }
92
+ async pausePrint() {
93
+ const jobId = await this.getCurrentJobId();
94
+ if (!jobId) {
95
+ this.logger.warn("Job pause command did not complete, job or job id not set");
96
+ return;
97
+ }
98
+ await this.client.put(`/api/v1/job/${jobId}/pause`);
99
+ }
100
+ async resumePrint() {
101
+ const jobId = await this.getCurrentJobId();
102
+ if (!jobId) {
103
+ this.logger.warn("Job resume command did not complete, job or job id not set");
104
+ return;
105
+ }
106
+ await this.client.put(`/api/v1/job/${jobId}/resume`);
107
+ }
108
+ async cancelPrint() {
109
+ const jobId = await this.getCurrentJobId();
110
+ if (!jobId) {
111
+ this.logger.warn("Job cancel command did not complete, job or job id not set");
112
+ return;
113
+ }
114
+ await this.client.delete(`/api/v1/job/${jobId}`);
115
+ }
116
+ quickStop() {
117
+ throw new Error("Method not implemented.");
118
+ }
119
+ sendGcode(script) {
120
+ throw new Error("Method not implemented.");
121
+ }
122
+ movePrintHead(amounts) {
123
+ throw new Error("Method not implemented.");
124
+ }
125
+ homeAxes(axes) {
126
+ throw new Error("Method not implemented.");
127
+ }
128
+ async downloadFile(path) {
129
+ const fileReference = await this.getFileRaw(path);
130
+ const pathUrl = fileReference.data.refs.download;
131
+ return await this.client.get(pathUrl, {
132
+ responseType: "stream"
133
+ });
134
+ }
135
+ async getFileChunk(path, startBytes, endBytes) {
136
+ const fileReference = await this.getFileRaw(path);
137
+ const pathUrl = fileReference.data.refs.download;
138
+ return await this.createClient((o)=>o.withHeaders({
139
+ Range: `bytes=${startBytes}-${endBytes}`
140
+ })).get(pathUrl);
141
+ }
142
+ async uploadFile(multerFileOrBuffer, progressToken) {
143
+ try {
144
+ let fileBuffer;
145
+ const filename = multerFileOrBuffer.originalname;
146
+ if (Buffer.isBuffer(multerFileOrBuffer)) {
147
+ this.logger.log("Using file directly from memory buffer for upload");
148
+ fileBuffer = multerFileOrBuffer;
149
+ } else {
150
+ const filePath = multerFileOrBuffer.path;
151
+ this.logger.log(`Reading file from disk for upload: ${filePath}`);
152
+ fileBuffer = (0, _fs.readFileSync)(filePath);
153
+ }
154
+ const contentLength = fileBuffer.length;
155
+ const response = await this.createClient((b)=>{
156
+ b.withHeaders({
157
+ "Content-Length": contentLength.toString(),
158
+ "Overwrite": "?1",
159
+ "Print-After-Upload": "?1"
160
+ }).withOnUploadProgress((p)=>{
161
+ if (progressToken) {
162
+ this.eventEmitter2.emit(`${(0, _eventconstants.uploadProgressEvent)(progressToken)}`, progressToken, p);
163
+ }
164
+ });
165
+ }).put(`/api/v1/files/usb/${encodeURIComponent(filename)}`, fileBuffer);
166
+ if (progressToken) {
167
+ this.eventEmitter2.emit(`${(0, _eventconstants.uploadDoneEvent)(progressToken)}`, progressToken);
168
+ }
169
+ return response.data;
170
+ } catch (e) {
171
+ if (progressToken) {
172
+ this.eventEmitter2.emit(`${(0, _eventconstants.uploadFailedEvent)(progressToken)}`, progressToken, e?.message);
173
+ }
174
+ let data;
175
+ try {
176
+ data = JSON.parse(e.response?.body);
177
+ } catch {
178
+ data = e.response?.body;
179
+ }
180
+ throw new _runtimeexceptions.ExternalServiceError({
181
+ error: e.message,
182
+ statusCode: e.response?.statusCode,
183
+ data,
184
+ success: false,
185
+ stack: e.stack
186
+ }, "Prusa-Link");
187
+ }
188
+ }
189
+ async deleteFile(path) {
190
+ await this.client.delete(`/api/v1/files/usb/${path}`);
191
+ }
192
+ async deleteFolder(path) {
193
+ await this.client.delete(`/api/v1/files/usb/${path}`);
194
+ }
195
+ getSettings() {
196
+ throw new Error("Method not implemented.");
197
+ }
198
+ getReprintState() {
199
+ throw new Error("Method not implemented.");
200
+ }
201
+ getFileRaw(path) {
202
+ return this.client.get(`/api/v1/files/usb/${path}`);
203
+ }
204
+ async getCurrentJobId() {
205
+ const status = await this.getStatus();
206
+ return status.job?.id;
207
+ }
208
+ createClient(buildFluentOptions) {
209
+ const builder = new _prusalinkhttpclientbuilder.PrusaLinkHttpClientBuilder();
210
+ return this.httpClientFactory.createClientWithBaseUrl(builder, this.printerLogin.printerURL, (b)=>{
211
+ this.logger.debug("Building API client", this.logMeta());
212
+ b.withDigestAuth(this.printerLogin.username, this.printerLogin.password, (error)=>{
213
+ this.logger.error("Authentication error occurred", error);
214
+ }, (error, attemptCount)=>{
215
+ this.logger.log(`Authentication attempt count ${attemptCount} for method ${error.config?.method?.toUpperCase()} path ${error.config?.url}`, this.logMeta());
216
+ }, (authHeader)=>{
217
+ this.logger.debug("Authentication successful, saving auth header for later reuse", this.logMeta());
218
+ this.authHeader = authHeader;
219
+ });
220
+ if (this.authHeader) {
221
+ b.withAuthHeader(this.authHeader);
222
+ }
223
+ if (buildFluentOptions && typeof buildFluentOptions === "function") {
224
+ buildFluentOptions(b);
225
+ }
226
+ });
227
+ }
228
+ logMeta() {
229
+ return defaultLog;
230
+ }
231
+ }
232
+
233
+ //# sourceMappingURL=prusa-link.api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/prusa-link/prusa-link.api.ts"],"names":["PrusaLinkApi","defaultLog","adapter","logger","authHeader","constructor","loggerFactory","eventEmitter2","httpClientFactory","printerLogin","name","debug","logMeta","type","PrusaLinkType","login","client","createClient","getVersion","response","get","data","server","getFiles","files","filter","dir","path","children","map","f","display","date","size","getFile","getFileRaw","getStatus","getPrinterState","getJobState","connect","Error","disconnect","restartServer","restartHost","restartPrinterFirmware","startPrint","post","pausePrint","jobId","getCurrentJobId","warn","put","resumePrint","cancelPrint","delete","quickStop","sendGcode","script","movePrintHead","amounts","homeAxes","axes","downloadFile","fileReference","pathUrl","refs","download","responseType","getFileChunk","startBytes","endBytes","o","withHeaders","Range","uploadFile","multerFileOrBuffer","progressToken","fileBuffer","filename","originalname","Buffer","isBuffer","log","filePath","readFileSync","contentLength","length","b","toString","withOnUploadProgress","p","emit","uploadProgressEvent","encodeURIComponent","uploadDoneEvent","e","uploadFailedEvent","message","JSON","parse","body","ExternalServiceError","error","statusCode","success","stack","deleteFile","deleteFolder","getSettings","getReprintState","status","job","id","buildFluentOptions","builder","PrusaLinkHttpClientBuilder","createClientWithBaseUrl","printerURL","withDigestAuth","username","password","attemptCount","config","method","toUpperCase","url","withAuthHeader"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=digest-auth.params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/utils/digest-auth.params.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "generateDigestAuthHeader", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return generateDigestAuthHeader;
9
+ }
10
+ });
11
+ const _nodecrypto = require("node:crypto");
12
+ function generateDigestAuthHeader(params) {
13
+ const { username, password, method, uri, realm, nonce, qop, nc, cnonce } = params;
14
+ const ha1 = (0, _nodecrypto.createHash)("md5").update(`${username}:${realm}:${password}`).digest("hex");
15
+ const ha2 = (0, _nodecrypto.createHash)("md5").update(`${method}:${uri}`).digest("hex");
16
+ let response;
17
+ let authHeader;
18
+ if (qop) {
19
+ response = (0, _nodecrypto.createHash)("md5").update(`${ha1}:${nonce}:${nc}:${cnonce}:${qop}:${ha2}`).digest("hex");
20
+ authHeader = `Digest username="${username}", realm="${realm}", nonce="${nonce}", uri="${uri}", qop=${qop}, nc=${nc}, cnonce="${cnonce}", response="${response}"`;
21
+ } else {
22
+ response = (0, _nodecrypto.createHash)("md5").update(`${ha1}:${nonce}:${ha2}`).digest("hex");
23
+ authHeader = `Digest username="${username}", realm="${realm}", nonce="${nonce}", uri="${uri}", response="${response}"`;
24
+ }
25
+ return authHeader;
26
+ }
27
+
28
+ //# sourceMappingURL=digest-auth.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/prusa-link/utils/digest-auth.util.ts"],"names":["generateDigestAuthHeader","params","username","password","method","uri","realm","nonce","qop","nc","cnonce","ha1","createHash","update","digest","ha2","response","authHeader"],"mappings":";;;;+BAGgBA;;;eAAAA;;;4BAHW;AAGpB,SAASA,yBAAyBC,MAAwB;IAC/D,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAEC,KAAK,EAAEC,GAAG,EAAEC,EAAE,EAAEC,MAAM,EAAE,GAAGT;IAE3E,MAAMU,MAAMC,IAAAA,sBAAU,EAAC,OAAOC,MAAM,CAAC,GAAGX,SAAS,CAAC,EAAEI,MAAM,CAAC,EAAEH,UAAU,EAAEW,MAAM,CAAC;IAChF,MAAMC,MAAMH,IAAAA,sBAAU,EAAC,OAAOC,MAAM,CAAC,GAAGT,OAAO,CAAC,EAAEC,KAAK,EAAES,MAAM,CAAC;IAEhE,IAAIE;IACJ,IAAIC;IACJ,IAAIT,KAAK;QAEPQ,WAAWJ,IAAAA,sBAAU,EAAC,OAAOC,MAAM,CAAC,GAAGF,IAAI,CAAC,EAAEJ,MAAM,CAAC,EAAEE,GAAG,CAAC,EAAEC,OAAO,CAAC,EAAEF,IAAI,CAAC,EAAEO,KAAK,EAAED,MAAM,CAAC;QAE5FG,aAAa,CAAC,iBAAiB,EAAEf,SAAS,UAAU,EAAEI,MAAM,UAAU,EAAEC,MAAM,QAAQ,EAAEF,IAAI,OAAO,EAAEG,IAAI,KAAK,EAAEC,GAAG,UAAU,EAAEC,OAAO,aAAa,EAAEM,SAAS,CAAC,CAAC;IAClK,OAAO;QAELA,WAAWJ,IAAAA,sBAAU,EAAC,OAAOC,MAAM,CAAC,GAAGF,IAAI,CAAC,EAAEJ,MAAM,CAAC,EAAEQ,KAAK,EAAED,MAAM,CAAC;QAErEG,aAAa,CAAC,iBAAiB,EAAEf,SAAS,UAAU,EAAEI,MAAM,UAAU,EAAEC,MAAM,QAAQ,EAAEF,IAAI,aAAa,EAAEW,SAAS,CAAC,CAAC;IACxH;IAEA,OAAOC;AACT"}