@fdm-monster/server 1.8.2 → 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 (460) 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 +69 -7
  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 +11 -19
  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 +15 -24
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.tokens.js +4 -5
  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 +61 -50
  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 +76 -29
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/printer.controller.js +62 -197
  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 -113
  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 -31
  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 +40 -0
  197. package/dist/services/core/http-client.factory.js.map +1 -0
  198. package/dist/services/core/logs-manager.service.js +7 -6
  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 +79 -28
  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/file-upload-tracker.interface.js +6 -0
  212. package/dist/services/interfaces/file-upload-tracker.interface.js.map +1 -0
  213. package/dist/services/interfaces/floor.dto.js +5 -47
  214. package/dist/services/interfaces/floor.dto.js.map +1 -1
  215. package/dist/services/interfaces/login.dto.js +2 -0
  216. package/dist/services/interfaces/login.dto.js.map +1 -1
  217. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  218. package/dist/services/interfaces/printer-group.dto.js +0 -14
  219. package/dist/services/interfaces/printer-group.dto.js.map +1 -1
  220. package/dist/services/interfaces/printer.dto.js +11 -5
  221. package/dist/services/interfaces/printer.dto.js.map +1 -1
  222. package/dist/services/interfaces/settings.dto.js.map +1 -1
  223. package/dist/services/interfaces/task.interfaces.js +6 -0
  224. package/dist/services/interfaces/task.interfaces.js.map +1 -0
  225. package/dist/services/mongoose/camera-stream.service.js +17 -15
  226. package/dist/services/mongoose/camera-stream.service.js.map +1 -1
  227. package/dist/services/mongoose/custom-gcode.service.js +4 -2
  228. package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
  229. package/dist/services/mongoose/floor.service.js +37 -30
  230. package/dist/services/mongoose/floor.service.js.map +1 -1
  231. package/dist/services/mongoose/permission.service.js +1 -1
  232. package/dist/services/mongoose/permission.service.js.map +1 -1
  233. package/dist/services/mongoose/print-completion.service.js +2 -2
  234. package/dist/services/mongoose/print-completion.service.js.map +1 -1
  235. package/dist/services/mongoose/print-completion.shared.js +2 -2
  236. package/dist/services/mongoose/print-completion.shared.js.map +1 -1
  237. package/dist/services/mongoose/printer.service.js +40 -45
  238. package/dist/services/mongoose/printer.service.js.map +1 -1
  239. package/dist/services/mongoose/refresh-token.service.js +5 -8
  240. package/dist/services/mongoose/refresh-token.service.js.map +1 -1
  241. package/dist/services/mongoose/role.service.js +14 -5
  242. package/dist/services/mongoose/role.service.js.map +1 -1
  243. package/dist/services/mongoose/settings.service.js +35 -62
  244. package/dist/services/mongoose/settings.service.js.map +1 -1
  245. package/dist/services/mongoose/user.service.js +8 -7
  246. package/dist/services/mongoose/user.service.js.map +1 -1
  247. package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
  248. package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
  249. package/dist/services/moonraker/moonraker-websocket.adapter.js +108 -96
  250. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  251. package/dist/services/moonraker/moonraker.client.js +212 -167
  252. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  253. package/dist/services/moonraker.api.js +3 -5
  254. package/dist/services/moonraker.api.js.map +1 -1
  255. package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
  256. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  257. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
  258. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
  259. package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
  260. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  261. package/dist/services/octoprint/octoprint-api.routes.js +0 -98
  262. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  263. package/dist/services/octoprint/octoprint-websocket.adapter.js +72 -72
  264. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  265. package/dist/services/octoprint/octoprint.client.js +87 -343
  266. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  267. package/dist/services/octoprint/utils/octoprint-http-client.builder.js +31 -0
  268. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -0
  269. package/dist/services/octoprint.api.js +14 -18
  270. package/dist/services/octoprint.api.js.map +1 -1
  271. package/dist/services/orm/base.service.js +11 -12
  272. package/dist/services/orm/base.service.js.map +1 -1
  273. package/dist/services/orm/camera-stream.service.js +5 -1
  274. package/dist/services/orm/camera-stream.service.js.map +1 -1
  275. package/dist/services/orm/custom-gcode.service.js +2 -2
  276. package/dist/services/orm/custom-gcode.service.js.map +1 -1
  277. package/dist/services/orm/floor-position.service.js +0 -5
  278. package/dist/services/orm/floor-position.service.js.map +1 -1
  279. package/dist/services/orm/floor.service.js +43 -39
  280. package/dist/services/orm/floor.service.js.map +1 -1
  281. package/dist/services/orm/permission.service.js +3 -4
  282. package/dist/services/orm/permission.service.js.map +1 -1
  283. package/dist/services/orm/print-completion.service.js +2 -4
  284. package/dist/services/orm/print-completion.service.js.map +1 -1
  285. package/dist/services/orm/printer-group.service.js +2 -7
  286. package/dist/services/orm/printer-group.service.js.map +1 -1
  287. package/dist/services/orm/printer.service.js +29 -39
  288. package/dist/services/orm/printer.service.js.map +1 -1
  289. package/dist/services/orm/refresh-token.service.js +5 -11
  290. package/dist/services/orm/refresh-token.service.js.map +1 -1
  291. package/dist/services/orm/role.service.js +11 -10
  292. package/dist/services/orm/role.service.js.map +1 -1
  293. package/dist/services/orm/settings.service.js +37 -133
  294. package/dist/services/orm/settings.service.js.map +1 -1
  295. package/dist/services/orm/user.service.js +13 -15
  296. package/dist/services/orm/user.service.js.map +1 -1
  297. package/dist/services/printer-api.factory.js +9 -6
  298. package/dist/services/printer-api.factory.js.map +1 -1
  299. package/dist/services/printer-api.interface.js +13 -6
  300. package/dist/services/printer-api.interface.js.map +1 -1
  301. package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
  302. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
  303. package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
  304. package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
  305. package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
  306. package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
  307. package/dist/services/prusa-link/dto/file.dto.js +6 -0
  308. package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
  309. package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
  310. package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
  311. package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
  312. package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
  313. package/dist/services/prusa-link/dto/status.dto.js +6 -0
  314. package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
  315. package/dist/services/prusa-link/dto/version.dto.js +6 -0
  316. package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
  317. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
  318. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
  319. package/dist/services/prusa-link/prusa-link.api.js +233 -0
  320. package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
  321. package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
  322. package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
  323. package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
  324. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
  325. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
  326. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
  327. package/dist/services/socket.factory.js +9 -6
  328. package/dist/services/socket.factory.js.map +1 -1
  329. package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
  330. package/dist/services/task-manager.service.js.map +1 -0
  331. package/dist/services/validators/camera-service.validation.js +19 -0
  332. package/dist/services/validators/camera-service.validation.js.map +1 -0
  333. package/dist/services/validators/floor-service.validation.js +47 -36
  334. package/dist/services/validators/floor-service.validation.js.map +1 -1
  335. package/dist/services/validators/print-completion-service.validation.js +22 -9
  336. package/dist/services/validators/print-completion-service.validation.js.map +1 -1
  337. package/dist/services/validators/printer-service.validation.js +112 -29
  338. package/dist/services/validators/printer-service.validation.js.map +1 -1
  339. package/dist/services/validators/settings-service.validation.js +78 -66
  340. package/dist/services/validators/settings-service.validation.js.map +1 -1
  341. package/dist/services/validators/user-service.validation.js +17 -16
  342. package/dist/services/validators/user-service.validation.js.map +1 -1
  343. package/dist/services/validators/yaml-service.validation.js +94 -51
  344. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  345. package/dist/shared/default-http-client.builder.js +94 -0
  346. package/dist/shared/default-http-client.builder.js.map +1 -0
  347. package/dist/shared/load-controllers.js +20 -0
  348. package/dist/shared/load-controllers.js.map +1 -0
  349. package/dist/shared/runtime-settings.migration.js +46 -0
  350. package/dist/shared/runtime-settings.migration.js.map +1 -0
  351. package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
  352. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  353. package/dist/shared/websocket.adapter.js +4 -5
  354. package/dist/shared/websocket.adapter.js.map +1 -1
  355. package/dist/state/file-upload-tracker.cache.js +33 -42
  356. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  357. package/dist/state/file.cache.js +1 -1
  358. package/dist/state/file.cache.js.map +1 -1
  359. package/dist/state/floor.store.js +6 -6
  360. package/dist/state/floor.store.js.map +1 -1
  361. package/dist/state/printer-events.cache.js +21 -22
  362. package/dist/state/printer-events.cache.js.map +1 -1
  363. package/dist/state/printer-files.store.js +6 -8
  364. package/dist/state/printer-files.store.js.map +1 -1
  365. package/dist/state/printer-socket.store.js +27 -50
  366. package/dist/state/printer-socket.store.js.map +1 -1
  367. package/dist/state/printer-thumbnail.cache.js +5 -9
  368. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  369. package/dist/state/printer.cache.js +14 -12
  370. package/dist/state/printer.cache.js.map +1 -1
  371. package/dist/state/settings.store.js +78 -51
  372. package/dist/state/settings.store.js.map +1 -1
  373. package/dist/state/socket-io.gateway.js +39 -36
  374. package/dist/state/socket-io.gateway.js.map +1 -1
  375. package/dist/state/test-printer-socket.store.js +20 -15
  376. package/dist/state/test-printer-socket.store.js.map +1 -1
  377. package/dist/state/validation/create-test-printer.validation.js +13 -10
  378. package/dist/state/validation/create-test-printer.validation.js.map +1 -1
  379. package/dist/task.presets.js.map +1 -1
  380. package/dist/tasks/boot.task.js +14 -19
  381. package/dist/tasks/boot.task.js.map +1 -1
  382. package/dist/tasks/client-bundle.task.js +1 -3
  383. package/dist/tasks/client-bundle.task.js.map +1 -1
  384. package/dist/tasks/print-completion.socketio.task.js +27 -28
  385. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  386. package/dist/tasks/printer-file-clean.task.js +6 -10
  387. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  388. package/dist/tasks/printer-websocket-restore.task.js +4 -15
  389. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  390. package/dist/tasks/printer-websocket.task.js +2 -14
  391. package/dist/tasks/printer-websocket.task.js.map +1 -1
  392. package/dist/tasks/socketio.task.js +8 -35
  393. package/dist/tasks/socketio.task.js.map +1 -1
  394. package/dist/tasks/software-update.task.js +1 -1
  395. package/dist/tasks/software-update.task.js.map +1 -1
  396. package/dist/tasks.js +3 -3
  397. package/dist/tasks.js.map +1 -1
  398. package/dist/utils/array.util.js.map +1 -1
  399. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  400. package/dist/utils/env.utils.js +0 -2
  401. package/dist/utils/env.utils.js.map +1 -1
  402. package/dist/utils/normalize-url.js +6 -3
  403. package/dist/utils/normalize-url.js.map +1 -1
  404. package/dist/utils/pretty-print.utils.js +1 -1
  405. package/dist/utils/pretty-print.utils.js.map +1 -1
  406. package/dist/utils/printer-type.utils.js.map +1 -1
  407. package/dist/utils/time.utils.js +7 -17
  408. package/dist/utils/time.utils.js.map +1 -1
  409. package/dist/utils/url.utils.js +11 -14
  410. package/dist/utils/url.utils.js.map +1 -1
  411. package/package.json +53 -55
  412. package/tsconfig.json +2 -1
  413. package/.yarn/releases/yarn-4.6.0.cjs +0 -934
  414. package/dist/consoles/check-ports.js +0 -170
  415. package/dist/consoles/check-ports.js.map +0 -1
  416. package/dist/consoles/sqlite-torm.js +0 -31
  417. package/dist/consoles/sqlite-torm.js.map +0 -1
  418. package/dist/consoles/upload-test.js +0 -52
  419. package/dist/consoles/upload-test.js.map +0 -1
  420. package/dist/controllers/plugin-firmware-update.controller.js +0 -236
  421. package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
  422. package/dist/entities/base.entity.js +0 -29
  423. package/dist/entities/base.entity.js.map +0 -1
  424. package/dist/entities/printer-file.entity.js +0 -140
  425. package/dist/entities/printer-file.entity.js.map +0 -1
  426. package/dist/handlers/cache-manager.js +0 -18
  427. package/dist/handlers/cache-manager.js.map +0 -1
  428. package/dist/models/PrinterFile.js +0 -44
  429. package/dist/models/PrinterFile.js.map +0 -1
  430. package/dist/services/core/task-manager.service.js.map +0 -1
  431. package/dist/services/octoprint/plugin-base.service.js +0 -101
  432. package/dist/services/octoprint/plugin-base.service.js.map +0 -1
  433. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
  434. package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
  435. package/dist/services/octoprint/plugin-repository.cache.js +0 -45
  436. package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
  437. package/dist/utils/benchmark.util.js +0 -39
  438. package/dist/utils/benchmark.util.js.map +0 -1
  439. package/dist/utils/is-docker.js +0 -40
  440. package/dist/utils/is-docker.js.map +0 -1
  441. package/dist/utils/metric.utils.js +0 -35
  442. package/dist/utils/metric.utils.js.map +0 -1
  443. package/requests/moonraker/api_job.http +0 -5
  444. package/requests/moonraker/api_printer.http +0 -5
  445. package/requests/moonraker/api_settings.http +0 -5
  446. package/requests/moonraker/printer_info.http +0 -5
  447. package/requests/moonraker/printer_objects_list.http +0 -6
  448. package/requests/moonraker/printer_objects_pause_resume.http +0 -6
  449. package/requests/moonraker/printer_objects_print_stats.http +0 -6
  450. package/requests/moonraker/printer_objects_webhooks.http +0 -6
  451. package/requests/moonraker/server_info.http +0 -5
  452. package/requests/octoprint/octoprint-api-printer-current.http +0 -7
  453. package/requests/octoprint/octoprint-pluginmanager-plugins.http +0 -7
  454. package/requests/printer-file/get-partial-file-moonraker.http +0 -5
  455. package/requests/printer-file/get-thumbnails.http +0 -5
  456. package/requests/printer-file/reload-printer-thumbnails.http +0 -10
  457. package/requests/printer-file/testfile.gcode +0 -5665
  458. package/requests/printer-file/upload-file.http +0 -11
  459. package/requests/printer-file/upload-slicer-file.http +0 -11
  460. package/requests/printers/list.http +0 -5
