@fdm-monster/server 1.9.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/.env.template +8 -7
  2. package/.yarn/install-state.gz +0 -0
  3. package/CONTRIBUTING.md +5 -5
  4. package/README.md +9 -8
  5. package/RELEASE_NOTES.MD +52 -0
  6. package/SECURITY.md +1 -1
  7. package/biome.json +8 -5
  8. package/dist/consoles/download-github-releases.js +3 -3
  9. package/dist/consoles/launch-http-servers.js +4 -4
  10. package/dist/consoles/launch-http-servers.js.map +1 -1
  11. package/dist/consoles/mock-bambu.server.js +50 -30
  12. package/dist/consoles/mock-bambu.server.js.map +1 -1
  13. package/dist/consoles/mock-camera/default-image.js +13 -0
  14. package/dist/consoles/mock-camera/default-image.js.map +1 -0
  15. package/dist/consoles/mock-camera/mock-camera.server.js +160 -0
  16. package/dist/consoles/mock-camera/mock-camera.server.js.map +1 -0
  17. package/dist/consoles/mock-octoprint.server.js +281 -73
  18. package/dist/consoles/mock-octoprint.server.js.map +1 -1
  19. package/dist/consoles/mock-prusalink.server.js +17 -17
  20. package/dist/consoles/mock-prusalink.server.js.map +1 -1
  21. package/dist/consoles/typeorm-create.js +135 -0
  22. package/dist/consoles/typeorm-create.js.map +1 -0
  23. package/dist/consoles/typeorm-generate.js +8 -8
  24. package/dist/consoles/typeorm-generate.js.map +1 -1
  25. package/dist/consoles/utils/api-messages.js.map +1 -1
  26. package/dist/constants/authorization.constants.js +25 -31
  27. package/dist/constants/authorization.constants.js.map +1 -1
  28. package/dist/constants/event.constants.js.map +1 -1
  29. package/dist/constants/server-settings.constants.js +3 -19
  30. package/dist/constants/server-settings.constants.js.map +1 -1
  31. package/dist/container.js +43 -59
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.tokens.js +9 -6
  34. package/dist/container.tokens.js.map +1 -1
  35. package/dist/controllers/auth.controller.js +1 -1
  36. package/dist/controllers/auth.controller.js.map +1 -1
  37. package/dist/controllers/batch-call.controller.js +7 -25
  38. package/dist/controllers/batch-call.controller.js.map +1 -1
  39. package/dist/controllers/file-storage.controller.js +248 -0
  40. package/dist/controllers/file-storage.controller.js.map +1 -0
  41. package/dist/controllers/first-time-setup.controller.js +6 -5
  42. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  43. package/dist/controllers/floor.controller.js +12 -12
  44. package/dist/controllers/floor.controller.js.map +1 -1
  45. package/dist/controllers/metrics.controller.js.map +1 -1
  46. package/dist/controllers/print-job.controller.js +666 -0
  47. package/dist/controllers/print-job.controller.js.map +1 -0
  48. package/dist/controllers/print-queue.controller.js +375 -0
  49. package/dist/controllers/print-queue.controller.js.map +1 -0
  50. package/dist/controllers/printer-files.controller.js +88 -59
  51. package/dist/controllers/printer-files.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +0 -21
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/{printer-group.controller.js → printer-tag.controller.js} +51 -34
  55. package/dist/controllers/printer-tag.controller.js.map +1 -0
  56. package/dist/controllers/printer.controller.js +21 -7
  57. package/dist/controllers/printer.controller.js.map +1 -1
  58. package/dist/controllers/server-private.controller.js +2 -1
  59. package/dist/controllers/server-private.controller.js.map +1 -1
  60. package/dist/controllers/server-public.controller.js +11 -15
  61. package/dist/controllers/server-public.controller.js.map +1 -1
  62. package/dist/controllers/settings.controller.js +0 -68
  63. package/dist/controllers/settings.controller.js.map +1 -1
  64. package/dist/controllers/slicer-compat.controller.js +216 -0
  65. package/dist/controllers/slicer-compat.controller.js.map +1 -0
  66. package/dist/controllers/user.controller.js +8 -12
  67. package/dist/controllers/user.controller.js.map +1 -1
  68. package/dist/controllers/validation/batch-controller.validation.js +13 -13
  69. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  70. package/dist/controllers/validation/generic.validation.js +4 -8
  71. package/dist/controllers/validation/generic.validation.js.map +1 -1
  72. package/dist/controllers/validation/printer-files-controller.validation.js +2 -2
  73. package/dist/controllers/validation/user-controller.validation.js +14 -9
  74. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  75. package/dist/data-source.js +25 -12
  76. package/dist/data-source.js.map +1 -1
  77. package/dist/entities/camera-stream.entity.js +2 -1
  78. package/dist/entities/camera-stream.entity.js.map +1 -1
  79. package/dist/entities/floor.entity.js +3 -5
  80. package/dist/entities/floor.entity.js.map +1 -1
  81. package/dist/entities/index.js +15 -11
  82. package/dist/entities/index.js.map +1 -1
  83. package/dist/entities/print-job.entity.js +195 -0
  84. package/dist/entities/print-job.entity.js.map +1 -0
  85. package/dist/entities/{printer-group.entity.js → printer-tag.entity.js} +17 -17
  86. package/dist/entities/printer-tag.entity.js.map +1 -0
  87. package/dist/entities/printer.entity.js +4 -10
  88. package/dist/entities/printer.entity.js.map +1 -1
  89. package/dist/entities/settings.entity.js +3 -12
  90. package/dist/entities/settings.entity.js.map +1 -1
  91. package/dist/entities/{group.entity.js → tag.entity.js} +15 -8
  92. package/dist/entities/tag.entity.js.map +1 -0
  93. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  94. package/dist/handlers/logging/static.logger.js.map +1 -1
  95. package/dist/index.js +8 -2
  96. package/dist/index.js.map +1 -1
  97. package/dist/middleware/authenticate.js +4 -4
  98. package/dist/middleware/authenticate.js.map +1 -1
  99. package/dist/middleware/database.js +1 -1
  100. package/dist/middleware/exception.filter.js +114 -90
  101. package/dist/middleware/exception.filter.js.map +1 -1
  102. package/dist/middleware/global.middleware.js +10 -18
  103. package/dist/middleware/global.middleware.js.map +1 -1
  104. package/dist/middleware/param-converter.middleware.js +5 -13
  105. package/dist/middleware/param-converter.middleware.js.map +1 -1
  106. package/dist/middleware/passport.js +2 -2
  107. package/dist/middleware/passport.js.map +1 -1
  108. package/dist/middleware/printer-resolver.js.map +1 -1
  109. package/dist/middleware/printer.js +3 -2
  110. package/dist/middleware/printer.js.map +1 -1
  111. package/dist/middleware/socketio.middleware.js.map +1 -1
  112. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +1 -1
  113. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
  114. package/dist/migrations/1766576698569-DropPermissions.js +28 -0
  115. package/dist/migrations/1766576698569-DropPermissions.js.map +1 -0
  116. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +186 -0
  117. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -0
  118. package/dist/migrations/1767279607392-DropCustomGcode.js +31 -0
  119. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -0
  120. package/dist/migrations/1767291804417-DropPrintCompletions.js +37 -0
  121. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -0
  122. package/dist/migrations/1767352862576-DropSettingsFileClean.js +88 -0
  123. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -0
  124. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +107 -0
  125. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -0
  126. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +62 -0
  127. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -0
  128. package/dist/migrations/1767432108916-RenameGroupToTag.js +86 -0
  129. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -0
  130. package/dist/migrations/1767451444137-AddPrintJob.js +207 -0
  131. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -0
  132. package/dist/server.constants.js +9 -17
  133. package/dist/server.constants.js.map +1 -1
  134. package/dist/server.core.js +3 -7
  135. package/dist/server.core.js.map +1 -1
  136. package/dist/server.env.js +4 -49
  137. package/dist/server.env.js.map +1 -1
  138. package/dist/server.host.js +26 -44
  139. package/dist/server.host.js.map +1 -1
  140. package/dist/services/authentication/auth.service.js.map +1 -1
  141. package/dist/services/authentication/jwt.service.js.map +1 -1
  142. package/dist/services/bambu/bambu-ftp.adapter.js +3 -3
  143. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  144. package/dist/services/bambu/bambu-mqtt.adapter.js +74 -77
  145. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  146. package/dist/services/bambu/bambu.client.js.map +1 -1
  147. package/dist/services/bambu.api.js +11 -0
  148. package/dist/services/bambu.api.js.map +1 -1
  149. package/dist/services/core/batch-call.service.js +0 -25
  150. package/dist/services/core/batch-call.service.js.map +1 -1
  151. package/dist/services/core/multer.service.js +5 -9
  152. package/dist/services/core/multer.service.js.map +1 -1
  153. package/dist/services/core/yaml.service.js +219 -187
  154. package/dist/services/core/yaml.service.js.map +1 -1
  155. package/dist/services/file-analysis.service.js +146 -0
  156. package/dist/services/file-analysis.service.js.map +1 -0
  157. package/dist/services/file-storage.service.js +386 -0
  158. package/dist/services/file-storage.service.js.map +1 -0
  159. package/dist/services/interfaces/camera-stream.dto.js +2 -2
  160. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  161. package/dist/services/interfaces/floor.dto.js +3 -3
  162. package/dist/services/interfaces/floor.dto.js.map +1 -1
  163. package/dist/services/interfaces/{printer-group.dto.js → printer-tag.dto.js} +9 -8
  164. package/dist/services/interfaces/printer-tag.dto.js.map +1 -0
  165. package/dist/services/interfaces/{print-completion.interface.js → printer-tag.service.interface.js} +1 -1
  166. package/dist/services/interfaces/{printer-group.service.interface.js.map → printer-tag.service.interface.js.map} +1 -1
  167. package/dist/services/interfaces/printer.dto.js +2 -2
  168. package/dist/services/interfaces/printer.dto.js.map +1 -1
  169. package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
  170. package/dist/services/interfaces/role.dto.js.map +1 -1
  171. package/dist/services/interfaces/settings.dto.js +0 -1
  172. package/dist/services/interfaces/settings.dto.js.map +1 -1
  173. package/dist/services/interfaces/{group.dto.js → tag.dto.js} +1 -1
  174. package/dist/services/interfaces/tag.dto.js.map +1 -0
  175. package/dist/services/interfaces/user.dto.js.map +1 -1
  176. package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
  177. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  178. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  179. package/dist/services/moonraker.api.js +3 -0
  180. package/dist/services/moonraker.api.js.map +1 -1
  181. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +1 -0
  182. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  183. package/dist/services/octoprint/octoprint-api.routes.js +0 -7
  184. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  185. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  186. package/dist/services/octoprint/octoprint.client.js +0 -4
  187. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  188. package/dist/services/octoprint.api.js +3 -0
  189. package/dist/services/octoprint.api.js.map +1 -1
  190. package/dist/services/orm/base.service.js.map +1 -1
  191. package/dist/services/orm/camera-stream.service.js.map +1 -1
  192. package/dist/services/orm/floor-position.service.js.map +1 -1
  193. package/dist/services/orm/floor.service.js +12 -19
  194. package/dist/services/orm/floor.service.js.map +1 -1
  195. package/dist/services/orm/permission.service.js +3 -54
  196. package/dist/services/orm/permission.service.js.map +1 -1
  197. package/dist/services/orm/print-job.service.js +539 -0
  198. package/dist/services/orm/print-job.service.js.map +1 -0
  199. package/dist/services/orm/printer-tag.service.js +120 -0
  200. package/dist/services/orm/printer-tag.service.js.map +1 -0
  201. package/dist/services/orm/printer.service.js.map +1 -1
  202. package/dist/services/orm/refresh-token.service.js.map +1 -1
  203. package/dist/services/orm/role.service.js +25 -39
  204. package/dist/services/orm/role.service.js.map +1 -1
  205. package/dist/services/orm/settings.service.js +4 -15
  206. package/dist/services/orm/settings.service.js.map +1 -1
  207. package/dist/services/orm/user.service.js +17 -13
  208. package/dist/services/orm/user.service.js.map +1 -1
  209. package/dist/services/print-file-downloader.service.js +169 -0
  210. package/dist/services/print-file-downloader.service.js.map +1 -0
  211. package/dist/services/print-queue.service.js +268 -0
  212. package/dist/services/print-queue.service.js.map +1 -0
  213. package/dist/services/printer-api.factory.js +1 -1
  214. package/dist/services/printer-api.factory.js.map +1 -1
  215. package/dist/services/printer-api.interface.js.map +1 -1
  216. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
  217. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +1 -3
  218. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  219. package/dist/services/prusa-link/prusa-link.api.js +4 -1
  220. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  221. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
  222. package/dist/services/validators/floor-service.validation.js +25 -31
  223. package/dist/services/validators/floor-service.validation.js.map +1 -1
  224. package/dist/services/validators/print-job.validation.js +31 -0
  225. package/dist/services/validators/print-job.validation.js.map +1 -0
  226. package/dist/services/validators/settings-service.validation.js +0 -22
  227. package/dist/services/validators/settings-service.validation.js.map +1 -1
  228. package/dist/services/validators/user-service.validation.js +15 -10
  229. package/dist/services/validators/user-service.validation.js.map +1 -1
  230. package/dist/services/validators/yaml-service.validation.js +8 -14
  231. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  232. package/dist/shared/load-controllers.js +2 -1
  233. package/dist/shared/load-controllers.js.map +1 -1
  234. package/dist/shared/runtime-settings.migration.js +1 -11
  235. package/dist/shared/runtime-settings.migration.js.map +1 -1
  236. package/dist/shared/websocket-rpc-extended.adapter.js +13 -4
  237. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  238. package/dist/shared/websocket.adapter.js.map +1 -1
  239. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  240. package/dist/state/file.cache.js +6 -6
  241. package/dist/state/file.cache.js.map +1 -1
  242. package/dist/state/floor.store.js +3 -10
  243. package/dist/state/floor.store.js.map +1 -1
  244. package/dist/state/printer-events.cache.js +180 -20
  245. package/dist/state/printer-events.cache.js.map +1 -1
  246. package/dist/state/printer-files.store.js.map +1 -1
  247. package/dist/state/printer-socket.store.js +25 -20
  248. package/dist/state/printer-socket.store.js.map +1 -1
  249. package/dist/state/printer-thumbnail.cache.js +98 -188
  250. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  251. package/dist/state/printer.cache.js +3 -13
  252. package/dist/state/printer.cache.js.map +1 -1
  253. package/dist/state/settings.store.js +4 -42
  254. package/dist/state/settings.store.js.map +1 -1
  255. package/dist/state/socket-io.gateway.js +1 -1
  256. package/dist/state/socket-io.gateway.js.map +1 -1
  257. package/dist/state/test-printer-socket.store.js +6 -3
  258. package/dist/state/test-printer-socket.store.js.map +1 -1
  259. package/dist/tasks/boot.task.js +11 -91
  260. package/dist/tasks/boot.task.js.map +1 -1
  261. package/dist/tasks/print-job-analysis.task.js +116 -0
  262. package/dist/tasks/print-job-analysis.task.js.map +1 -0
  263. package/dist/tasks/printer-files-load.task.js +29 -0
  264. package/dist/tasks/printer-files-load.task.js.map +1 -0
  265. package/dist/tasks/socketio.task.js +1 -1
  266. package/dist/tasks/socketio.task.js.map +1 -1
  267. package/dist/tasks.js +3 -2
  268. package/dist/tasks.js.map +1 -1
  269. package/dist/utils/cache/key-diff.cache.js +20 -61
  270. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  271. package/dist/utils/parsers/3mf.parser.js +337 -0
  272. package/dist/utils/parsers/3mf.parser.js.map +1 -0
  273. package/dist/utils/parsers/bgcode.parser.js +223 -0
  274. package/dist/utils/parsers/bgcode.parser.js.map +1 -0
  275. package/dist/utils/parsers/gcode.parser.js +254 -0
  276. package/dist/utils/parsers/gcode.parser.js.map +1 -0
  277. package/dist/utils/swagger/decorators.js +39 -0
  278. package/dist/utils/swagger/decorators.js.map +1 -0
  279. package/dist/utils/swagger/generator.js +196 -0
  280. package/dist/utils/swagger/generator.js.map +1 -0
  281. package/dist/utils/swagger/swagger.js +93 -0
  282. package/dist/utils/swagger/swagger.js.map +1 -0
  283. package/package.json +24 -30
  284. package/dist/controllers/custom-gcode.controller.js +0 -150
  285. package/dist/controllers/custom-gcode.controller.js.map +0 -1
  286. package/dist/controllers/print-completion.controller.js +0 -118
  287. package/dist/controllers/print-completion.controller.js.map +0 -1
  288. package/dist/controllers/printer-group.controller.js.map +0 -1
  289. package/dist/entities/custom-gcode.entity.js +0 -49
  290. package/dist/entities/custom-gcode.entity.js.map +0 -1
  291. package/dist/entities/group.entity.js.map +0 -1
  292. package/dist/entities/permission.entity.js +0 -37
  293. package/dist/entities/permission.entity.js.map +0 -1
  294. package/dist/entities/print-completion.entity.js +0 -90
  295. package/dist/entities/print-completion.entity.js.map +0 -1
  296. package/dist/entities/printer-group.entity.js.map +0 -1
  297. package/dist/models/Auth/Permission.js +0 -20
  298. package/dist/models/Auth/Permission.js.map +0 -1
  299. package/dist/models/Auth/RefreshToken.js +0 -41
  300. package/dist/models/Auth/RefreshToken.js.map +0 -1
  301. package/dist/models/Auth/Role.js +0 -20
  302. package/dist/models/Auth/Role.js.map +0 -1
  303. package/dist/models/Auth/User.js +0 -49
  304. package/dist/models/Auth/User.js.map +0 -1
  305. package/dist/models/CameraStream.js +0 -49
  306. package/dist/models/CameraStream.js.map +0 -1
  307. package/dist/models/CustomGcode.js +0 -28
  308. package/dist/models/CustomGcode.js.map +0 -1
  309. package/dist/models/Floor.js +0 -33
  310. package/dist/models/Floor.js.map +0 -1
  311. package/dist/models/FloorPrinter.js +0 -38
  312. package/dist/models/FloorPrinter.js.map +0 -1
  313. package/dist/models/PrintCompletion.js +0 -40
  314. package/dist/models/PrintCompletion.js.map +0 -1
  315. package/dist/models/Printer.js +0 -78
  316. package/dist/models/Printer.js.map +0 -1
  317. package/dist/models/Settings.js +0 -150
  318. package/dist/models/Settings.js.map +0 -1
  319. package/dist/models/index.js +0 -54
  320. package/dist/models/index.js.map +0 -1
  321. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -45
  322. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +0 -1
  323. package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -35
  324. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +0 -1
  325. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -35
  326. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +0 -1
  327. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +0 -60
  328. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +0 -1
  329. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +0 -30
  330. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +0 -1
  331. package/dist/mongo-migrations/20230716065316-user-remove-name.js +0 -30
  332. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +0 -1
  333. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js +0 -35
  334. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +0 -1
  335. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js +0 -41
  336. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +0 -1
  337. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +0 -41
  338. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +0 -1
  339. package/dist/services/interfaces/custom-gcode.dto.js +0 -18
  340. package/dist/services/interfaces/custom-gcode.dto.js.map +0 -1
  341. package/dist/services/interfaces/custom-gcode.service.interface.js +0 -6
  342. package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -1
  343. package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -1
  344. package/dist/services/interfaces/group.dto.js.map +0 -1
  345. package/dist/services/interfaces/permission.dto.js +0 -16
  346. package/dist/services/interfaces/permission.dto.js.map +0 -1
  347. package/dist/services/interfaces/print-completion-context.dto.js +0 -6
  348. package/dist/services/interfaces/print-completion-context.dto.js.map +0 -1
  349. package/dist/services/interfaces/print-completion.dto.js +0 -38
  350. package/dist/services/interfaces/print-completion.dto.js.map +0 -1
  351. package/dist/services/interfaces/print-completion.interface.js.map +0 -1
  352. package/dist/services/interfaces/printer-group.dto.js.map +0 -1
  353. package/dist/services/interfaces/printer-group.service.interface.js +0 -6
  354. package/dist/services/mongoose/camera-stream.service.js +0 -67
  355. package/dist/services/mongoose/camera-stream.service.js.map +0 -1
  356. package/dist/services/mongoose/custom-gcode.service.js +0 -50
  357. package/dist/services/mongoose/custom-gcode.service.js.map +0 -1
  358. package/dist/services/mongoose/floor.service.js +0 -139
  359. package/dist/services/mongoose/floor.service.js.map +0 -1
  360. package/dist/services/mongoose/permission.service.js +0 -73
  361. package/dist/services/mongoose/permission.service.js.map +0 -1
  362. package/dist/services/mongoose/print-completion.service.js +0 -134
  363. package/dist/services/mongoose/print-completion.service.js.map +0 -1
  364. package/dist/services/mongoose/print-completion.shared.js +0 -59
  365. package/dist/services/mongoose/print-completion.shared.js.map +0 -1
  366. package/dist/services/mongoose/printer.service.js +0 -216
  367. package/dist/services/mongoose/printer.service.js.map +0 -1
  368. package/dist/services/mongoose/refresh-token.service.js +0 -104
  369. package/dist/services/mongoose/refresh-token.service.js.map +0 -1
  370. package/dist/services/mongoose/role.service.js +0 -132
  371. package/dist/services/mongoose/role.service.js.map +0 -1
  372. package/dist/services/mongoose/settings.service.js +0 -124
  373. package/dist/services/mongoose/settings.service.js.map +0 -1
  374. package/dist/services/mongoose/user.service.js +0 -180
  375. package/dist/services/mongoose/user.service.js.map +0 -1
  376. package/dist/services/orm/custom-gcode.service.js +0 -42
  377. package/dist/services/orm/custom-gcode.service.js.map +0 -1
  378. package/dist/services/orm/print-completion.service.js +0 -87
  379. package/dist/services/orm/print-completion.service.js.map +0 -1
  380. package/dist/services/orm/printer-group.service.js +0 -109
  381. package/dist/services/orm/printer-group.service.js.map +0 -1
  382. package/dist/services/validators/camera-service.validation.js +0 -19
  383. package/dist/services/validators/camera-service.validation.js.map +0 -1
  384. package/dist/services/validators/print-completion-service.validation.js +0 -33
  385. package/dist/services/validators/print-completion-service.validation.js.map +0 -1
  386. package/dist/shared.constants.js +0 -15
  387. package/dist/shared.constants.js.map +0 -1
  388. package/dist/tasks/print-completion.socketio.task.js +0 -91
  389. package/dist/tasks/print-completion.socketio.task.js.map +0 -1
  390. package/dist/tasks/printer-file-clean.task.js +0 -74
  391. package/dist/tasks/printer-file-clean.task.js.map +0 -1
  392. package/migrate-mongo-config.js +0 -45
  393. /package/dist/services/{interfaces → octoprint/dto/files}/gcode-analysis.dto.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orm/printer-tag.service.ts"],"names":["PrinterTagService","BaseService","PrinterTag","PrinterTagDto","tagRepository","typeormService","getDataSource","getRepository","Tag","listTags","tags","find","tagRecords","tag","id","name","color","printers","repository","findBy","tagId","Object","values","getTag","findOneBy","NotFoundException","getPrintersByTag","printerTags","createTag","dto","validate","entity","create","save","updateTagName","updateDto","assign","update","updateTagColor","deleteTag","delete","addPrinterToTag","printerId","alreadyExisting","removePrinterFromTag","toDto"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/printer.service.ts"],"names":["PrinterService","BaseService","Printer","PrinterDto","CreatePrinterDto","logger","loggerFactory","typeormService","eventEmitter2","name","toDto","entity","id","enabled","disabledReason","dateAdded","apiKey","username","password","printerURL","printerType","list","repository","find","order","create","newPrinter","emitEvent","mergedPrinter","validateAndDefault","Date","now","printer","emit","printerEvents","printerCreated","update","printerId","partial","get","normalizeUrl","defaultProtocol","defaultHttpProtocol","Object","assign","validateInput","createPrinterSchema","updatedPrinter","printerUpdated","batchImport","printers","length","log","newPrinters","createdPrinter","push","batchPrinterCreated","delete","printersDeleted","printerIds","deleteMany","updateDisabledReason","updateEnabled","updateFeedRate","feedRate","updateFlowRate","flowRate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/orm/printer.service.ts"],"names":["PrinterService","BaseService","Printer","PrinterDto","CreatePrinterDto","logger","loggerFactory","typeormService","eventEmitter2","name","toDto","entity","id","enabled","disabledReason","dateAdded","apiKey","username","password","printerURL","printerType","list","repository","find","order","create","newPrinter","emitEvent","mergedPrinter","validateAndDefault","Date","now","printer","emit","printerEvents","printerCreated","update","printerId","partial","get","normalizeUrl","defaultProtocol","defaultHttpProtocol","Object","assign","validateInput","createPrinterSchema","updatedPrinter","printerUpdated","batchImport","printers","length","log","newPrinters","createdPrinter","push","batchPrinterCreated","delete","printersDeleted","printerIds","deleteMany","updateDisabledReason","updateEnabled","updateFeedRate","feedRate","updateFlowRate","flowRate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/refresh-token.service.ts"],"names":["RefreshTokenService","BaseService","RefreshToken","RefreshTokenDto","logger","settingsStore","loggerFactory","typeormService","name","toDto","entity","id","userId","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","repository","findOneBy","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","update","purgeAllOutdatedRefreshTokens","result","delete","LessThan","affected","debug","deleteRefreshTokenByUserId","deleteRefreshToken","purgeOutdatedRefreshTokensByUserId"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/orm/refresh-token.service.ts"],"names":["RefreshTokenService","BaseService","RefreshToken","RefreshTokenDto","logger","settingsStore","loggerFactory","typeormService","name","toDto","entity","id","userId","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","repository","findOneBy","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","update","purgeAllOutdatedRefreshTokens","result","delete","LessThan","affected","debug","deleteRefreshTokenByUserId","deleteRefreshToken","purgeOutdatedRefreshTokensByUserId"],"mappings":"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"}
@@ -18,10 +18,8 @@ class RoleService extends (0, _baseservice.BaseService)(_entities.Role, _roledto
18
18
  appDefaultRole;
19
19
  appDefaultRoleNoLogin;
20
20
  settingsStore;
21
- logger;
22
- constructor(typeormService, loggerFactory, appDefaultRole, appDefaultRoleNoLogin, settingsStore){
21
+ constructor(typeormService, appDefaultRole, appDefaultRoleNoLogin, settingsStore){
23
22
  super(typeormService), this.appDefaultRole = appDefaultRole, this.appDefaultRoleNoLogin = appDefaultRoleNoLogin, this.settingsStore = settingsStore;
24
- this.logger = loggerFactory(RoleService.name);
25
23
  }
26
24
  _roles = [];
27
25
  get roles() {
@@ -33,13 +31,12 @@ class RoleService extends (0, _baseservice.BaseService)(_entities.Role, _roledto
33
31
  }
34
32
  return this.appDefaultRoleNoLogin;
35
33
  }
36
- async getAppDefaultRoleIds() {
34
+ async getAppDefaultRoleNames() {
37
35
  if (!this._roles?.length) {
38
36
  await this.syncRoles();
39
37
  }
40
- const guestRole = this.getRoleByName(await this.getAppDefaultRole());
41
38
  return [
42
- guestRole.id
39
+ await this.getAppDefaultRole()
43
40
  ];
44
41
  }
45
42
  toDto(role) {
@@ -48,31 +45,26 @@ class RoleService extends (0, _baseservice.BaseService)(_entities.Role, _roledto
48
45
  name: role.name
49
46
  };
50
47
  }
51
- getRolesPermissions(roles) {
48
+ getRolesPermissions(roleNames) {
52
49
  let permissions = [];
53
- if (!roles?.length) return [];
54
- for (let role of roles){
55
- const normalizedRole = this.normalizeRoleIdOrName(role);
56
- const rolePermissions = this.getRolePermissions(normalizedRole);
50
+ if (!roleNames?.length) return [];
51
+ for (const roleName of roleNames){
52
+ const rolePermissions = this.getRolePermissions(roleName);
57
53
  permissions = (0, _lodash.union)(permissions, rolePermissions);
58
54
  }
59
55
  return permissions;
60
56
  }
61
57
  authorizeRoles(requiredRoles, assignedRoles, subset) {
62
- let isAuthorized = false;
63
58
  if (!requiredRoles?.length) return true;
64
- requiredRoles.forEach((rr)=>{
65
- const result = this.authorizeRole(rr, assignedRoles);
59
+ let isAuthorized = !subset;
60
+ for (const requiredRole of requiredRoles){
61
+ const result = this.authorizeRole(requiredRole, assignedRoles);
66
62
  isAuthorized = subset ? isAuthorized || result : isAuthorized && result;
67
- });
63
+ }
68
64
  return isAuthorized;
69
65
  }
70
66
  authorizeRole(requiredRole, assignedRoles) {
71
- return !!assignedRoles.find((ar)=>{
72
- const normalizedRole = this.normalizeRoleIdOrName(ar);
73
- if (!normalizedRole) return false;
74
- return normalizedRole === requiredRole;
75
- });
67
+ return assignedRoles.includes(requiredRole);
76
68
  }
77
69
  getManyRoles(roleIds) {
78
70
  return roleIds.map((roleId)=>this.getRole(roleId));
@@ -87,15 +79,17 @@ class RoleService extends (0, _baseservice.BaseService)(_entities.Role, _roledto
87
79
  if (!role) throw new _runtimeexceptions.NotFoundException(`Role by provided name was not found`);
88
80
  return role;
89
81
  }
90
- getRolePermissions(role) {
91
- if (!role || !role?.length) {
92
- return [];
93
- }
94
- const normalizedRole = this.normalizeRoleIdOrName(role);
95
- if (!normalizedRole?.length) {
82
+ getRolePermissions(roleName) {
83
+ if (!roleName) {
96
84
  return [];
97
85
  }
98
- return _authorizationconstants.ROLE_PERMS[normalizedRole];
86
+ return _authorizationconstants.ROLE_PERMS[roleName] ?? [];
87
+ }
88
+ roleIdsToRoleNames(roleIds) {
89
+ return roleIds.map((roleId)=>{
90
+ const role = this._roles.find((r)=>r.id === roleId);
91
+ return role?.name;
92
+ }).filter((name)=>name !== undefined);
99
93
  }
100
94
  async getSynchronizedRoleByName(roleName) {
101
95
  if (!this._roles?.length) {
@@ -105,28 +99,20 @@ class RoleService extends (0, _baseservice.BaseService)(_entities.Role, _roledto
105
99
  }
106
100
  async syncRoles() {
107
101
  this._roles = [];
108
- for (let roleName of Object.values(_authorizationconstants.ROLES)){
102
+ for (const roleName of Object.values(_authorizationconstants.ROLES)){
109
103
  const storedRole = await this.repository.findOneBy({
110
104
  name: roleName
111
105
  });
112
- if (!storedRole) {
106
+ if (storedRole) {
107
+ this._roles.push(storedRole);
108
+ } else {
113
109
  const newRole = await this.create({
114
110
  name: roleName
115
111
  });
116
112
  this._roles.push(newRole);
117
- } else {
118
- this._roles.push(storedRole);
119
113
  }
120
114
  }
121
115
  }
122
- normalizeRoleIdOrName(assignedRole) {
123
- const roleInstance = this.roles.find((r)=>r.id === assignedRole || r.name === assignedRole);
124
- if (!roleInstance) {
125
- this.logger.warn(`The role by provided id was not found. Skipping.`);
126
- return;
127
- }
128
- return roleInstance.name;
129
- }
130
116
  }
131
117
 
132
118
  //# sourceMappingURL=role.service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/role.service.ts"],"names":["RoleService","BaseService","Role","RoleDto","logger","typeormService","loggerFactory","appDefaultRole","appDefaultRoleNoLogin","settingsStore","name","_roles","roles","getAppDefaultRole","getLoginRequired","getAppDefaultRoleIds","length","syncRoles","guestRole","getRoleByName","id","toDto","role","getRolesPermissions","permissions","normalizedRole","normalizeRoleIdOrName","rolePermissions","getRolePermissions","union","authorizeRoles","requiredRoles","assignedRoles","subset","isAuthorized","forEach","rr","result","authorizeRole","requiredRole","find","ar","getManyRoles","roleIds","map","roleId","getRole","r","NotFoundException","roleName","ROLE_PERMS","getSynchronizedRoleByName","Object","values","ROLES","storedRole","repository","findOneBy","newRole","create","push","assignedRole","roleInstance","warn"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/orm/role.service.ts"],"names":["RoleService","BaseService","Role","RoleDto","typeormService","appDefaultRole","appDefaultRoleNoLogin","settingsStore","_roles","roles","getAppDefaultRole","getLoginRequired","getAppDefaultRoleNames","length","syncRoles","toDto","role","id","name","getRolesPermissions","roleNames","permissions","roleName","rolePermissions","getRolePermissions","union","authorizeRoles","requiredRoles","assignedRoles","subset","isAuthorized","requiredRole","result","authorizeRole","includes","getManyRoles","roleIds","map","roleId","getRole","find","r","NotFoundException","getRoleByName","ROLE_PERMS","roleIdsToRoleNames","filter","undefined","getSynchronizedRoleByName","Object","values","ROLES","storedRole","repository","findOneBy","push","newRole","create"],"mappings":"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"}
@@ -18,24 +18,20 @@ const _validators = require("../../handlers/validators");
18
18
  class SettingsService extends (0, _baseservice.BaseService)(_entities.Settings, _settingsdto.SettingsDto) {
19
19
  toDto(entity) {
20
20
  return {
21
- [_serversettingsconstants.serverSettingsKey]: {
22
- ...entity[_serversettingsconstants.serverSettingsKey],
23
- experimentalTypeormSupport: true
24
- },
21
+ [_serversettingsconstants.serverSettingsKey]: entity[_serversettingsconstants.serverSettingsKey],
25
22
  [_serversettingsconstants.frontendSettingKey]: entity[_serversettingsconstants.frontendSettingKey],
26
- [_serversettingsconstants.printerFileCleanSettingKey]: entity[_serversettingsconstants.printerFileCleanSettingKey],
27
23
  [_serversettingsconstants.wizardSettingKey]: entity[_serversettingsconstants.wizardSettingKey],
28
24
  [_serversettingsconstants.timeoutSettingKey]: entity[_serversettingsconstants.timeoutSettingKey]
29
25
  };
30
26
  }
31
27
  async getOrCreate() {
32
28
  let settings = await this.getOptional();
33
- if (!settings) {
34
- return await this.create((0, _serversettingsconstants.getDefaultSettings)());
35
- } else {
29
+ if (settings) {
36
30
  settings = (0, _runtimesettingsmigration.migrateSettingsRuntime)(settings);
37
31
  const settingsId = settings.id;
38
32
  return await this.update(settingsId, settings);
33
+ } else {
34
+ return await this.create((0, _serversettingsconstants.getDefaultSettings)());
39
35
  }
40
36
  }
41
37
  async updateServerSettings(update) {
@@ -61,13 +57,6 @@ class SettingsService extends (0, _baseservice.BaseService)(_entities.Settings,
61
57
  await this.update(entity.id, entity);
62
58
  return entity;
63
59
  }
64
- async updateFileCleanSettings(update) {
65
- const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.fileCleanSettingsUpdateSchema);
66
- const entity = await this.getOrCreate();
67
- entity[_serversettingsconstants.printerFileCleanSettingKey] = validatedInput;
68
- await this.update(entity.id, entity);
69
- return entity;
70
- }
71
60
  async updateFrontendSettings(update) {
72
61
  const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.frontendSettingsUpdateSchema);
73
62
  const entity = await this.getOrCreate();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/settings.service.ts"],"names":["SettingsService","BaseService","Settings","SettingsDto","toDto","entity","serverSettingsKey","experimentalTypeormSupport","frontendSettingKey","printerFileCleanSettingKey","wizardSettingKey","timeoutSettingKey","getOrCreate","settings","getOptional","create","getDefaultSettings","migrateSettingsRuntime","settingsId","id","update","updateServerSettings","validatedInput","validateInput","serverSettingsUpdateSchema","updateJwtSecretCredentialSetting","jwtSecretCredentialSettingUpdateSchema","credentialSettingsKey","jwtSecret","updateCredentialSettings","credentialSettingUpdateSchema","refreshTokenExpiry","refreshTokenAttempts","jwtExpiresIn","updateFileCleanSettings","fileCleanSettingsUpdateSchema","updateFrontendSettings","frontendSettingsUpdateSchema","updateTimeoutSettings","timeoutSettingsUpdateSchema","updateWizardSettings","wizardUpdateSchema","settingsList","repository","find","take","length"],"mappings":";;;;+BA4BaA;;;eAAAA;;;0BA5BY;yCASlB;6BACqB;6BACA;2CAYrB;0CACgC;4BACT;AAGvB,MAAMA,wBACHC,IAAAA,wBAAW,EAACC,kBAAQ,EAAEC,wBAAW;IAGzCC,MAAMC,MAAgB,EAAe;QACnC,OAAO;YACL,CAACC,0CAAiB,CAAC,EAAE;gBACnB,GAAGD,MAAM,CAACC,0CAAiB,CAAC;gBAC5BC,4BAA4B;YAC9B;YACA,CAACC,2CAAkB,CAAC,EAAEH,MAAM,CAACG,2CAAkB,CAAC;YAChD,CAACC,mDAA0B,CAAC,EAAEJ,MAAM,CAACI,mDAA0B,CAAC;YAChE,CAACC,yCAAgB,CAAC,EAAEL,MAAM,CAACK,yCAAgB,CAAC;YAC5C,CAACC,0CAAiB,CAAC,EAAEN,MAAM,CAACM,0CAAiB,CAAC;QAChD;IACF;IAEA,MAAMC,cAAc;QAClB,IAAIC,WAAW,MAAM,IAAI,CAACC,WAAW;QAErC,IAAI,CAACD,UAAU;YACb,OAAO,MAAM,IAAI,CAACE,MAAM,CAACC,IAAAA,2CAAkB;QAC7C,OAAO;YACLH,WAAWI,IAAAA,gDAAsB,EAACJ;YAElC,MAAMK,aAAaL,SAASM,EAAE;YAC9B,OAAO,MAAM,IAAI,CAACC,MAAM,CAACF,YAAYL;QACvC;IACF;IAEA,MAAMQ,qBAAqBD,MAAkD,EAAE;QAC7E,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQI,qDAA0B;QAC7E,MAAMnB,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACC,0CAAiB,CAAC,GAAGgB;QAC5B,MAAM,IAAI,CAACF,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAMoB,iCAAiCL,MAA8D,EAAE;QACrG,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQM,iEAAsC;QACzF,MAAMrB,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACsB,8CAAqB,CAAC,CAACC,SAAS,GAAGN,eAAeM,SAAS;QAClE,MAAM,IAAI,CAACR,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAMwB,yBAAyBT,MAAqD,EAAE;QACpF,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQU,wDAA6B;QAChF,MAAMzB,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACsB,8CAAqB,CAAC,CAACI,kBAAkB,GAAGT,eAAeS,kBAAkB;QACpF1B,MAAM,CAACsB,8CAAqB,CAAC,CAACK,oBAAoB,GAAGV,eAAeU,oBAAoB;QACxF3B,MAAM,CAACsB,8CAAqB,CAAC,CAACM,YAAY,GAAGX,eAAeW,YAAY;QACxE,MAAM,IAAI,CAACb,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAM6B,wBAAwBd,MAAqD,EAAE;QACnF,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQe,wDAA6B;QAChF,MAAM9B,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACI,mDAA0B,CAAC,GAAGa;QACrC,MAAM,IAAI,CAACF,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAM+B,uBAAuBhB,MAAoD,EAAE;QACjF,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQiB,uDAA4B;QAC/E,MAAMhC,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACG,2CAAkB,CAAC,GAAGc;QAC7B,MAAM,IAAI,CAACF,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAMiC,sBAAsBlB,MAAmD,EAAE;QAC/E,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQmB,sDAA2B;QAC9E,MAAMlC,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACM,0CAAiB,CAAC,GAAGW;QAC5B,MAAM,IAAI,CAACF,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAMmC,qBAAqBpB,MAA0C,EAAE;QACrE,MAAME,iBAAiB,MAAMC,IAAAA,yBAAa,EAACH,QAAQqB,6CAAkB;QACrE,MAAMpC,SAAS,MAAM,IAAI,CAACO,WAAW;QACrCP,MAAM,CAACK,yCAAgB,CAAC,GAAGY;QAC3B,MAAM,IAAI,CAACF,MAAM,CAACf,OAAOc,EAAE,EAAEd;QAC7B,OAAOA;IACT;IAEA,MAAcS,cAAiD;QAC7D,MAAM4B,eAAe,MAAM,IAAI,CAACC,UAAU,CAACC,IAAI,CAAC;YAAEC,MAAM;QAAE;QAC1D,OAAOH,cAAcI,SAASJ,YAAY,CAAC,EAAE,GAAG;IAClD;AACF"}
1
+ {"version":3,"sources":["../../../src/services/orm/settings.service.ts"],"names":["SettingsService","BaseService","Settings","SettingsDto","toDto","entity","serverSettingsKey","frontendSettingKey","wizardSettingKey","timeoutSettingKey","getOrCreate","settings","getOptional","migrateSettingsRuntime","settingsId","id","update","create","getDefaultSettings","updateServerSettings","validatedInput","validateInput","serverSettingsUpdateSchema","updateJwtSecretCredentialSetting","jwtSecretCredentialSettingUpdateSchema","credentialSettingsKey","jwtSecret","updateCredentialSettings","credentialSettingUpdateSchema","refreshTokenExpiry","refreshTokenAttempts","jwtExpiresIn","updateFrontendSettings","frontendSettingsUpdateSchema","updateTimeoutSettings","timeoutSettingsUpdateSchema","updateWizardSettings","wizardUpdateSchema","settingsList","repository","find","take","length"],"mappings":"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"}
@@ -24,6 +24,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
24
24
  super(typeormService), this.userRoleService = userRoleService, this.roleService = roleService;
25
25
  }
26
26
  toDto(user) {
27
+ const roleIds = (user.roles ?? []).map((r)=>r.roleId);
27
28
  return {
28
29
  id: user.id,
29
30
  createdAt: user.createdAt,
@@ -32,7 +33,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
32
33
  isRootUser: user.isRootUser,
33
34
  username: user.username,
34
35
  needsPasswordChange: user.needsPasswordChange,
35
- roles: (user.roles ?? []).map((r)=>r.roleId)
36
+ roles: this.roleService.roleIdsToRoleNames(roleIds)
36
37
  };
37
38
  }
38
39
  listUsers(limit) {
@@ -43,22 +44,16 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
43
44
  async getUser(userId) {
44
45
  return this.get(userId);
45
46
  }
46
- async getUserRoleIds(userId) {
47
+ async getUserRoles(userId) {
47
48
  const userRoles = await this.userRoleService.listUserRoles(userId);
48
- return userRoles.map((ur)=>ur.roleId);
49
+ const roleIds = userRoles.map((ur)=>ur.roleId);
50
+ return this.roleService.roleIdsToRoleNames(roleIds);
49
51
  }
50
52
  findRootUsers() {
51
53
  return this.repository.findBy({
52
54
  isRootUser: true
53
55
  });
54
56
  }
55
- async findUsersByRoleId(roleId) {
56
- const userRoles = await this.userRoleService.listByRoleId(roleId);
57
- const ids = userRoles.map((u)=>u.id);
58
- return this.repository.findBy({
59
- id: (0, _typeorm.In)(ids)
60
- });
61
- }
62
57
  findVerifiedUsers() {
63
58
  return this.repository.findBy({
64
59
  isVerified: true
@@ -108,7 +103,8 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
108
103
  isRootUser
109
104
  });
110
105
  }
111
- async setUserRoleIds(userId, roleIds) {
106
+ async setUserRoles(userId, roles) {
107
+ const roleIds = roles.map((roleName)=>this.roleService.getRoleByName(roleName).id);
112
108
  await this.userRoleService.setUserRoles(userId, roleIds);
113
109
  return await this.get(userId);
114
110
  }
@@ -169,7 +165,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
169
165
  });
170
166
  }
171
167
  async register(input) {
172
- const { username, password, roles, isDemoUser, isRootUser, needsPasswordChange, isVerified } = await (0, _validators.validateInput)(input, (0, _userservicevalidation.registerUserSchema)(true));
168
+ const { username, password, roles, isDemoUser, isRootUser, needsPasswordChange, isVerified } = await (0, _validators.validateInput)(input, _userservicevalidation.registerUserSchema);
173
169
  const passwordHash = (0, _cryptoutils.hashPassword)(password);
174
170
  const result = await this.create({
175
171
  username,
@@ -179,9 +175,17 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
179
175
  isRootUser: isRootUser ?? false,
180
176
  needsPasswordChange: needsPasswordChange ?? true
181
177
  });
182
- await this.userRoleService.setUserRoles(result.id, roles);
178
+ const roleIds = roles.map((roleName)=>this.roleService.getRoleByName(roleName).id);
179
+ await this.userRoleService.setUserRoles(result.id, roleIds);
183
180
  return this.get(result.id);
184
181
  }
182
+ async findUsersByRoleId(roleId) {
183
+ const userRoles = await this.userRoleService.listByRoleId(roleId);
184
+ const ids = userRoles.map((u)=>u.id);
185
+ return this.repository.findBy({
186
+ id: (0, _typeorm.In)(ids)
187
+ });
188
+ }
185
189
  }
186
190
 
187
191
  //# sourceMappingURL=user.service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","roleService","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","roleId","listUsers","limit","list","take","getUser","userId","get","getUserRoleIds","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findUsersByRoleId","listByRoleId","ids","u","In","findVerifiedUsers","isUserRootUser","entity","deleteUser","InternalServerException","length","role","getRoleByName","ROLES","ADMIN","find","administrators","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","NotFoundException","rootUsers","update","setUserRoleIds","roleIds","setUserRoles","setVerifiedById","verifiedUsers","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordSchema","hashPassword","updatePasswordUnsafeByUsername","updatePasswordHashUnsafeByUsername","updateUsernameById","newUsername","register","input","registerUserSchema","result","create"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","roleService","toDto","user","roleIds","roles","map","r","roleId","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roleIdsToRoleNames","listUsers","limit","list","take","getUser","userId","get","getUserRoles","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findVerifiedUsers","isUserRootUser","entity","deleteUser","InternalServerException","length","role","getRoleByName","ROLES","ADMIN","find","administrators","findUsersByRoleId","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","NotFoundException","rootUsers","update","setUserRoles","roleName","setVerifiedById","verifiedUsers","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordSchema","hashPassword","updatePasswordUnsafeByUsername","updatePasswordHashUnsafeByUsername","updateUsernameById","newUsername","register","input","registerUserSchema","result","create","listByRoleId","ids","u","In"],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrintFileDownloaderService", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PrintFileDownloaderService;
9
+ }
10
+ });
11
+ const _node = require("@sentry/node");
12
+ const _nodefs = require("node:fs");
13
+ const _nodepath = require("node:path");
14
+ const _nodeos = require("node:os");
15
+ class PrintFileDownloaderService {
16
+ eventEmitter2;
17
+ printJobService;
18
+ fileStorageService;
19
+ fileAnalysisService;
20
+ printerApiFactory;
21
+ printerCache;
22
+ logger;
23
+ constructor(loggerFactory, eventEmitter2, printJobService, fileStorageService, fileAnalysisService, printerApiFactory, printerCache){
24
+ this.eventEmitter2 = eventEmitter2;
25
+ this.printJobService = printJobService;
26
+ this.fileStorageService = fileStorageService;
27
+ this.fileAnalysisService = fileAnalysisService;
28
+ this.printerApiFactory = printerApiFactory;
29
+ this.printerCache = printerCache;
30
+ this.logger = loggerFactory(PrintFileDownloaderService.name);
31
+ this.eventEmitter2.on("printJob.needsFileDownload", (event)=>{
32
+ this.handleFileDownloadRequest(event.jobId).catch((error)=>{
33
+ this.logger.error(`Failed to handle file download for job ${event.jobId}`, error);
34
+ (0, _node.captureException)(error);
35
+ });
36
+ });
37
+ this.logger.log("Print file downloader service initialized");
38
+ }
39
+ async handleFileDownloadRequest(jobId) {
40
+ this.logger.log(`Handling file download request for job ${jobId}`);
41
+ try {
42
+ const job = await this.printJobService.getJobByIdOrFail(jobId);
43
+ if (job.fileStorageId) {
44
+ this.logger.log(`Job ${jobId} already has fileStorageId ${job.fileStorageId} - skipping download`);
45
+ return;
46
+ }
47
+ if (!job.printerId) {
48
+ this.logger.error(`Job ${jobId} has no printerId - cannot download file`);
49
+ return;
50
+ }
51
+ const printer = await this.printerCache.getValue(job.printerId);
52
+ if (!printer) {
53
+ this.logger.error(`Printer ${job.printerId} not found for job ${jobId}`);
54
+ return;
55
+ }
56
+ const printerApi = this.printerApiFactory.getById(job.printerId);
57
+ this.logger.log(`Downloading file ${job.fileName} from printer ${printer.name} (${printer.printerType})`);
58
+ let fileBuffer;
59
+ try {
60
+ const response = await printerApi.downloadFile(job.fileName);
61
+ const chunks = [];
62
+ const stream = response.data;
63
+ await new Promise((resolve, reject)=>{
64
+ stream.on('data', (chunk)=>chunks.push(chunk));
65
+ stream.on('end', ()=>resolve());
66
+ stream.on('error', (err)=>reject(err));
67
+ });
68
+ fileBuffer = Buffer.concat(chunks);
69
+ } catch (downloadError) {
70
+ this.logger.error(`Failed to download file from printer: ${downloadError}`);
71
+ job.analysisState = "FAILED";
72
+ job.statusReason = `File download failed: ${downloadError instanceof Error ? downloadError.message : "Unknown error"}`;
73
+ await this.printJobService.printJobRepository.save(job);
74
+ return;
75
+ }
76
+ this.logger.log(`Downloaded ${fileBuffer.length} bytes for job ${jobId}`);
77
+ const tempPath = (0, _nodepath.join)((0, _nodeos.tmpdir)(), `fdm-monster-download-${jobId}-${Date.now()}-${job.fileName}`);
78
+ (0, _nodefs.writeFileSync)(tempPath, fileBuffer);
79
+ try {
80
+ const fileHash = await this.fileStorageService.calculateFileHash(tempPath);
81
+ this.logger.log(`File hash for job ${jobId}: ${fileHash.substring(0, 12)}...`);
82
+ const existingJob = await this.fileStorageService.findDuplicateByHash(fileHash);
83
+ let metadata;
84
+ let fileStorageId;
85
+ if (existingJob?.fileStorageId) {
86
+ const cachedMetadata = await this.fileStorageService.loadMetadata(existingJob.fileStorageId);
87
+ if (cachedMetadata) {
88
+ this.logger.log(`Duplicate file detected (job ${existingJob.id}, hash match) - reusing storage ${existingJob.fileStorageId}`);
89
+ metadata = {
90
+ ...cachedMetadata,
91
+ fileName: job.fileName
92
+ };
93
+ fileStorageId = existingJob.fileStorageId;
94
+ } else if (existingJob.analysisState === "ANALYZED" && existingJob.metadata) {
95
+ this.logger.log(`Duplicate file with DB metadata (job ${existingJob.id}) - reusing storage ${existingJob.fileStorageId}`);
96
+ metadata = {
97
+ ...existingJob.metadata,
98
+ fileName: job.fileName
99
+ };
100
+ fileStorageId = existingJob.fileStorageId;
101
+ await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, job.fileName);
102
+ } else {
103
+ this.logger.log(`Duplicate file not analyzed - reusing storage ${existingJob.fileStorageId}, analyzing now`);
104
+ const existingFilePath = this.fileStorageService.getFilePath(existingJob.fileStorageId);
105
+ const analysisResult = await this.fileAnalysisService.analyzeFile(existingFilePath);
106
+ metadata = analysisResult.metadata;
107
+ fileStorageId = existingJob.fileStorageId;
108
+ await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, job.fileName);
109
+ }
110
+ } else {
111
+ this.logger.log(`Analyzing downloaded file: ${job.fileName}`);
112
+ const analysisResult = await this.fileAnalysisService.analyzeFile(tempPath);
113
+ metadata = analysisResult.metadata;
114
+ const thumbnails = analysisResult.thumbnails;
115
+ this.logger.log(`Analysis complete: format=${metadata.fileFormat}, layers=${metadata.totalLayers}, time=${metadata.gcodePrintTimeSeconds}s, filament=${metadata.filamentUsedGrams}g`);
116
+ const fileObject = {
117
+ path: tempPath,
118
+ originalname: job.fileName,
119
+ mimetype: "application/octet-stream",
120
+ size: fileBuffer.length
121
+ };
122
+ fileStorageId = await this.fileStorageService.saveFile(fileObject, fileHash);
123
+ this.logger.log(`Saved file to storage: ${fileStorageId}`);
124
+ let thumbnailMetadata = [];
125
+ if (thumbnails.length > 0) {
126
+ thumbnailMetadata = await this.fileStorageService.saveThumbnails(fileStorageId, thumbnails);
127
+ this.logger.log(`Saved ${thumbnailMetadata.length} thumbnail(s) for ${fileStorageId}`);
128
+ }
129
+ await this.fileStorageService.saveMetadata(fileStorageId, metadata, fileHash, job.fileName, thumbnailMetadata);
130
+ this.logger.log(`Saved metadata JSON for ${fileStorageId}`);
131
+ }
132
+ job.fileStorageId = fileStorageId;
133
+ job.fileHash = fileHash;
134
+ job.fileSize = fileBuffer.length;
135
+ job.fileFormat = metadata.fileFormat;
136
+ job.metadata = metadata;
137
+ job.analysisState = "ANALYZED";
138
+ job.analyzedAt = new Date();
139
+ await this.printJobService.printJobRepository.save(job);
140
+ this.logger.log(`Successfully processed downloaded file for job ${jobId}: storageId=${fileStorageId}, analysisState=${job.analysisState}`);
141
+ } finally{
142
+ try {
143
+ (0, _nodefs.unlinkSync)(tempPath);
144
+ } catch (cleanupError) {
145
+ this.logger.warn(`Failed to clean up temp file ${tempPath}: ${cleanupError}`);
146
+ }
147
+ }
148
+ } catch (error) {
149
+ this.logger.error(`Failed to download and analyze file for job ${jobId}`, error);
150
+ (0, _node.captureException)(error);
151
+ try {
152
+ const job = await this.printJobService.printJobRepository.findOne({
153
+ where: {
154
+ id: jobId
155
+ }
156
+ });
157
+ if (job) {
158
+ job.analysisState = "FAILED";
159
+ job.statusReason = `File download/analysis failed: ${error instanceof Error ? error.message : "Unknown error"}`;
160
+ await this.printJobService.printJobRepository.save(job);
161
+ }
162
+ } catch (updateError) {
163
+ this.logger.error(`Failed to mark job ${jobId} as failed`, updateError);
164
+ }
165
+ }
166
+ }
167
+ }
168
+
169
+ //# sourceMappingURL=print-file-downloader.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/print-file-downloader.service.ts"],"names":["PrintFileDownloaderService","logger","loggerFactory","eventEmitter2","printJobService","fileStorageService","fileAnalysisService","printerApiFactory","printerCache","name","on","event","handleFileDownloadRequest","jobId","catch","error","captureException","log","job","getJobByIdOrFail","fileStorageId","printerId","printer","getValue","printerApi","getById","fileName","printerType","fileBuffer","response","downloadFile","chunks","stream","data","Promise","resolve","reject","chunk","push","err","Buffer","concat","downloadError","analysisState","statusReason","Error","message","printJobRepository","save","length","tempPath","join","tmpdir","Date","now","writeFileSync","fileHash","calculateFileHash","substring","existingJob","findDuplicateByHash","metadata","cachedMetadata","loadMetadata","id","saveMetadata","existingFilePath","getFilePath","analysisResult","analyzeFile","thumbnails","fileFormat","totalLayers","gcodePrintTimeSeconds","filamentUsedGrams","fileObject","path","originalname","mimetype","size","saveFile","thumbnailMetadata","saveThumbnails","fileSize","analyzedAt","unlinkSync","cleanupError","warn","findOne","where","updateError"],"mappings":";;;;+BAiBaA;;;eAAAA;;;sBAToB;wBACS;0BACrB;wBACE;AAMhB,MAAMA;;;;;;;IACXC,OAAsB;IAEtB,YACEC,aAA6B,EAC7B,AAAiBC,aAA4B,EAC7C,AAAiBC,eAAgC,EACjD,AAAiBC,kBAAsC,EACvD,AAAiBC,mBAAwC,EACzD,AAAiBC,iBAAoC,EACrD,AAAiBC,YAA0B,CAC3C;aANiBL,gBAAAA;aACAC,kBAAAA;aACAC,qBAAAA;aACAC,sBAAAA;aACAC,oBAAAA;aACAC,eAAAA;QAEjB,IAAI,CAACP,MAAM,GAAGC,cAAcF,2BAA2BS,IAAI;QAG3D,IAAI,CAACN,aAAa,CAACO,EAAE,CAAC,8BAA8B,CAACC;YACnD,IAAI,CAACC,yBAAyB,CAACD,MAAME,KAAK,EAAEC,KAAK,CAAC,CAACC;gBACjD,IAAI,CAACd,MAAM,CAACc,KAAK,CAAC,CAAC,uCAAuC,EAAGJ,MAAME,KAAK,EAAG,EAAEE;gBAC7EC,IAAAA,sBAAgB,EAACD;YACnB;QACF;QAEA,IAAI,CAACd,MAAM,CAACgB,GAAG,CAAC;IAClB;IAEA,MAAcL,0BAA0BC,KAAa,EAAiB;QACpE,IAAI,CAACZ,MAAM,CAACgB,GAAG,CAAC,CAAC,uCAAuC,EAAGJ,OAAQ;QAEnE,IAAI;YACF,MAAMK,MAAM,MAAM,IAAI,CAACd,eAAe,CAACe,gBAAgB,CAACN;YAGxD,IAAIK,IAAIE,aAAa,EAAE;gBACrB,IAAI,CAACnB,MAAM,CAACgB,GAAG,CAAC,CAAC,IAAI,EAAGJ,MAAO,2BAA2B,EAAGK,IAAIE,aAAa,CAAE,oBAAoB,CAAC;gBACrG;YACF;YAEA,IAAI,CAACF,IAAIG,SAAS,EAAE;gBAClB,IAAI,CAACpB,MAAM,CAACc,KAAK,CAAC,CAAC,IAAI,EAAGF,MAAO,wCAAwC,CAAC;gBAC1E;YACF;YAEA,MAAMS,UAAU,MAAM,IAAI,CAACd,YAAY,CAACe,QAAQ,CAACL,IAAIG,SAAS;YAC9D,IAAI,CAACC,SAAS;gBACZ,IAAI,CAACrB,MAAM,CAACc,KAAK,CAAC,CAAC,QAAQ,EAAGG,IAAIG,SAAS,CAAE,mBAAmB,EAAGR,OAAQ;gBAC3E;YACF;YAGA,MAAMW,aAAa,IAAI,CAACjB,iBAAiB,CAACkB,OAAO,CAACP,IAAIG,SAAS;YAE/D,IAAI,CAACpB,MAAM,CAACgB,GAAG,CAAC,CAAC,iBAAiB,EAAGC,IAAIQ,QAAQ,CAAE,cAAc,EAAGJ,QAAQb,IAAI,CAAE,EAAE,EAAGa,QAAQK,WAAW,CAAE,CAAC,CAAC;YAG9G,IAAIC;YACJ,IAAI;gBACF,MAAMC,WAAW,MAAML,WAAWM,YAAY,CAACZ,IAAIQ,QAAQ;gBAG3D,MAAMK,SAAmB,EAAE;gBAC3B,MAAMC,SAASH,SAASI,IAAI;gBAE5B,MAAM,IAAIC,QAAc,CAACC,SAASC;oBAChCJ,OAAOtB,EAAE,CAAC,QAAQ,CAAC2B,QAAkBN,OAAOO,IAAI,CAACD;oBACjDL,OAAOtB,EAAE,CAAC,OAAO,IAAMyB;oBACvBH,OAAOtB,EAAE,CAAC,SAAS,CAAC6B,MAAQH,OAAOG;gBACrC;gBAEAX,aAAaY,OAAOC,MAAM,CAACV;YAC7B,EAAE,OAAOW,eAAe;gBACtB,IAAI,CAACzC,MAAM,CAACc,KAAK,CAAC,CAAC,sCAAsC,EAAG2B,eAAgB;gBAG5ExB,IAAIyB,aAAa,GAAG;gBACpBzB,IAAI0B,YAAY,GAAG,CAAC,sBAAsB,EAAGF,yBAAyBG,QAAQH,cAAcI,OAAO,GAAG,iBAAkB;gBACxH,MAAM,IAAI,CAAC1C,eAAe,CAAC2C,kBAAkB,CAACC,IAAI,CAAC9B;gBACnD;YACF;YAEA,IAAI,CAACjB,MAAM,CAACgB,GAAG,CAAC,CAAC,WAAW,EAAGW,WAAWqB,MAAM,CAAE,eAAe,EAAGpC,OAAQ;YAG5E,MAAMqC,WAAWC,IAAAA,cAAI,EAACC,IAAAA,cAAM,KAAI,CAAC,qBAAqB,EAAGvC,MAAO,CAAC,EAAGwC,KAAKC,GAAG,GAAI,CAAC,EAAGpC,IAAIQ,QAAQ,EAAG;YACnG6B,IAAAA,qBAAa,EAACL,UAAUtB;YAExB,IAAI;gBAEF,MAAM4B,WAAW,MAAM,IAAI,CAACnD,kBAAkB,CAACoD,iBAAiB,CAACP;gBACjE,IAAI,CAACjD,MAAM,CAACgB,GAAG,CAAC,CAAC,kBAAkB,EAAGJ,MAAO,EAAE,EAAG2C,SAASE,SAAS,CAAC,GAAG,IAAK,GAAG,CAAC;gBAGjF,MAAMC,cAAc,MAAM,IAAI,CAACtD,kBAAkB,CAACuD,mBAAmB,CAACJ;gBAEtE,IAAIK;gBACJ,IAAIzC;gBAEJ,IAAIuC,aAAavC,eAAe;oBAE9B,MAAM0C,iBAAiB,MAAM,IAAI,CAACzD,kBAAkB,CAAC0D,YAAY,CAACJ,YAAYvC,aAAa;oBAE3F,IAAI0C,gBAAgB;wBAClB,IAAI,CAAC7D,MAAM,CAACgB,GAAG,CAAC,CAAC,6BAA6B,EAAG0C,YAAYK,EAAE,CAAE,gCAAgC,EAAGL,YAAYvC,aAAa,EAAG;wBAChIyC,WAAW;4BACT,GAAGC,cAAc;4BACjBpC,UAAUR,IAAIQ,QAAQ;wBACxB;wBACAN,gBAAgBuC,YAAYvC,aAAa;oBAC3C,OAAO,IAAIuC,YAAYhB,aAAa,KAAK,cAAcgB,YAAYE,QAAQ,EAAE;wBAC3E,IAAI,CAAC5D,MAAM,CAACgB,GAAG,CAAC,CAAC,qCAAqC,EAAG0C,YAAYK,EAAE,CAAE,oBAAoB,EAAGL,YAAYvC,aAAa,EAAG;wBAC5HyC,WAAW;4BACT,GAAGF,YAAYE,QAAQ;4BACvBnC,UAAUR,IAAIQ,QAAQ;wBACxB;wBACAN,gBAAgBuC,YAAYvC,aAAa;wBAGzC,MAAM,IAAI,CAACf,kBAAkB,CAAC4D,YAAY,CAAC7C,eAAeyC,UAAUL,UAAUtC,IAAIQ,QAAQ;oBAC5F,OAAO;wBAEL,IAAI,CAACzB,MAAM,CAACgB,GAAG,CAAC,CAAC,8CAA8C,EAAG0C,YAAYvC,aAAa,CAAE,eAAe,CAAC;wBAC7G,MAAM8C,mBAAmB,IAAI,CAAC7D,kBAAkB,CAAC8D,WAAW,CAACR,YAAYvC,aAAa;wBACtF,MAAMgD,iBAAiB,MAAM,IAAI,CAAC9D,mBAAmB,CAAC+D,WAAW,CAACH;wBAClEL,WAAWO,eAAeP,QAAQ;wBAClCzC,gBAAgBuC,YAAYvC,aAAa;wBACzC,MAAM,IAAI,CAACf,kBAAkB,CAAC4D,YAAY,CAAC7C,eAAeyC,UAAUL,UAAUtC,IAAIQ,QAAQ;oBAC5F;gBACF,OAAO;oBAEL,IAAI,CAACzB,MAAM,CAACgB,GAAG,CAAC,CAAC,2BAA2B,EAAGC,IAAIQ,QAAQ,EAAG;oBAC9D,MAAM0C,iBAAiB,MAAM,IAAI,CAAC9D,mBAAmB,CAAC+D,WAAW,CAACnB;oBAClEW,WAAWO,eAAeP,QAAQ;oBAClC,MAAMS,aAAaF,eAAeE,UAAU;oBAE5C,IAAI,CAACrE,MAAM,CAACgB,GAAG,CAAC,CAAC,0BAA0B,EAAG4C,SAASU,UAAU,CAAE,SAAS,EAAGV,SAASW,WAAW,CAAE,OAAO,EAAGX,SAASY,qBAAqB,CAAE,YAAY,EAAGZ,SAASa,iBAAiB,CAAE,CAAC,CAAC;oBAG5L,MAAMC,aAAa;wBACjBC,MAAM1B;wBACN2B,cAAc3D,IAAIQ,QAAQ;wBAC1BoD,UAAU;wBACVC,MAAMnD,WAAWqB,MAAM;oBACzB;oBAEA7B,gBAAgB,MAAM,IAAI,CAACf,kBAAkB,CAAC2E,QAAQ,CAACL,YAAYnB;oBACnE,IAAI,CAACvD,MAAM,CAACgB,GAAG,CAAC,CAAC,uBAAuB,EAAGG,eAAgB;oBAE3D,IAAI6D,oBAA2B,EAAE;oBACjC,IAAIX,WAAWrB,MAAM,GAAG,GAAG;wBACzBgC,oBAAoB,MAAM,IAAI,CAAC5E,kBAAkB,CAAC6E,cAAc,CAAC9D,eAAekD;wBAChF,IAAI,CAACrE,MAAM,CAACgB,GAAG,CAAC,CAAC,MAAM,EAAGgE,kBAAkBhC,MAAM,CAAE,kBAAkB,EAAG7B,eAAgB;oBAC3F;oBAEA,MAAM,IAAI,CAACf,kBAAkB,CAAC4D,YAAY,CAAC7C,eAAeyC,UAAUL,UAAUtC,IAAIQ,QAAQ,EAAEuD;oBAC5F,IAAI,CAAChF,MAAM,CAACgB,GAAG,CAAC,CAAC,wBAAwB,EAAGG,eAAgB;gBAC9D;gBAEAF,IAAIE,aAAa,GAAGA;gBACpBF,IAAIsC,QAAQ,GAAGA;gBACftC,IAAIiE,QAAQ,GAAGvD,WAAWqB,MAAM;gBAChC/B,IAAIqD,UAAU,GAAGV,SAASU,UAAU;gBACpCrD,IAAI2C,QAAQ,GAAGA;gBACf3C,IAAIyB,aAAa,GAAG;gBACpBzB,IAAIkE,UAAU,GAAG,IAAI/B;gBACrB,MAAM,IAAI,CAACjD,eAAe,CAAC2C,kBAAkB,CAACC,IAAI,CAAC9B;gBAEnD,IAAI,CAACjB,MAAM,CAACgB,GAAG,CAAC,CAAC,+CAA+C,EAAGJ,MAAO,YAAY,EAAGO,cAAe,gBAAgB,EAAGF,IAAIyB,aAAa,EAAG;YACjJ,SAAU;gBACR,IAAI;oBACF0C,IAAAA,kBAAU,EAACnC;gBACb,EAAE,OAAOoC,cAAc;oBACrB,IAAI,CAACrF,MAAM,CAACsF,IAAI,CAAC,CAAC,6BAA6B,EAAGrC,SAAU,EAAE,EAAGoC,cAAe;gBAClF;YACF;QAEF,EAAE,OAAOvE,OAAO;YACd,IAAI,CAACd,MAAM,CAACc,KAAK,CAAC,CAAC,4CAA4C,EAAGF,OAAQ,EAAEE;YAC5EC,IAAAA,sBAAgB,EAACD;YAEjB,IAAI;gBACF,MAAMG,MAAM,MAAM,IAAI,CAACd,eAAe,CAAC2C,kBAAkB,CAACyC,OAAO,CAAC;oBAAEC,OAAO;wBAAEzB,IAAInD;oBAAM;gBAAE;gBACzF,IAAIK,KAAK;oBACPA,IAAIyB,aAAa,GAAG;oBACpBzB,IAAI0B,YAAY,GAAG,CAAC,+BAA+B,EAAG7B,iBAAiB8B,QAAQ9B,MAAM+B,OAAO,GAAG,iBAAkB;oBACjH,MAAM,IAAI,CAAC1C,eAAe,CAAC2C,kBAAkB,CAACC,IAAI,CAAC9B;gBACrD;YACF,EAAE,OAAOwE,aAAa;gBACpB,IAAI,CAACzF,MAAM,CAACc,KAAK,CAAC,CAAC,mBAAmB,EAAGF,MAAO,UAAU,CAAC,EAAE6E;YAC/D;QACF;IACF;AACF"}