@@ -20,6 +20,9 @@ _export(exports, {
20
20
  },
21
21
  octoPrintEvent: function() {
22
22
  return octoPrintEvent;
23
+ },
24
+ octoPrintWebsocketEvent: function() {
25
+ return octoPrintWebsocketEvent;
23
26
  }
24
27
  });
25
28
  const _httpstatuscodesconstants = require("../../constants/http-status-codes.constants");
@@ -28,7 +31,6 @@ const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
28
31
  const _urlutils = require("../../utils/url.utils");
29
32
  const _normalizeurl = require("../../utils/normalize-url");
30
33
  const _websocketadapter = require("../../shared/websocket.adapter");
31
- const _nodefs = require("node:fs");
32
34
  const _socketstatetype = require("../../shared/dtos/socket-state.type");
33
35
  const _apistatetype = require("../../shared/dtos/api-state.type");
34
36
  const _printerapiinterface = require("../printer-api.interface");
@@ -49,35 +51,31 @@ const OctoPrintMessage = {
49
51
  timelapse: "timelapse",
50
52
  slicingProgress: "slicingProgress"
51
53
  };
54
+ const octoPrintWebsocketEvent = (printerId)=>`octoprint.${printerId}`;
52
55
  const octoPrintEvent = (event)=>`octoprint.${event}`;
53
56
  class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
54
- printerType = 0;
55
57
  octoprintClient;
58
+ eventEmitter2;
59
+ configService;
60
+ printerType;
56
61
  printerId;
57
- stateUpdated = false;
58
- stateUpdateTimestamp = null;
59
- socketState = _socketstatetype.SOCKET_STATE.unopened;
60
- apiStateUpdated = false;
61
- apiStateUpdateTimestamp = null;
62
- apiState = _apistatetype.API_STATE.unset;
63
- lastMessageReceivedTimestamp = null;
64
- reauthRequired = false;
65
- reauthRequiredTimestamp = null;
62
+ stateUpdated;
63
+ stateUpdateTimestamp;
64
+ socketState;
65
+ apiStateUpdated;
66
+ apiStateUpdateTimestamp;
67
+ apiState;
68
+ lastMessageReceivedTimestamp;
69
+ reauthRequired;
70
+ reauthRequiredTimestamp;
66
71
  login;
67
- eventEmitter;
68
- configService;
69
72
  socketURL;
70
73
  sessionDto;
71
74
  username;
72
75
  refreshPrinterCurrentInterval;
73
- constructor({ loggerFactory, octoprintClient, eventEmitter2, configService }){
74
- super({
75
- loggerFactory
76
- });
76
+ constructor(loggerFactory, octoprintClient, eventEmitter2, configService){
77
+ super(loggerFactory), this.octoprintClient = octoprintClient, this.eventEmitter2 = eventEmitter2, this.configService = configService, this.printerType = 0, this.stateUpdated = false, this.stateUpdateTimestamp = null, this.socketState = _socketstatetype.SOCKET_STATE.unopened, this.apiStateUpdated = false, this.apiStateUpdateTimestamp = null, this.apiState = _apistatetype.API_STATE.unset, this.lastMessageReceivedTimestamp = null, this.reauthRequired = false, this.reauthRequiredTimestamp = null;
77
78
  this.logger = loggerFactory(OctoprintWebsocketAdapter.name);
78
- this.octoprintClient = octoprintClient;
79
- this.eventEmitter = eventEmitter2;
80
- this.configService = configService;
81
79
  }
82
80
  get _debugMode() {
83
81
  return this.configService.get(_serverconstants.AppConstants.debugSocketStatesKey, _serverconstants.AppConstants.defaultDebugSocketStates) === "true";
@@ -99,9 +97,11 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
99
97
  const { printerId, loginDto } = socketLogin;
100
98
  this.printerId = printerId;
101
99
  this.login = loginDto;
102
- const httpUrl = (0, _normalizeurl.normalizeUrl)(this.login.printerURL);
103
- const wsUrl = (0, _urlutils.httpToWsUrl)(httpUrl);
104
- wsUrl.pathname = "/sockjs/websocket";
100
+ const httpUrlString = (0, _normalizeurl.normalizeUrl)(this.login.printerURL);
101
+ const httpUrl = new URL(httpUrlString);
102
+ const httpUrlPath = httpUrl.pathname;
103
+ const wsUrl = (0, _urlutils.httpToWsUrl)(httpUrlString);
104
+ wsUrl.pathname = (httpUrlPath ?? "/") + "sockjs/websocket";
105
105
  this.socketURL = wsUrl;
106
106
  }
107
107
  open() {
@@ -160,14 +160,9 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
160
160
  });
161
161
  this.username = await this.octoprintClient.getAdminUserOrDefault(this.login).catch((e)=>{
162
162
  const status = e.response?.status;
163
- if (status === _httpstatuscodesconstants.HttpStatusCode.FORBIDDEN) {
164
- this.setApiState("authFail");
165
- this.setSocketState("aborted");
166
- } else {
167
- this.setApiState("authFail");
168
- this.setSocketState("aborted");
169
- }
170
- if ([
163
+ this.setApiState("authFail");
164
+ this.setSocketState("aborted");
165
+ if (status && [
171
166
  _httpstatuscodesconstants.HttpStatusCode.BAD_GATEWAY,
172
167
  _httpstatuscodesconstants.HttpStatusCode.NOT_IMPLEMENTED,
173
168
  _httpstatuscodesconstants.HttpStatusCode.SERVICE_UNAVAILABLE,
@@ -178,7 +173,7 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
178
173
  throw e;
179
174
  });
180
175
  await this.updateCurrentStateSafely();
181
- this.logger.log("Setting up printer current interval loop");
176
+ this.logger.log(`Setting up printer current interval loop with 10 seconds interval`);
182
177
  if (this.refreshPrinterCurrentInterval) {
183
178
  clearInterval(this.refreshPrinterCurrentInterval);
184
179
  }
@@ -186,42 +181,6 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
186
181
  await this.updateCurrentStateSafely();
187
182
  }, 10000);
188
183
  }
189
- async updateCurrentStateSafely() {
190
- try {
191
- const current = await this.octoprintClient.getPrinterCurrent(this.login, true);
192
- const isOperational = current.data?.state?.flags?.operational;
193
- const job = isOperational ? await this.octoprintClient.getJob(this.login) : {};
194
- this.setApiState(_apistatetype.API_STATE.responding);
195
- return await this.emitEvent("current", {
196
- ...current.data,
197
- progress: job?.progress,
198
- job: job?.job
199
- });
200
- } catch (e) {
201
- if (e.isAxiosError) {
202
- const castError = e;
203
- if (castError?.response?.status == 409) {
204
- this.logger.error(`Printer current interval loop error`);
205
- await this.emitEvent("current", {
206
- state: {
207
- flags: {
208
- operational: false,
209
- error: false
210
- },
211
- text: "USB disconnected",
212
- error: castError?.response.data.error
213
- }
214
- });
215
- return;
216
- }
217
- this.logger.error(`Could not update Octoprint current due to a request error`);
218
- this.setApiState(_apistatetype.API_STATE.noResponse);
219
- return;
220
- }
221
- this.logger.error(`Could not update Octoprint current due to an unknown error`);
222
- this.setApiState(_apistatetype.API_STATE.noResponse);
223
- }
224
- }
225
184
  setReauthRequired() {
226
185
  this.reauthRequired = true;
227
186
  this.reauthRequiredTimestamp = Date.now();
@@ -238,7 +197,7 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
238
197
  if (!this.eventEmittingAllowed) {
239
198
  return;
240
199
  }
241
- this.eventEmitter.emit(octoPrintEvent(event), {
200
+ this.eventEmitter2.emit(octoPrintEvent(event), {
242
201
  event,
243
202
  payload,
244
203
  printerId: this.printerId,
@@ -264,8 +223,6 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
264
223
  if (eventName === OctoPrintMessage.reauthRequired) {
265
224
  this.logger.log("Received 'reauthRequired', acting on it");
266
225
  this.setReauthRequired();
267
- } else if (eventName === OctoPrintMessage.current && this.configService.get(_serverconstants.AppConstants.debugFileWritePrinterStatesKey, _serverconstants.AppConstants.defaultDebugFileWritePrinterStates) === "true") {
268
- (0, _nodefs.writeFileSync)(`websocket_current_${this.printerId}.txt`, JSON.stringify(payload, null, 2));
269
226
  }
270
227
  await this.emitEvent(eventName, payload);
271
228
  }
@@ -278,11 +235,51 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
278
235
  this.setSocketState("error");
279
236
  await this.emitEvent(WsMessage.WS_ERROR, error?.length ? error : "connection error");
280
237
  }
238
+ async updateCurrentStateSafely() {
239
+ try {
240
+ const current = await this.octoprintClient.getPrinterCurrent(this.login, true);
241
+ const isOperational = current.data?.state?.flags?.operational;
242
+ let job = {};
243
+ if (isOperational) {
244
+ const jobResponse = await this.octoprintClient.getJob(this.login);
245
+ job = jobResponse.data;
246
+ }
247
+ this.setApiState(_apistatetype.API_STATE.responding);
248
+ return await this.emitEvent("current", {
249
+ ...current.data,
250
+ progress: job?.progress,
251
+ job: job?.job
252
+ });
253
+ } catch (e) {
254
+ if (e.isAxiosError) {
255
+ const castError = e;
256
+ if (castError?.response?.status == 409) {
257
+ this.logger.error(`Printer current interval loop error`);
258
+ await this.emitEvent("current", {
259
+ state: {
260
+ flags: {
261
+ operational: false,
262
+ error: false
263
+ },
264
+ text: "USB disconnected",
265
+ error: castError?.response.data.error
266
+ }
267
+ });
268
+ return;
269
+ }
270
+ this.logger.error(`Could not update Octoprint current due to a request error`);
271
+ this.setApiState(_apistatetype.API_STATE.noResponse);
272
+ return;
273
+ }
274
+ this.logger.error(`Could not update Octoprint current due to an unknown error`);
275
+ this.setApiState(_apistatetype.API_STATE.noResponse);
276
+ }
277
+ }
281
278
  async emitEvent(event, payload) {
282
279
  if (!this.eventEmittingAllowed) {
283
280
  return;
284
281
  }
285
- await this.eventEmitter.emitAsync(octoPrintEvent(event), {
282
+ await this.eventEmitter2.emitAsync(octoPrintEvent(event), {
286
283
  event,
287
284
  payload,
288
285
  printerId: this.printerId,
@@ -290,6 +287,9 @@ class OctoprintWebsocketAdapter extends _websocketadapter.WebsocketAdapter {
290
287
  });
291
288
  }
292
289
  async sendAuth() {
290
+ if (!this.sessionDto?.session?.length) {
291
+ throw new Error("Cant send auth, session is unset.");
292
+ }
293
293
  this.setSocketState(_socketstatetype.SOCKET_STATE.authenticating);
294
294
  await this.sendMessage(JSON.stringify({
295
295
  auth: `${this.username}:${this.sessionDto.session}`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/octoprint/octoprint-websocket.adapter.ts"],"names":["OctoPrintMessage","OctoprintWebsocketAdapter","WsMessage","octoPrintEvent","WS_OPENED","WS_CLOSED","WS_ERROR","API_STATE_UPDATED","WS_STATE_UPDATED","connected","reauthRequired","current","history","event","plugin","timelapse","slicingProgress","WebsocketAdapter","printerType","octoprintClient","printerId","stateUpdated","stateUpdateTimestamp","socketState","SOCKET_STATE","unopened","apiStateUpdated","apiStateUpdateTimestamp","apiState","API_STATE","unset","lastMessageReceivedTimestamp","reauthRequiredTimestamp","login","eventEmitter","configService","socketURL","sessionDto","username","refreshPrinterCurrentInterval","constructor","loggerFactory","eventEmitter2","logger","name","_debugMode","get","AppConstants","debugSocketStatesKey","defaultDebugSocketStates","needsReopen","isApiOnline","responding","closed","error","needsSetup","needsReauth","isClosedOrAborted","aborted","registerCredentials","socketLogin","loginDto","httpUrl","normalizeUrl","printerURL","wsUrl","httpToWsUrl","pathname","open","socket","Error","close","clearInterval","sendThrottle","throttle","defaultSocketThrottleRate","sendMessage","JSON","stringify","reauthSession","log","setupSocketSession","sendAuth","resetReauthRequired","resetSocketState","then","d","r","data","setApiState","setSocketState","ExternalServiceError","needs","group","warn","catch","e","response","status","getAdminUserOrDefault","HttpStatusCode","FORBIDDEN","BAD_GATEWAY","NOT_IMPLEMENTED","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","includes","updateCurrentStateSafely","setInterval","getPrinterCurrent","isOperational","state","flags","operational","job","getJob","emitEvent","progress","isAxiosError","castError","text","noResponse","setReauthRequired","Date","now","emitEventSync","payload","eventEmittingAllowed","emit","OctoprintType","afterOpened","_","onMessage","message","authenticated","parse","eventName","Object","keys","substring","debugFileWritePrinterStatesKey","defaultDebugFileWritePrinterStates","writeFileSync","afterClosed","onError","length","emitAsync","authenticating","auth","session","globalKey"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/octoprint/octoprint-websocket.adapter.ts"],"names":["OctoPrintMessage","OctoprintWebsocketAdapter","WsMessage","octoPrintEvent","octoPrintWebsocketEvent","WS_OPENED","WS_CLOSED","WS_ERROR","API_STATE_UPDATED","WS_STATE_UPDATED","connected","reauthRequired","current","history","event","plugin","timelapse","slicingProgress","printerId","WebsocketAdapter","printerType","stateUpdated","stateUpdateTimestamp","socketState","apiStateUpdated","apiStateUpdateTimestamp","apiState","lastMessageReceivedTimestamp","reauthRequiredTimestamp","login","socketURL","sessionDto","username","refreshPrinterCurrentInterval","constructor","loggerFactory","octoprintClient","eventEmitter2","configService","SOCKET_STATE","unopened","API_STATE","unset","logger","name","_debugMode","get","AppConstants","debugSocketStatesKey","defaultDebugSocketStates","needsReopen","isApiOnline","responding","closed","error","needsSetup","needsReauth","isClosedOrAborted","aborted","registerCredentials","socketLogin","loginDto","httpUrlString","normalizeUrl","printerURL","httpUrl","URL","httpUrlPath","pathname","wsUrl","httpToWsUrl","open","socket","Error","close","clearInterval","sendThrottle","throttle","defaultSocketThrottleRate","sendMessage","JSON","stringify","reauthSession","log","setupSocketSession","sendAuth","resetReauthRequired","resetSocketState","then","d","r","data","setApiState","setSocketState","ExternalServiceError","needs","group","warn","catch","e","response","status","getAdminUserOrDefault","HttpStatusCode","BAD_GATEWAY","NOT_IMPLEMENTED","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","includes","updateCurrentStateSafely","setInterval","setReauthRequired","Date","now","emitEventSync","payload","eventEmittingAllowed","emit","OctoprintType","afterOpened","_","onMessage","message","authenticated","parse","eventName","Object","keys","substring","emitEvent","afterClosed","onError","length","getPrinterCurrent","isOperational","state","flags","operational","job","jobResponse","getJob","progress","isAxiosError","castError","text","noResponse","emitAsync","session","authenticating","auth","globalKey"],"mappings":";;;;;;;;;;;IAmCaA,gBAAgB;eAAhBA;;IAcAC,yBAAyB;eAAzBA;;IAvBAC,SAAS;eAATA;;IAqBAC,cAAc;eAAdA;;IADAC,uBAAuB;eAAvBA;;;0CA9CkB;iCACF;mCACQ;0BACT;8BACC;kCASI;iCAGS;8BACN;qCAKN;AAIvB,MAAMF,YAAY;IAEvBG,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,mBAAmB;IACnBC,kBAAkB;AACpB;AAEO,MAAMT,mBAAmB;IAC9BU,WAAW;IACXC,gBAAgB;IAChBC,SAAS;IACTC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC,iBAAiB;AACnB;AAEO,MAAMb,0BAA0B,CAACc,YAAsB,CAAC,UAAU,EAAEA,WAAW;AAC/E,MAAMf,iBAAiB,CAACW,QAAkB,CAAC,UAAU,EAAEA,OAAO;AAE9D,MAAMb,kCAAkCkB,kCAAgB;;;;IAC7CC,YAAgB;IACzBF,UAAmB;IAC1BG,aAAqB;IACrBC,qBAA2C;IAC3CC,YAAiD;IACjDC,gBAAwB;IACxBC,wBAA8C;IAC9CC,SAAqC;IACrCC,6BAAmD;IACnDhB,eAAuB;IACvBiB,wBAA8C;IAE9CC,MAAgB;IAERC,UAAgB;IAChBC,WAAyB;IACzBC,SAAkB;IAClBC,8BAA+C;IAEvDC,YACEC,aAA6B,EAC7B,AAAiBC,eAAgC,EACjD,AAAiBC,aAA4B,EAC7C,AAAiBC,aAA4B,CAC7C;QACA,KAAK,CAACH,qBAJWC,kBAAAA,sBACAC,gBAAAA,oBACAC,gBAAAA,oBAvBHlB,cAAc,QAE9BC,eAAe,YACfC,uBAAsC,WACtCC,cAA2BgB,6BAAY,CAACC,QAAQ,OAChDhB,kBAAkB,YAClBC,0BAAyC,WACzCC,WAAqBe,uBAAS,CAACC,KAAK,OACpCf,+BAA8C,WAC9ChB,iBAAiB,YACjBiB,0BAAyC;QAiBvC,IAAI,CAACe,MAAM,GAAGR,cAAclC,0BAA0B2C,IAAI;IAC5D;IAEA,IAAIC,aAAa;QACf,OAAO,IAAI,CAACP,aAAa,CAACQ,GAAG,CAACC,6BAAY,CAACC,oBAAoB,EAAED,6BAAY,CAACE,wBAAwB,MAAM;IAC9G;IAEAC,cAAc;QACZ,MAAMC,cAAc,IAAI,CAACzB,QAAQ,KAAKe,uBAAS,CAACW,UAAU;QAC1D,OAAOD,eAAgB,CAAA,IAAI,CAAC5B,WAAW,KAAKgB,6BAAY,CAACc,MAAM,IAAI,IAAI,CAAC9B,WAAW,KAAKgB,6BAAY,CAACe,KAAK,AAAD;IAC3G;IAEAC,aAAa;QACX,OAAO,IAAI,CAAChC,WAAW,KAAKgB,6BAAY,CAACC,QAAQ;IACnD;IAEAgB,cAAc;QACZ,OAAO,IAAI,CAAC7C,cAAc;IAC5B;IAEA8C,oBAAoB;QAClB,OAAO,IAAI,CAAClC,WAAW,KAAKgB,6BAAY,CAACc,MAAM,IAAI,IAAI,CAAC9B,WAAW,KAAKgB,6BAAY,CAACmB,OAAO;IAC9F;IAEAC,oBAAoBC,WAAyB,EAAE;QAC7C,MAAM,EAAE1C,SAAS,EAAE2C,QAAQ,EAAE,GAAGD;QAChC,IAAI,CAAC1C,SAAS,GAAGA;QACjB,IAAI,CAACW,KAAK,GAAGgC;QAEb,MAAMC,gBAAgBC,IAAAA,0BAAY,EAAC,IAAI,CAAClC,KAAK,CAACmC,UAAU;QACxD,MAAMC,UAAU,IAAIC,IAAIJ;QACxB,MAAMK,cAAcF,QAAQG,QAAQ;QAEpC,MAAMC,QAAQC,IAAAA,qBAAW,EAACR;QAC1BO,MAAMD,QAAQ,GAAG,AAACD,CAAAA,eAAe,GAAE,IAAK;QACxC,IAAI,CAACrC,SAAS,GAAGuC;IACnB;IAEAE,OAAO;QACL,IAAI,IAAI,CAACC,MAAM,EAAE;YACf,MAAM,IAAIC,MAAM,CAAC,yDAAyD,CAAC;QAC7E;QAEA,KAAK,CAACF,KAAK,IAAI,CAACzC,SAAS;IAC3B;IAEA4C,QAAQ;QACNC,cAAc,IAAI,CAAC1C,6BAA6B;QAChD,KAAK,CAACyC;IACR;IAEA,MAAME,aAAaC,WAAmB9B,6BAAY,CAAC+B,yBAAyB,EAAiB;QAC3F,OAAO,MAAM,IAAI,CAACC,WAAW,CAACC,KAAKC,SAAS,CAAC;YAAEJ;QAAS;IAC1D;IAEA,MAAMK,gBAAgB;QACpB,IAAI,CAACvC,MAAM,CAACwC,GAAG,CAAC;QAChB,MAAM,IAAI,CAACC,kBAAkB;QAC7B,MAAM,IAAI,CAACC,QAAQ;QACnB,IAAI,CAACC,mBAAmB;IAC1B;IAKA,MAAMF,qBAAoC;QACxC,IAAI,CAACG,gBAAgB;QACrB,IAAI,CAACxD,UAAU,GAAG,MAAM,IAAI,CAACK,eAAe,CACzCP,KAAK,CAAC,IAAI,CAACA,KAAK,EAChB2D,IAAI,CAAC,CAACC;YACL,MAAMC,IAAID,EAAEE,IAAI;YAEhB,IAAID,EAAE9C,IAAI,KAAK,QAAQ;gBAErB,IAAI,CAACgD,WAAW,CAAC;gBACjB,IAAI,CAACC,cAAc,CAAC;gBACpB,MAAM,IAAIC,uCAAoB,CAAC,uDAAuD;YACxF,OAAO,IAAIJ,EAAEK,KAAK,EAAEC,KAAK,CAAC,EAAE,KAAK,UAAU;gBACzC,IAAI,CAACrD,MAAM,CAACsD,IAAI,CAAC;gBAEjB,IAAI,CAACL,WAAW,CAAC;gBACjB,IAAI,CAACC,cAAc,CAAC;gBACpB,MAAM,IAAIC,uCAAoB,CAC5B,2EACA;YAEJ;YACA,IAAI,CAACF,WAAW,CAAC;YACjB,IAAI,CAACC,cAAc,CAAC;YACpB,OAAOH;QACT,GACCQ,KAAK,CAAC,CAACC;YACN,IAAI,CAACN,cAAc,CAAC;YAEpB,IAAIM,aAAaL,uCAAoB,EAAE;gBACrC,IAAI,CAACnD,MAAM,CAACsD,IAAI,CAAC,CAAC,uCAAuC,EAAE,IAAI,CAACvE,QAAQ,EAAE;gBAC1E,MAAMyE;YACR,OAAO;gBACL,IAAIA,GAAGC,UAAUC,WAAW,KAAK;oBAC/B,IAAI,CAACT,WAAW,CAAC;oBACjB,IAAI,CAACC,cAAc,CAAC;oBACpB,MAAM,IAAIC,uCAAoB,CAACK,GAAG;gBACpC;gBAEA,IAAI,CAACxD,MAAM,CAACW,KAAK,CAAC,CAAC,SAAS,EAAE,IAAI,CAACpC,SAAS,CAAC,yDAAyD,EAAEiF,GAAG;gBAC3G,IAAI,CAACP,WAAW,CAAC;YACnB;YACA,MAAMO;QACR;QAEF,IAAI,CAACnE,QAAQ,GAAG,MAAM,IAAI,CAACI,eAAe,CAACkE,qBAAqB,CAAC,IAAI,CAACzE,KAAK,EAAEqE,KAAK,CAAC,CAACC;YAClF,MAAME,SAASF,EAAEC,QAAQ,EAAEC;YAE3B,IAAI,CAACT,WAAW,CAAC;YACjB,IAAI,CAACC,cAAc,CAAC;YAEpB,IACEQ,UACA;gBACEE,wCAAc,CAACC,WAAW;gBAC1BD,wCAAc,CAACE,eAAe;gBAC9BF,wCAAc,CAACG,mBAAmB;gBAClCH,wCAAc,CAACI,eAAe;aAC/B,CAACC,QAAQ,CAACP,SACX;gBACA,IAAI,CAAC1D,MAAM,CAACW,KAAK,CAAC,CAAC,0BAA0B,EAAE+C,OAAO,iDAAiD,CAAC;YAC1G;YACA,MAAMF;QACR;QAEA,MAAM,IAAI,CAACU,wBAAwB;QAEnC,IAAI,CAAClE,MAAM,CAACwC,GAAG,CAAC,CAAC,iEAAiE,CAAC;QACnF,IAAI,IAAI,CAAClD,6BAA6B,EAAE;YACtC0C,cAAc,IAAI,CAAC1C,6BAA6B;QAClD;QACA,IAAI,CAACA,6BAA6B,GAAG6E,YAAY;YAC/C,MAAM,IAAI,CAACD,wBAAwB;QAErC,GAAG;IACL;IAEAE,oBAAoB;QAClB,IAAI,CAACpG,cAAc,GAAG;QACtB,IAAI,CAACiB,uBAAuB,GAAGoF,KAAKC,GAAG;IACzC;IAEA3B,sBAAsB;QACpB,IAAI,CAAC3E,cAAc,GAAG;QACtB,IAAI,CAACiB,uBAAuB,GAAG;IACjC;IAEA2D,mBAAmB;QACjB,IAAI,CAACM,cAAc,CAAC;QACpB,IAAI,CAACD,WAAW,CAAC;IACnB;IAEAsB,cAAcpG,KAAa,EAAEqG,OAAY,EAAE;QACzC,IAAI,CAAC,IAAI,CAACC,oBAAoB,EAAE;YAC9B;QACF;QAEA,IAAI,CAAC/E,aAAa,CAACgF,IAAI,CAAClH,eAAeW,QAAQ;YAC7CA;YACAqG;YACAjG,WAAW,IAAI,CAACA,SAAS;YACzBE,aAAakG,kCAAa;QAC5B;IACF;IAEA,MAAgBC,YAAYC,CAAU,EAAiB;QACrD,IAAI,CAAC3B,cAAc,CAAC;QACpB,MAAM,IAAI,CAACR,QAAQ;QACnB,MAAM,IAAI,CAACT,YAAY,CAAC7B,6BAAY,CAAC+B,yBAAyB;IAChE;IAEA,MAAgB2C,UAAUC,OAAe,EAAiB;QACxD,IAAI,CAAC/F,4BAA4B,GAAGqF,KAAKC,GAAG;QAE5C,IAAI,IAAI,CAAC1F,WAAW,KAAKgB,6BAAY,CAACoF,aAAa,EAAE;YACnD,IAAI,CAAC9B,cAAc,CAAC;QACtB;QAEA,MAAMF,OAAOX,KAAK4C,KAAK,CAACF;QACxB,MAAMG,YAAYC,OAAOC,IAAI,CAACpC,KAAK,CAAC,EAAE;QACtC,MAAMwB,UAAUxB,IAAI,CAACkC,UAAU;QAE/B,IAAI,IAAI,CAAChF,UAAU,EAAE;YACnB,IAAI,CAACF,MAAM,CAACwC,GAAG,CAAC,CAAC,OAAO,EAAE0C,UAAU,CAAC,EAAEH,QAAQM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC;QACvE;QAEA,IAAIH,cAAc7H,iBAAiBW,cAAc,EAAE;YACjD,IAAI,CAACgC,MAAM,CAACwC,GAAG,CAAC;YAChB,IAAI,CAAC4B,iBAAiB;QACxB;QAEA,MAAM,IAAI,CAACkB,SAAS,CAACJ,WAAWV;IAClC;IAEA,MAAgBe,YAAYpH,KAAU,EAAE;QACtC,IAAI,CAAC+E,cAAc,CAAC;QACpB,OAAO,IAAI,CAACrB,MAAM;QAClB,MAAM,IAAI,CAACyD,SAAS,CAAC/H,UAAUI,SAAS,EAAE;IAC5C;IAEA,MAAgB6H,QAAQ7E,KAAU,EAAE;QAClC,IAAI,CAACuC,cAAc,CAAC;QACpB,MAAM,IAAI,CAACoC,SAAS,CAAC/H,UAAUK,QAAQ,EAAE+C,OAAO8E,SAAS9E,QAAQ;IACnE;IAMA,MAAcuD,2BAA2B;QACvC,IAAI;YACF,MAAMjG,UAAU,MAAM,IAAI,CAACwB,eAAe,CAACiG,iBAAiB,CAAC,IAAI,CAACxG,KAAK,EAAE;YACzE,MAAMyG,gBAAgB1H,QAAQ+E,IAAI,EAAE4C,OAAOC,OAAOC;YAElD,IAAIC,MAAM,CAAC;YACX,IAAIJ,eAAe;gBACjB,MAAMK,cAAc,MAAM,IAAI,CAACvG,eAAe,CAACwG,MAAM,CAAC,IAAI,CAAC/G,KAAK;gBAChE6G,MAAMC,YAAYhD,IAAI;YACxB;YAEA,IAAI,CAACC,WAAW,CAACnD,uBAAS,CAACW,UAAU;YACrC,OAAO,MAAM,IAAI,CAAC6E,SAAS,CAAC,WAAW;gBAAE,GAAGrH,QAAQ+E,IAAI;gBAAEkD,UAAUH,KAAKG;gBAAUH,KAAKA,KAAKA;YAAI;QACnG,EAAE,OAAOvC,GAAG;YACV,IAAI,AAACA,EAAiB2C,YAAY,EAAE;gBAClC,MAAMC,YAAY5C;gBAClB,IAAI4C,WAAW3C,UAAUC,UAAU,KAAK;oBACtC,IAAI,CAAC1D,MAAM,CAACW,KAAK,CAAC,CAAC,mCAAmC,CAAC;oBACvD,MAAM,IAAI,CAAC2E,SAAS,CAAC,WAAW;wBAC9BM,OAAO;4BACLC,OAAO;gCACLC,aAAa;gCACbnF,OAAO;4BACT;4BACA0F,MAAM;4BACN1F,OAAOyF,WAAW3C,SAAST,KAAKrC;wBAClC;oBACF;oBACA;gBACF;gBACA,IAAI,CAACX,MAAM,CAACW,KAAK,CAAC,CAAC,yDAAyD,CAAC;gBAC7E,IAAI,CAACsC,WAAW,CAACnD,uBAAS,CAACwG,UAAU;gBACrC;YACF;YACA,IAAI,CAACtG,MAAM,CAACW,KAAK,CAAC,CAAC,0DAA0D,CAAC;YAC9E,IAAI,CAACsC,WAAW,CAACnD,uBAAS,CAACwG,UAAU;QACvC;IACF;IAEA,MAAchB,UAAUnH,KAAa,EAAEqG,OAAa,EAAE;QACpD,IAAI,CAAC,IAAI,CAACC,oBAAoB,EAAE;YAC9B;QACF;QAEA,MAAM,IAAI,CAAC/E,aAAa,CAAC6G,SAAS,CAAC/I,eAAeW,QAAQ;YACxDA;YACAqG;YACAjG,WAAW,IAAI,CAACA,SAAS;YACzBE,aAAa;QACf;IACF;IAEA,MAAciE,WAA0B;QACtC,IAAI,CAAC,IAAI,CAACtD,UAAU,EAAEoH,SAASf,QAAQ;YACrC,MAAM,IAAI3D,MAAM;QAClB;QAEA,IAAI,CAACoB,cAAc,CAACtD,6BAAY,CAAC6G,cAAc;QAC/C,MAAM,IAAI,CAACrE,WAAW,CACpBC,KAAKC,SAAS,CAAC;YACboE,MAAM,GAAG,IAAI,CAACrH,QAAQ,CAAC,CAAC,EAAE,IAAI,CAACD,UAAU,CAACoH,OAAO,EAAE;QACrD;IAEJ;IAEQtD,eAAe0C,KAAkB,EAAE;QACzC,IAAI,CAAChH,WAAW,GAAGgH;QACnB,IAAI,CAAClH,YAAY,GAAG;QACpB,IAAI,CAACC,oBAAoB,GAAG0F,KAAKC,GAAG;QACpC,IAAI,IAAI,CAACpE,UAAU,EAAE;YACnB,IAAI,CAACF,MAAM,CAACwC,GAAG,CAAC,GAAG,IAAI,CAACjE,SAAS,CAAC,0BAA0B,CAAC,GAAGqH;QAClE;QACA,IAAI,CAACrB,aAAa,CAAChH,UAAUO,gBAAgB,EAAE8H;IACjD;IAEQ3C,YAAY2C,KAAe,EAAE;QACnC,IAAIA,UAAU9F,uBAAS,CAAC6G,SAAS,EAAE;YACjC,IAAI,CAAC3G,MAAM,CAACsD,IAAI,CAAC;QACnB;QACA,IAAI,CAACvE,QAAQ,GAAG6G;QAChB,IAAI,CAAC/G,eAAe,GAAG;QACvB,IAAI,CAACC,uBAAuB,GAAGuF,KAAKC,GAAG;QACvC,IAAI,IAAI,CAACpE,UAAU,EAAE;YACnB,IAAI,CAACF,MAAM,CAACwC,GAAG,CAAC,GAAG,IAAI,CAACjE,SAAS,CAAC,uBAAuB,CAAC,GAAGqH;QAC/D;QACA,IAAI,CAACrB,aAAa,CAAChH,UAAUM,iBAAiB,EAAE+H;IAClD;AACF"}