@fdm-monster/server 1.5.4 → 1.6.0-rc2

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 (288) hide show
  1. package/.env.template +7 -0
  2. package/.gitattributes +2 -0
  3. package/.yarn/install-state.gz +0 -0
  4. package/.yarn/releases/yarn-4.1.0.cjs +893 -0
  5. package/.yarnrc.yml +4 -0
  6. package/README.md +3 -2
  7. package/dist/consoles/sqlite-torm.js +31 -0
  8. package/dist/consoles/sqlite-torm.js.map +1 -0
  9. package/dist/consoles/typeorm-generate.js +194 -0
  10. package/dist/consoles/typeorm-generate.js.map +1 -0
  11. package/dist/consoles/typeorm-migrate.js +48 -0
  12. package/dist/consoles/typeorm-migrate.js.map +1 -0
  13. package/dist/consoles/upload-test.js +52 -0
  14. package/dist/consoles/upload-test.js.map +1 -0
  15. package/dist/constants/event.constants.js.map +1 -1
  16. package/dist/constants/service.constants.js +3 -18
  17. package/dist/constants/service.constants.js.map +1 -1
  18. package/dist/container.js +64 -19
  19. package/dist/container.js.map +1 -1
  20. package/dist/container.tokens.js +2 -0
  21. package/dist/container.tokens.js.map +1 -1
  22. package/dist/controllers/batch-call.controller.js +10 -5
  23. package/dist/controllers/batch-call.controller.js.map +1 -1
  24. package/dist/controllers/custom-gcode.controller.js.map +1 -1
  25. package/dist/controllers/dto/update-client-dist.dto.js +38 -0
  26. package/dist/controllers/dto/update-client-dist.dto.js.map +1 -0
  27. package/dist/controllers/printer-files.controller.js +10 -49
  28. package/dist/controllers/printer-files.controller.js.map +1 -1
  29. package/dist/controllers/printer.controller.js +1 -1
  30. package/dist/controllers/printer.controller.js.map +1 -1
  31. package/dist/controllers/server-private.controller.js +25 -6
  32. package/dist/controllers/server-private.controller.js.map +1 -1
  33. package/dist/controllers/validation/batch-controller.validation.js +9 -0
  34. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  35. package/dist/data-source.js +66 -0
  36. package/dist/data-source.js.map +1 -0
  37. package/dist/entities/base.entity.js +29 -0
  38. package/dist/entities/base.entity.js.map +1 -0
  39. package/dist/entities/camera-stream.entity.js +94 -0
  40. package/dist/entities/camera-stream.entity.js.map +1 -0
  41. package/dist/entities/custom-gcode.entity.js +50 -0
  42. package/dist/entities/custom-gcode.entity.js.map +1 -0
  43. package/dist/entities/floor-position.entity.js +78 -0
  44. package/dist/entities/floor-position.entity.js.map +1 -0
  45. package/dist/entities/floor.entity.js +53 -0
  46. package/dist/entities/floor.entity.js.map +1 -0
  47. package/dist/entities/index.js +58 -0
  48. package/dist/entities/index.js.map +1 -0
  49. package/dist/entities/permission.entity.js +38 -0
  50. package/dist/entities/permission.entity.js.map +1 -0
  51. package/dist/entities/print-completion.entity.js +91 -0
  52. package/dist/entities/print-completion.entity.js.map +1 -0
  53. package/dist/entities/printer-file.entity.js +140 -0
  54. package/dist/entities/printer-file.entity.js.map +1 -0
  55. package/dist/entities/printer.entity.js +105 -0
  56. package/dist/entities/printer.entity.js.map +1 -0
  57. package/dist/entities/refresh-token.entity.js +70 -0
  58. package/dist/entities/refresh-token.entity.js.map +1 -0
  59. package/dist/entities/role.entity.js +46 -0
  60. package/dist/entities/role.entity.js.map +1 -0
  61. package/dist/entities/settings.entity.js +89 -0
  62. package/dist/entities/settings.entity.js.map +1 -0
  63. package/dist/entities/user-role.entity.js +70 -0
  64. package/dist/entities/user-role.entity.js.map +1 -0
  65. package/dist/entities/user.entity.js +90 -0
  66. package/dist/entities/user.entity.js.map +1 -0
  67. package/dist/middleware/exception.filter.js +2 -1
  68. package/dist/middleware/exception.filter.js.map +1 -1
  69. package/dist/middleware/passport.js.map +1 -1
  70. package/dist/migrations/1706829146617-InitSqlite.js +670 -0
  71. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -0
  72. package/dist/models/Floor.js.map +1 -1
  73. package/dist/models/Printer.js +4 -43
  74. package/dist/models/Printer.js.map +1 -1
  75. package/dist/models/PrinterFile.js +85 -0
  76. package/dist/models/PrinterFile.js.map +1 -0
  77. package/dist/models/index.js +4 -0
  78. package/dist/models/index.js.map +1 -1
  79. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +41 -0
  80. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -0
  81. package/dist/server.constants.js +4 -2
  82. package/dist/server.constants.js.map +1 -1
  83. package/dist/server.core.js +10 -1
  84. package/dist/server.core.js.map +1 -1
  85. package/dist/server.host.js +11 -3
  86. package/dist/server.host.js.map +1 -1
  87. package/dist/services/batch-call.service.js +43 -20
  88. package/dist/services/batch-call.service.js.map +1 -1
  89. package/dist/services/core/client-bundle.service.js +92 -25
  90. package/dist/services/core/client-bundle.service.js.map +1 -1
  91. package/dist/services/core/github.service.js +18 -14
  92. package/dist/services/core/github.service.js.map +1 -1
  93. package/dist/services/core/multer.service.js +3 -3
  94. package/dist/services/core/multer.service.js.map +1 -1
  95. package/dist/services/core/task-manager.service.js +1 -1
  96. package/dist/services/core/task-manager.service.js.map +1 -1
  97. package/dist/services/core/yaml.service.js.map +1 -1
  98. package/dist/services/floor.service.js +1 -1
  99. package/dist/services/floor.service.js.map +1 -1
  100. package/dist/services/interfaces/print-completion.dto.js +0 -2
  101. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  102. package/dist/services/interfaces/print-completion.interface.js +6 -0
  103. package/dist/services/interfaces/{print-completion.service.js.map → print-completion.interface.js.map} +1 -1
  104. package/dist/services/interfaces/printer-file.dto.js +32 -4
  105. package/dist/services/interfaces/printer-file.dto.js.map +1 -1
  106. package/dist/services/octoprint/dto/connection-state.dto.js +21 -0
  107. package/dist/services/octoprint/dto/connection-state.dto.js.map +1 -0
  108. package/dist/services/{interfaces/print-completion.service.js → octoprint/dto/connection.dto.js} +1 -1
  109. package/dist/services/octoprint/dto/connection.dto.js.map +1 -0
  110. package/dist/services/octoprint/dto/octoprint-currentuser.dto.js +6 -0
  111. package/dist/services/octoprint/dto/octoprint-currentuser.dto.js.map +1 -0
  112. package/dist/services/octoprint/dto/octoprint-event.dto.js +41 -0
  113. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -0
  114. package/dist/services/octoprint/dto/octoprint-file.dto.js +84 -0
  115. package/dist/services/octoprint/dto/octoprint-file.dto.js.map +1 -0
  116. package/dist/services/octoprint/dto/octoprint-files.dto.js +17 -0
  117. package/dist/services/octoprint/dto/octoprint-files.dto.js.map +1 -0
  118. package/dist/services/octoprint/dto/octoprint-session.dto.js +6 -0
  119. package/dist/services/octoprint/dto/octoprint-session.dto.js.map +1 -0
  120. package/dist/services/octoprint/dto/octoprint-settings.dto.js +29 -0
  121. package/dist/services/octoprint/dto/octoprint-settings.dto.js.map +1 -0
  122. package/dist/services/octoprint/dto/octoprint-system-info.dto.js +41 -0
  123. package/dist/services/octoprint/dto/octoprint-system-info.dto.js.map +1 -0
  124. package/dist/services/octoprint/dto/state.dto.js +38 -0
  125. package/dist/services/octoprint/dto/state.dto.js.map +1 -0
  126. package/dist/services/octoprint/dto/websocket-output/connection-message.dto.js +6 -0
  127. package/dist/services/octoprint/dto/websocket-output/connection-message.dto.js.map +1 -0
  128. package/dist/services/octoprint/dto/websocket-output/current-message.dto.js +6 -0
  129. package/dist/services/octoprint/dto/websocket-output/current-message.dto.js.map +1 -0
  130. package/dist/services/octoprint/dto/websocket-output/event-message.dto.js +6 -0
  131. package/dist/services/octoprint/dto/websocket-output/event-message.dto.js.map +1 -0
  132. package/dist/services/octoprint/dto/websocket-output/event.type.js +54 -0
  133. package/dist/services/octoprint/dto/websocket-output/event.type.js.map +1 -0
  134. package/dist/services/octoprint/dto/websocket-output/events/client-authed.dto.js +6 -0
  135. package/dist/services/octoprint/dto/websocket-output/events/client-authed.dto.js.map +1 -0
  136. package/dist/services/octoprint/dto/websocket-output/events/client-closed.dto.js +6 -0
  137. package/dist/services/octoprint/dto/websocket-output/events/client-closed.dto.js.map +1 -0
  138. package/dist/services/octoprint/dto/websocket-output/events/client-opened.dto.js +6 -0
  139. package/dist/services/octoprint/dto/websocket-output/events/client-opened.dto.js.map +1 -0
  140. package/dist/services/octoprint/dto/websocket-output/events/dwelling.dto.js +6 -0
  141. package/dist/services/octoprint/dto/websocket-output/events/dwelling.dto.js.map +1 -0
  142. package/dist/services/octoprint/dto/websocket-output/events/file-added.dto.js +6 -0
  143. package/dist/services/octoprint/dto/websocket-output/events/file-added.dto.js.map +1 -0
  144. package/dist/services/octoprint/dto/websocket-output/events/file-deselected.dto.js +6 -0
  145. package/dist/services/octoprint/dto/websocket-output/events/file-deselected.dto.js.map +1 -0
  146. package/dist/services/octoprint/dto/websocket-output/events/file-removed.dto.js +6 -0
  147. package/dist/services/octoprint/dto/websocket-output/events/file-removed.dto.js.map +1 -0
  148. package/dist/services/octoprint/dto/websocket-output/events/folder-added.dto.js +6 -0
  149. package/dist/services/octoprint/dto/websocket-output/events/folder-added.dto.js.map +1 -0
  150. package/dist/services/octoprint/dto/websocket-output/events/home.dto.js +6 -0
  151. package/dist/services/octoprint/dto/websocket-output/events/home.dto.js.map +1 -0
  152. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-finished.dto.js +6 -0
  153. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-finished.dto.js.map +1 -0
  154. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-started.dto.js +6 -0
  155. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-started.dto.js.map +1 -0
  156. package/dist/services/octoprint/dto/websocket-output/events/metadata-statistics-updated.dto.js +6 -0
  157. package/dist/services/octoprint/dto/websocket-output/events/metadata-statistics-updated.dto.js.map +1 -0
  158. package/dist/services/octoprint/dto/websocket-output/events/position-update.dto.js +6 -0
  159. package/dist/services/octoprint/dto/websocket-output/events/position-update.dto.js.map +1 -0
  160. package/dist/services/octoprint/dto/websocket-output/events/print-cancelled.dto.js +6 -0
  161. package/dist/services/octoprint/dto/websocket-output/events/print-cancelled.dto.js.map +1 -0
  162. package/dist/services/octoprint/dto/websocket-output/events/print-cancelling.dto.js +6 -0
  163. package/dist/services/octoprint/dto/websocket-output/events/print-cancelling.dto.js.map +1 -0
  164. package/dist/services/octoprint/dto/websocket-output/events/print-done.dto.js +6 -0
  165. package/dist/services/octoprint/dto/websocket-output/events/print-done.dto.js.map +1 -0
  166. package/dist/services/octoprint/dto/websocket-output/events/print-failed.dto.js +6 -0
  167. package/dist/services/octoprint/dto/websocket-output/events/print-failed.dto.js.map +1 -0
  168. package/dist/services/octoprint/dto/websocket-output/events/print-paused.dto.js +6 -0
  169. package/dist/services/octoprint/dto/websocket-output/events/print-paused.dto.js.map +1 -0
  170. package/dist/services/octoprint/dto/websocket-output/events/print-resumed.dto.js +6 -0
  171. package/dist/services/octoprint/dto/websocket-output/events/print-resumed.dto.js.map +1 -0
  172. package/dist/services/octoprint/dto/websocket-output/events/print-started.dto.js +6 -0
  173. package/dist/services/octoprint/dto/websocket-output/events/print-started.dto.js.map +1 -0
  174. package/dist/services/octoprint/dto/websocket-output/events/printer-state-changed.dto.js +6 -0
  175. package/dist/services/octoprint/dto/websocket-output/events/printer-state-changed.dto.js.map +1 -0
  176. package/dist/services/octoprint/dto/websocket-output/events/transfer-done.dto.js +6 -0
  177. package/dist/services/octoprint/dto/websocket-output/events/transfer-done.dto.js.map +1 -0
  178. package/dist/services/octoprint/dto/websocket-output/events/transfer-started.dto.js +6 -0
  179. package/dist/services/octoprint/dto/websocket-output/events/transfer-started.dto.js.map +1 -0
  180. package/dist/services/octoprint/dto/websocket-output/events/updated-files.dto.js +6 -0
  181. package/dist/services/octoprint/dto/websocket-output/events/updated-files.dto.js.map +1 -0
  182. package/dist/services/octoprint/dto/websocket-output/events/upload.dto.js +6 -0
  183. package/dist/services/octoprint/dto/websocket-output/events/upload.dto.js.map +1 -0
  184. package/dist/services/octoprint/dto/websocket-output/events/user-logged-in.dto.js +6 -0
  185. package/dist/services/octoprint/dto/websocket-output/events/user-logged-in.dto.js.map +1 -0
  186. package/dist/services/octoprint/dto/websocket-output/events/z-change.dto.js +6 -0
  187. package/dist/services/octoprint/dto/websocket-output/events/z-change.dto.js.map +1 -0
  188. package/dist/services/octoprint/dto/websocket-output/history-message.dto.js +6 -0
  189. package/dist/services/octoprint/dto/websocket-output/history-message.dto.js.map +1 -0
  190. package/dist/services/octoprint/dto/websocket-output/plugin-message.dto.js +6 -0
  191. package/dist/services/octoprint/dto/websocket-output/plugin-message.dto.js.map +1 -0
  192. package/dist/services/octoprint/dto/websocket-output/timelapse-message.dto.js +6 -0
  193. package/dist/services/octoprint/dto/websocket-output/timelapse-message.dto.js.map +1 -0
  194. package/dist/services/octoprint/models/octoprint-file.dto.js +6 -0
  195. package/dist/services/octoprint/models/octoprint-file.dto.js.map +1 -0
  196. package/dist/services/octoprint/octoprint-api.routes.js +24 -18
  197. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  198. package/dist/services/octoprint/octoprint-api.service.js +201 -138
  199. package/dist/services/octoprint/octoprint-api.service.js.map +1 -1
  200. package/dist/services/octoprint/octoprint-sockio.adapter.js +72 -66
  201. package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -1
  202. package/dist/services/octoprint/utils/api.utils.js +0 -35
  203. package/dist/services/octoprint/utils/api.utils.js.map +1 -1
  204. package/dist/services/octoprint/utils/file.utils.js +44 -0
  205. package/dist/services/octoprint/utils/file.utils.js.map +1 -0
  206. package/dist/services/orm/base.interface.js +6 -0
  207. package/dist/services/orm/base.interface.js.map +1 -0
  208. package/dist/services/orm/base.service.js +72 -0
  209. package/dist/services/orm/base.service.js.map +1 -0
  210. package/dist/services/orm/camera-stream.service.js +25 -0
  211. package/dist/services/orm/camera-stream.service.js.map +1 -0
  212. package/dist/services/orm/custom-gcode.service.js +42 -0
  213. package/dist/services/orm/custom-gcode.service.js.map +1 -0
  214. package/dist/services/orm/floor-position.service.js +55 -0
  215. package/dist/services/orm/floor-position.service.js.map +1 -0
  216. package/dist/services/orm/floor.service.js +122 -0
  217. package/dist/services/orm/floor.service.js.map +1 -0
  218. package/dist/services/orm/permission.service.js +77 -0
  219. package/dist/services/orm/permission.service.js.map +1 -0
  220. package/dist/services/orm/print-completion.service.js +90 -0
  221. package/dist/services/orm/print-completion.service.js.map +1 -0
  222. package/dist/services/orm/printer-files.service.js +123 -0
  223. package/dist/services/orm/printer-files.service.js.map +1 -0
  224. package/dist/services/orm/printer.service.js +145 -0
  225. package/dist/services/orm/printer.service.js.map +1 -0
  226. package/dist/services/orm/refresh-token.service.js +107 -0
  227. package/dist/services/orm/refresh-token.service.js.map +1 -0
  228. package/dist/services/orm/role.service.js +131 -0
  229. package/dist/services/orm/role.service.js.map +1 -0
  230. package/dist/services/orm/settings.service.js +208 -0
  231. package/dist/services/orm/settings.service.js.map +1 -0
  232. package/dist/services/orm/user-role.service.js +55 -0
  233. package/dist/services/orm/user-role.service.js.map +1 -0
  234. package/dist/services/orm/user.service.js +146 -0
  235. package/dist/services/orm/user.service.js.map +1 -0
  236. package/dist/services/orm-migration.service.js +20 -0
  237. package/dist/services/orm-migration.service.js.map +1 -0
  238. package/dist/services/print-completion.service.js +0 -1
  239. package/dist/services/print-completion.service.js.map +1 -1
  240. package/dist/services/printer-files.service.js +73 -49
  241. package/dist/services/printer-files.service.js.map +1 -1
  242. package/dist/services/printer.service.js +0 -2
  243. package/dist/services/printer.service.js.map +1 -1
  244. package/dist/services/typeorm/typeorm.service.js +48 -0
  245. package/dist/services/typeorm/typeorm.service.js.map +1 -0
  246. package/dist/shared/dtos/printer-login.dto.js +58 -0
  247. package/dist/shared/dtos/printer-login.dto.js.map +1 -0
  248. package/dist/{utils → shared}/websocket.adapter.js +3 -3
  249. package/dist/shared/websocket.adapter.js.map +1 -0
  250. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  251. package/dist/state/file.cache.js +12 -35
  252. package/dist/state/file.cache.js.map +1 -1
  253. package/dist/state/printer-connection.cache.js +21 -0
  254. package/dist/state/printer-connection.cache.js.map +1 -0
  255. package/dist/state/printer-events.cache.js +13 -7
  256. package/dist/state/printer-events.cache.js.map +1 -1
  257. package/dist/state/printer-files.store.js +14 -18
  258. package/dist/state/printer-files.store.js.map +1 -1
  259. package/dist/state/printer-socket.store.js +3 -3
  260. package/dist/state/printer-socket.store.js.map +1 -1
  261. package/dist/state/printer.cache.js +3 -0
  262. package/dist/state/printer.cache.js.map +1 -1
  263. package/dist/state/settings.store.js +9 -1
  264. package/dist/state/settings.store.js.map +1 -1
  265. package/dist/state/test-printer-socket.store.js +1 -1
  266. package/dist/task.presets.js.map +1 -1
  267. package/dist/tasks/boot.task.js +30 -18
  268. package/dist/tasks/boot.task.js.map +1 -1
  269. package/dist/tasks/print-completion.socketio.task.js +28 -19
  270. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  271. package/dist/tasks/printer-file-clean.task.js +14 -0
  272. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  273. package/dist/tasks/printer-state-update-poll.task.js +89 -0
  274. package/dist/tasks/printer-state-update-poll.task.js.map +1 -0
  275. package/dist/tasks/printer-websocket-restore.task.js +4 -3
  276. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  277. package/dist/tasks/printer-websocket.task.js +1 -1
  278. package/dist/tasks/printer-websocket.task.js.map +1 -1
  279. package/dist/tasks.js +2 -1
  280. package/dist/tasks.js.map +1 -1
  281. package/dist/utils/env.utils.js +0 -10
  282. package/dist/utils/env.utils.js.map +1 -1
  283. package/dist/utils/semver.utils.js +19 -4
  284. package/dist/utils/semver.utils.js.map +1 -1
  285. package/package.json +58 -47
  286. package/dist/utils/find-predicate.utils.js +0 -18
  287. package/dist/utils/find-predicate.utils.js.map +0 -1
  288. package/dist/utils/websocket.adapter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tasks/boot.task.ts"],"names":["BootTask","logger","taskManagerService","serverTasks","settingsStore","settingsService","multerService","printerSocketStore","printerFilesStore","permissionService","roleService","userService","pluginRepositoryCache","floorStore","pluginFirmwareUpdateService","clientBundleService","configService","constructor","loggerFactory","name","runOnce","registerJobOrTask","SERVER_BOOT_TASK","log","run","createConnection","migrateDatabase","e","mongoose","Error","message","includes","error","scheduleDisabledJob","DITokens","bootTask","loadSettings","syncPermissions","syncRoles","isDemoMode","warn","AppConstants","OVERRIDE_IS_DEMO_MODE","createOrUpdateDemoAccount","setLoginRequired","setRegistrationEnabled","loginRequired","get","OVERRIDE_LOGIN_REQUIRED","registrationEnabled","OVERRIDE_REGISTRATION_ENABLED","overrideJwtSecret","OVERRIDE_JWT_SECRET","undefined","overrideJwtExpiresIn","OVERRIDE_JWT_EXPIRES_IN","persistOptionalCredentialSettings","clearUploadsFolder","loadPrinterSockets","loadFilesStore","loadStore","process","env","SAFEMODE_ENABLED","BOOT_TASKS","forEach","task","disableJob","demoUsername","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","demoPassword","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","demoRole","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","adminRole","getRoleByName","demoUserId","getDemoUserId","register","username","password","isDemoUser","isVerified","isRootUser","needsPasswordChange","roles","id","setVerifiedById","setIsRootUserById","updatePasswordUnsafeByUsername","setUserRoleIds","setWizardCompleted","connect","fetchMongoDBConnectionString","serverSelectionTimeoutMS","syncIndexes","runMigrations","connection","db","getClient"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/tasks/boot.task.ts"],"names":["BootTask","logger","taskManagerService","serverTasks","settingsStore","settingsService","multerService","printerSocketStore","printerFilesStore","permissionService","roleService","userService","pluginRepositoryCache","floorStore","pluginFirmwareUpdateService","clientBundleService","configService","isTypeormMode","typeormService","constructor","loggerFactory","name","runOnce","registerJobOrTask","SERVER_BOOT_TASK","log","run","createConnection","migrateDatabase","e","mongoose","Error","message","includes","error","scheduleDisabledJob","DITokens","bootTask","loadSettings","syncPermissions","syncRoles","isDemoMode","warn","AppConstants","OVERRIDE_IS_DEMO_MODE","createOrUpdateDemoAccount","setLoginRequired","setRegistrationEnabled","loginRequired","get","OVERRIDE_LOGIN_REQUIRED","registrationEnabled","OVERRIDE_REGISTRATION_ENABLED","overrideJwtSecret","OVERRIDE_JWT_SECRET","undefined","overrideJwtExpiresIn","OVERRIDE_JWT_EXPIRES_IN","persistOptionalCredentialSettings","clearUploadsFolder","loadPrinterSockets","loadFilesStore","loadStore","process","env","SAFEMODE_ENABLED","BOOT_TASKS","forEach","task","disableJob","demoUsername","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","demoPassword","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","demoRole","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","adminRole","getRoleByName","demoUserId","getDemoUserId","register","username","password","isDemoUser","isVerified","isRootUser","needsPasswordChange","roles","id","setVerifiedById","setIsRootUserById","updatePasswordUnsafeByUsername","setUserRoleIds","setWizardCompleted","connect","fetchMongoDBConnectionString","serverSelectionTimeoutMS","syncIndexes","runMigrations","connection","db","getClient"],"mappings":"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"}
@@ -11,16 +11,17 @@ Object.defineProperty(exports, "PrintCompletionSocketIoTask", {
11
11
  const _eventconstants = require("../constants/event.constants");
12
12
  const _octoprintwebsocketconstants = require("../services/octoprint/constants/octoprint-websocket.constants");
13
13
  const _correlationtokenutil = require("../utils/correlation-token.util");
14
- const _socketiogateway = require("../state/socket-io.gateway");
15
14
  class PrintCompletionSocketIoTask {
16
15
  eventEmitter2;
17
16
  socketIoGateway;
18
17
  logger;
18
+ printerEventsCache;
19
19
  printCompletionService;
20
20
  contextCache = {};
21
- constructor({ eventEmitter2, socketIoGateway, printCompletionService, loggerFactory }){
21
+ constructor({ eventEmitter2, socketIoGateway, printCompletionService, printerEventsCache, loggerFactory }){
22
22
  this.eventEmitter2 = eventEmitter2;
23
23
  this.socketIoGateway = socketIoGateway;
24
+ this.printerEventsCache = printerEventsCache;
24
25
  this.printCompletionService = printCompletionService;
25
26
  this.logger = loggerFactory(PrintCompletionSocketIoTask.name);
26
27
  let that = this;
@@ -31,46 +32,54 @@ class PrintCompletionSocketIoTask {
31
32
  get contexts() {
32
33
  return this.contextCache;
33
34
  }
34
- async handleMessage(fdmEvent, octoPrintEvent, data) {
35
- const printerId = fdmEvent.replace("octoprint.", "");
35
+ async handleMessage(fdmEvent, data) {
36
+ const printerId = data.printerId;
36
37
  if (!printerId) {
37
38
  this.logger.log(`Skipping print completion log for FDM event ${fdmEvent}`);
38
39
  }
39
- if (octoPrintEvent !== "event") {
40
+ if (data.event !== "event") {
40
41
  return;
41
42
  }
42
- this.socketIoGateway.send(_socketiogateway.IO_MESSAGES.CompletionEvent, JSON.stringify({
43
- fdmEvent,
44
- octoPrintEvent,
45
- data
46
- }));
47
43
  const completion = {
48
- status: data.type,
49
- fileName: data.payload?.name,
44
+ status: data.payload.type,
45
+ fileName: data.payload?.payload?.name,
50
46
  createdAt: Date.now(),
51
47
  completionLog: data.payload?.error,
52
48
  printerId,
53
- context: {}
49
+ context: {
50
+ correlationId: null
51
+ }
54
52
  };
55
- if (data.type === _octoprintwebsocketconstants.EVENT_TYPES.EStop || data.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintCancelling || data.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintCancelled || data.type === _octoprintwebsocketconstants.EVENT_TYPES.Home || data.type === _octoprintwebsocketconstants.EVENT_TYPES.TransferStarted || data.type === _octoprintwebsocketconstants.EVENT_TYPES.TransferDone || data.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnecting || data.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnected || data.type === _octoprintwebsocketconstants.EVENT_TYPES.MetadataAnalysisStarted || data.type === _octoprintwebsocketconstants.EVENT_TYPES.MetadataAnalysisFinished || data.type === _octoprintwebsocketconstants.EVENT_TYPES.Error) {
53
+ if (data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.EStop || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintCancelling || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintCancelled || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Home || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.TransferStarted || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.TransferDone || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnecting || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnected || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.MetadataAnalysisStarted || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.MetadataAnalysisFinished || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Error) {
56
54
  this.contextCache[printerId] = {
57
55
  ...this.contextCache[printerId],
58
- [data.type]: completion
56
+ [data.payload.type]: completion
59
57
  };
58
+ if (data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnecting || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.Disconnected) {
59
+ await this.printerEventsCache.setSubstate(printerId, "current", "state", {
60
+ text: data.payload.type,
61
+ flags: {
62
+ operational: false,
63
+ printing: false,
64
+ ready: false,
65
+ closedOrError: true,
66
+ error: false
67
+ }
68
+ });
69
+ }
60
70
  const corrId = this.contextCache[printerId].correlationId;
61
71
  await this.printCompletionService.updateContext(corrId, this.contextCache[printerId]);
62
72
  return;
63
73
  }
64
- if (data.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintStarted) {
74
+ if (data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintStarted) {
65
75
  const token = (0, _correlationtokenutil.generateCorrelationToken)();
66
76
  this.contextCache[printerId] = {
67
77
  correlationId: token
68
78
  };
69
- completion.correlationId = token;
70
79
  completion.context = this.contextCache[printerId];
71
80
  await this.printCompletionService.create(completion);
72
- } else if (data.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintFailed || data.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintDone) {
73
- completion.context = this.contextCache[printerId] || {};
81
+ } else if (data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintFailed || data.payload.type === _octoprintwebsocketconstants.EVENT_TYPES.PrintDone) {
82
+ completion.context = this.contextCache[printerId];
74
83
  await this.printCompletionService.create(completion);
75
84
  this.eventEmitter2.emit((0, _eventconstants.fdmMonsterPrinterStoppedEvent)(printerId));
76
85
  this.contextCache[printerId] = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tasks/print-completion.socketio.task.ts"],"names":["PrintCompletionSocketIoTask","eventEmitter2","socketIoGateway","logger","printCompletionService","contextCache","constructor","loggerFactory","name","that","on","octoPrintWebsocketEvent","octoPrintEvent","data","handleMessage","event","contexts","fdmEvent","printerId","replace","log","send","IO_MESSAGES","CompletionEvent","JSON","stringify","completion","status","type","fileName","payload","createdAt","Date","now","completionLog","error","context","EVENT_TYPES","EStop","PrintCancelling","PrintCancelled","Home","TransferStarted","TransferDone","Disconnecting","Disconnected","MetadataAnalysisStarted","MetadataAnalysisFinished","Error","corrId","correlationId","updateContext","PrintStarted","token","generateCorrelationToken","create","PrintFailed","PrintDone","emit","fdmMonsterPrinterStoppedEvent","run","loadPrintContexts"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/tasks/print-completion.socketio.task.ts"],"names":["PrintCompletionSocketIoTask","eventEmitter2","socketIoGateway","logger","printerEventsCache","printCompletionService","contextCache","constructor","loggerFactory","name","that","on","octoPrintWebsocketEvent","octoPrintEvent","data","handleMessage","event","contexts","fdmEvent","printerId","log","completion","status","payload","type","fileName","createdAt","Date","now","completionLog","error","context","correlationId","EVENT_TYPES","EStop","PrintCancelling","PrintCancelled","Home","TransferStarted","TransferDone","Disconnecting","Disconnected","MetadataAnalysisStarted","MetadataAnalysisFinished","Error","setSubstate","text","flags","operational","printing","ready","closedOrError","corrId","updateContext","PrintStarted","token","generateCorrelationToken","create","PrintFailed","PrintDone","emit","fdmMonsterPrinterStoppedEvent","run","loadPrintContexts"],"mappings":"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"}
@@ -36,6 +36,20 @@ class PrinterFileCleanTask {
36
36
  } else {
37
37
  this.logger.log(`Reporting about old files of ${printers.length} printers.`);
38
38
  }
39
+ const errorPrinters = [];
40
+ for (let printer of printers){
41
+ try {
42
+ await this.printerFilesStore.eagerLoadPrinterFiles(printer.id, false);
43
+ } catch (e) {
44
+ errorPrinters.push({
45
+ e,
46
+ printer
47
+ });
48
+ }
49
+ }
50
+ if (errorPrinters.length > 0) {
51
+ this.logger.error(`Error loading some files, ${errorPrinters.length} printer(s) (${errorPrinters.map((ep)=>`${ep.printer.name} ${ep.e.toString()}`)}) did not respond or returned an unexpected status code. Those will depend on previously cached files.`);
52
+ }
39
53
  for (let printer of printers){
40
54
  const outdatedFiles = this.getPrinterOutdatedFiles(printer);
41
55
  if (!outdatedFiles?.length) continue;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tasks/printer-file-clean.task.ts"],"names":["PrinterFileCleanTask","logger","printerFilesStore","printerCache","settingsStore","taskManagerService","octoPrintApiService","constructor","loggerFactory","name","ageDaysMaxSetting","getSettings","autoRemoveOldFilesCriteriumDays","run","printers","listCachedPrinters","fileCleanSettings","autoCleanAtBootEnabled","autoRemoveOldFilesAtBoot","log","length","printer","outdatedFiles","getPrinterOutdatedFiles","cleanPrinterFiles","id","printerId","deleteOutdatedFiles","eagerLoadPrinterFiles","ageDaysMax","getOutdatedFiles","getFileCleanSettings"],"mappings":";;;;+BAcaA;;;eAAAA;;;AAAN,MAAMA;IACXC,OAAsB;IACtBC,kBAAqC;IACrCC,aAA2B;IAC3BC,cAA6B;IAC7BC,mBAAuC;IACvCC,oBAAyC;IAEzCC,YAAY,EACVJ,YAAY,EACZD,iBAAiB,EACjBI,mBAAmB,EACnBD,kBAAkB,EAClBD,aAAa,EACbI,aAAa,EAQd,CAAE;QACD,IAAI,CAACL,YAAY,GAAGA;QACpB,IAAI,CAACD,iBAAiB,GAAGA;QACzB,IAAI,CAACG,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,mBAAmB,GAAGA;QAC3B,IAAI,CAACF,aAAa,GAAGA;QACrB,IAAI,CAACH,MAAM,GAAGO,cAAcR,qBAAqBS,IAAI;IACvD;IAEA,IAAYC,oBAAoB;QAC9B,OAAO,IAAI,CAACC,WAAW,GAAGC,+BAA+B;IAC3D;IAEA,MAAMC,MAAM;QAEV,MAAMC,WAAW,MAAM,IAAI,CAACX,YAAY,CAACY,kBAAkB,CAAC;QAC5D,MAAMC,oBAAoB,IAAI,CAACL,WAAW;QAC1C,MAAMM,yBAAyBD,kBAAkBE,wBAAwB;QAEzE,IAAI;YACF,IAAID,wBAAwB;gBAC1B,IAAI,CAAChB,MAAM,CAACkB,GAAG,CAAC,CAAC,kBAAkB,EAAEL,SAASM,MAAM,CAAC,6DAA6D,CAAC;YACrH,OAAO;gBACL,IAAI,CAACnB,MAAM,CAACkB,GAAG,CAAC,CAAC,6BAA6B,EAAEL,SAASM,MAAM,CAAC,UAAU,CAAC;YAC7E;YAGA,KAAK,IAAIC,WAAWP,SAAU;gBAC5B,MAAMQ,gBAAgB,IAAI,CAACC,uBAAuB,CAACF;gBACnD,IAAI,CAACC,eAAeF,QAAQ;gBAG5B,IAAI,CAACnB,MAAM,CAACkB,GAAG,CAAC,CAAC,MAAM,EAAEG,eAAeF,OAAO,cAAc,EAAEC,QAAQZ,IAAI,CAAC,CAAC;gBAE7E,IAAIQ,wBAAwB;oBAC1B,MAAM,IAAI,CAACO,iBAAiB,CAACH,QAAQI,EAAE;gBACzC;YACF;QACF,SAAU;YACR,IAAI,CAACxB,MAAM,CAACkB,GAAG,CAAC,CAAC,mCAAmC,CAAC;QACvD;IACF;IAEA,MAAMK,kBAAkBE,SAAiB,EAAE;QAEzC,MAAM,IAAI,CAACxB,iBAAiB,CAACyB,mBAAmB,CAACD,WAAW,IAAI,CAAChB,iBAAiB;QAGlF,MAAM,IAAI,CAACR,iBAAiB,CAAC0B,qBAAqB,CAACF,WAAW;IAChE;IAMAH,wBAAwBF,OAA2B,EAAE;QACnD,MAAMQ,aAAa,IAAI,CAACnB,iBAAiB;QACzC,OAAO,IAAI,CAACR,iBAAiB,CAAC4B,gBAAgB,CAACT,QAAQI,EAAE,EAAEI;IAC7D;IAEQlB,cAAc;QACpB,OAAO,IAAI,CAACP,aAAa,CAAC2B,oBAAoB;IAChD;AACF"}
1
+ {"version":3,"sources":["../../src/tasks/printer-file-clean.task.ts"],"names":["PrinterFileCleanTask","logger","printerFilesStore","printerCache","settingsStore","taskManagerService","octoPrintApiService","constructor","loggerFactory","name","ageDaysMaxSetting","getSettings","autoRemoveOldFilesCriteriumDays","run","printers","listCachedPrinters","fileCleanSettings","autoCleanAtBootEnabled","autoRemoveOldFilesAtBoot","log","length","errorPrinters","printer","eagerLoadPrinterFiles","id","e","push","error","map","ep","toString","outdatedFiles","getPrinterOutdatedFiles","cleanPrinterFiles","printerId","deleteOutdatedFiles","ageDaysMax","getOutdatedFiles","getFileCleanSettings"],"mappings":";;;;+BAcaA;;;eAAAA;;;AAAN,MAAMA;IACXC,OAAsB;IACtBC,kBAAqC;IACrCC,aAA2B;IAC3BC,cAA6B;IAC7BC,mBAAuC;IACvCC,oBAAyC;IAEzCC,YAAY,EACVJ,YAAY,EACZD,iBAAiB,EACjBI,mBAAmB,EACnBD,kBAAkB,EAClBD,aAAa,EACbI,aAAa,EAQd,CAAE;QACD,IAAI,CAACL,YAAY,GAAGA;QACpB,IAAI,CAACD,iBAAiB,GAAGA;QACzB,IAAI,CAACG,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,mBAAmB,GAAGA;QAC3B,IAAI,CAACF,aAAa,GAAGA;QACrB,IAAI,CAACH,MAAM,GAAGO,cAAcR,qBAAqBS,IAAI;IACvD;IAEA,IAAYC,oBAAoB;QAC9B,OAAO,IAAI,CAACC,WAAW,GAAGC,+BAA+B;IAC3D;IAEA,MAAMC,MAAM;QACV,MAAMC,WAAW,MAAM,IAAI,CAACX,YAAY,CAACY,kBAAkB,CAAC;QAC5D,MAAMC,oBAAoB,IAAI,CAACL,WAAW;QAC1C,MAAMM,yBAAyBD,kBAAkBE,wBAAwB;QAEzE,IAAI;YACF,IAAID,wBAAwB;gBAC1B,IAAI,CAAChB,MAAM,CAACkB,GAAG,CAAC,CAAC,kBAAkB,EAAEL,SAASM,MAAM,CAAC,6DAA6D,CAAC;YACrH,OAAO;gBACL,IAAI,CAACnB,MAAM,CAACkB,GAAG,CAAC,CAAC,6BAA6B,EAAEL,SAASM,MAAM,CAAC,UAAU,CAAC;YAC7E;YAEA,MAAMC,gBAAgB,EAAE;YACxB,KAAK,IAAIC,WAAWR,SAAU;gBAC5B,IAAI;oBACF,MAAM,IAAI,CAACZ,iBAAiB,CAACqB,qBAAqB,CAACD,QAAQE,EAAE,EAAE;gBACjE,EAAE,OAAOC,GAAG;oBACVJ,cAAcK,IAAI,CAAC;wBAAED;wBAAGH;oBAAQ;gBAClC;YACF;YACA,IAAID,cAAcD,MAAM,GAAG,GAAG;gBAC5B,IAAI,CAACnB,MAAM,CAAC0B,KAAK,CACf,CAAC,0BAA0B,EAAEN,cAAcD,MAAM,CAAC,aAAa,EAAEC,cAAcO,GAAG,CAChF,CAACC,KAAO,CAAC,EAAEA,GAAGP,OAAO,CAACb,IAAI,CAAC,CAAC,EAAEoB,GAAGJ,CAAC,CAACK,QAAQ,GAAG,CAAC,EAC/C,sGAAsG,CAAC;YAE7G;YAGA,KAAK,IAAIR,WAAWR,SAAU;gBAC5B,MAAMiB,gBAAgB,IAAI,CAACC,uBAAuB,CAACV;gBACnD,IAAI,CAACS,eAAeX,QAAQ;gBAG5B,IAAI,CAACnB,MAAM,CAACkB,GAAG,CAAC,CAAC,MAAM,EAAEY,eAAeX,OAAO,cAAc,EAAEE,QAAQb,IAAI,CAAC,CAAC;gBAE7E,IAAIQ,wBAAwB;oBAC1B,MAAM,IAAI,CAACgB,iBAAiB,CAACX,QAAQE,EAAE;gBACzC;YACF;QACF,SAAU;YACR,IAAI,CAACvB,MAAM,CAACkB,GAAG,CAAC,CAAC,mCAAmC,CAAC;QACvD;IACF;IAEA,MAAMc,kBAAkBC,SAAiB,EAAE;QAEzC,MAAM,IAAI,CAAChC,iBAAiB,CAACiC,mBAAmB,CAACD,WAAW,IAAI,CAACxB,iBAAiB;QAGlF,MAAM,IAAI,CAACR,iBAAiB,CAACqB,qBAAqB,CAACW,WAAW;IAChE;IAMAF,wBAAwBV,OAA2B,EAAE;QACnD,MAAMc,aAAa,IAAI,CAAC1B,iBAAiB;QACzC,OAAO,IAAI,CAACR,iBAAiB,CAACmC,gBAAgB,CAACf,QAAQE,EAAE,EAAEY;IAC7D;IAEQzB,cAAc;QACpB,OAAO,IAAI,CAACP,aAAa,CAACkC,oBAAoB;IAChD;AACF"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrinterStateUpdatePollTask", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PrinterStateUpdatePollTask;
9
+ }
10
+ });
11
+ const _nodefs = require("node:fs");
12
+ const _serverconstants = require("../server.constants");
13
+ class PrinterStateUpdatePollTask {
14
+ printerCache;
15
+ printerConnectionCache;
16
+ printerEventsCache;
17
+ settingsStore;
18
+ configService;
19
+ octoPrintApiService;
20
+ taskManagerService;
21
+ logger;
22
+ constructor({ printerCache, printerConnectionCache, printerEventsCache, octoPrintApiService, settingsStore, configService, taskManagerService, loggerFactory }){
23
+ this.printerCache = printerCache;
24
+ this.printerConnectionCache = printerConnectionCache;
25
+ this.printerEventsCache = printerEventsCache;
26
+ this.settingsStore = settingsStore;
27
+ this.configService = configService;
28
+ this.octoPrintApiService = octoPrintApiService;
29
+ this.taskManagerService = taskManagerService;
30
+ this.logger = loggerFactory(PrinterStateUpdatePollTask.name);
31
+ }
32
+ async run() {
33
+ const startTime = Date.now();
34
+ const disabledPrintersCount = await this.printerCache.countDisabledPrinters();
35
+ const printers = await this.printerCache.listCachedPrinters(false);
36
+ const promisesStateUpdate = [];
37
+ let failures = 0;
38
+ let operational = 0;
39
+ let disconnected = 0;
40
+ let offlineAfterError = 0;
41
+ let printing = 0;
42
+ let paused = 0;
43
+ for (const printer of printers){
44
+ const login = this.printerCache.getLoginDto(printer.id);
45
+ try {
46
+ const promise = await this.octoPrintApiService.getConnection(login).then(async (connection)=>{
47
+ await this.printerConnectionCache.setPrinterConnection(printer.id, connection);
48
+ if (this._isDebugMode()) {
49
+ (0, _nodefs.writeFileSync)(`printer_connection_${printer.id}.txt`, JSON.stringify(connection, null, 2));
50
+ }
51
+ const current = await this.octoPrintApiService.getPrinterCurrent(login, false, null, [
52
+ "sd",
53
+ "temperature"
54
+ ]).catch(async (e)=>{
55
+ if (e.isAxiosError) {
56
+ const castError = e;
57
+ if (castError?.response?.status == 409) {
58
+ await this.printerEventsCache.setSubstate(printer.id, "current", "state", {});
59
+ disconnected += 1;
60
+ return null;
61
+ }
62
+ }
63
+ throw e;
64
+ });
65
+ if (!current) return;
66
+ if (this._isDebugMode()) {
67
+ (0, _nodefs.writeFileSync)(`printer_current_${printer.id}.txt`, JSON.stringify(current, null, 2));
68
+ }
69
+ const currentState = current.state;
70
+ operational += currentState?.flags.operational ? 1 : 0;
71
+ disconnected += currentState?.flags.closedOrError ? 1 : 0;
72
+ printing += currentState?.flags.printing ? 1 : 0;
73
+ paused += currentState?.flags.paused ? 1 : 0;
74
+ await this.printerEventsCache.setSubstate(printer.id, "current", "state", current);
75
+ });
76
+ promisesStateUpdate.push(promise);
77
+ } catch (e) {
78
+ failures++;
79
+ }
80
+ }
81
+ await Promise.all(promisesStateUpdate);
82
+ this.logger.log(`Printer state updates (total: ${printers.length}, failed: ${failures}, disabled: ${disabledPrintersCount}, operational: ${operational}, disconnected: ${disconnected}, offlineAfterError: ${offlineAfterError}, printing: ${printing}, paused: ${paused}) completed (${Date.now() - startTime}ms)`);
83
+ }
84
+ _isDebugMode() {
85
+ return this.configService.get(_serverconstants.AppConstants.debugFileWritePrinterStatesKey, _serverconstants.AppConstants.defaultDebugFileWritePrinterStates) === "true";
86
+ }
87
+ }
88
+
89
+ //# sourceMappingURL=printer-state-update-poll.task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tasks/printer-state-update-poll.task.ts"],"names":["PrinterStateUpdatePollTask","printerCache","printerConnectionCache","printerEventsCache","settingsStore","configService","octoPrintApiService","taskManagerService","logger","constructor","loggerFactory","name","run","startTime","Date","now","disabledPrintersCount","countDisabledPrinters","printers","listCachedPrinters","promisesStateUpdate","failures","operational","disconnected","offlineAfterError","printing","paused","printer","login","getLoginDto","id","promise","getConnection","then","connection","setPrinterConnection","_isDebugMode","writeFileSync","JSON","stringify","current","getPrinterCurrent","catch","e","isAxiosError","castError","response","status","setSubstate","currentState","state","flags","closedOrError","push","Promise","all","log","length","get","AppConstants","debugFileWritePrinterStatesKey","defaultDebugFileWritePrinterStates"],"mappings":"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"}
@@ -31,17 +31,18 @@ class PrinterWebsocketRestoreTask {
31
31
  if (socket.isClosedOrAborted()) {
32
32
  socket.close();
33
33
  socket.resetSocketState();
34
+ this.logger.warn("Socket was closed or aborted, manually removing it");
34
35
  resetAdapterIds.push(socket.printerId);
35
36
  continue;
36
37
  }
37
38
  } catch (e) {
38
- this.logger.error(`WebSocket authentication command failed for '${socket.printerId}' with error '${(0, _errorutils.errorSummary)(e)}'`, e.stack);
39
+ this.logger.error(`Resetting WebSocket socket failed for '${socket.printerId}' with error '${(0, _errorutils.errorSummary)(e)}'`, e.stack);
39
40
  continue;
40
41
  }
41
42
  if (socket.apiState !== _octoprintsockioadapter.API_STATE.unset && !socket.lastMessageReceivedTimestamp || Date.now() - socket.lastMessageReceivedTimestamp > 10 * 1000) {
43
+ const result = await this.octoPrintApiService.getConnection(socket.loginDto);
42
44
  silentSocketIds.push(socket.printerId);
43
45
  try {
44
- const result = await this.octoPrintApiService.getConnection(socket.loginDto);
45
46
  if (result?.current?.state !== "Closed") {
46
47
  this.logger.warn(`Silence was detected, but the OctoPrint current connection was not closed. Connection state ${result?.current?.state}, printerId: ${socket.printerId}.`);
47
48
  }
@@ -51,7 +52,7 @@ class PrinterWebsocketRestoreTask {
51
52
  }
52
53
  }
53
54
  const duration = Date.now() - startTime;
54
- if (this.settingsStore.getServerSettings()?.debugSettings?.debugSocketRetries) {
55
+ if (this.settingsStore.getSettingsSensitive()?.server?.debugSettings.debugSocketRetries) {
55
56
  this.logger.log(`Reset ${resetAdapterIds.length} closed/aborted sockets and detected ${silentSocketIds.length} silent sockets (duration ${duration}ms)`);
56
57
  }
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tasks/printer-websocket-restore.task.ts"],"names":["PrinterWebsocketRestoreTask","settingsStore","printerSocketStore","octoPrintApiService","logger","constructor","loggerFactory","name","run","startTime","Date","now","existingSockets","listPrinterSockets","resetAdapterIds","silentSocketIds","socket","isClosedOrAborted","close","resetSocketState","push","printerId","e","error","errorSummary","stack","apiState","API_STATE","unset","lastMessageReceivedTimestamp","result","getConnection","loginDto","current","state","warn","duration","getServerSettings","debugSettings","debugSocketRetries","log","length"],"mappings":";;;;+BAQaA;;;eAAAA;;;4BARgB;wCACH;AAOnB,MAAMA;IACXC,cAA6B;IAC7BC,mBAAuC;IACvCC,oBAAyC;IACzCC,OAAsB;IAEtBC,YAAY,EACVH,kBAAkB,EAClBC,mBAAmB,EACnBF,aAAa,EACbK,aAAa,EAMd,CAAE;QACD,IAAI,CAACJ,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,mBAAmB,GAAGA;QAC3B,IAAI,CAACF,aAAa,GAAGA;QACrB,IAAI,CAACG,MAAM,GAAGE,cAAcN,4BAA4BO,IAAI;IAC9D;IAEA,MAAMC,MAAM;QACV,MAAMC,YAAYC,KAAKC,GAAG;QAK1B,MAAMC,kBAAkB,IAAI,CAACV,kBAAkB,CAACW,kBAAkB;QAClE,MAAMC,kBAAkB,EAAE;QAC1B,MAAMC,kBAAkB,EAAE;QAC1B,KAAK,MAAMC,UAAUJ,gBAAiB;YACpC,IAAI;gBACF,IAAII,OAAOC,iBAAiB,IAAI;oBAC9BD,OAAOE,KAAK;oBACZF,OAAOG,gBAAgB;oBACvBL,gBAAgBM,IAAI,CAACJ,OAAOK,SAAS;oBACrC;gBACF;YACF,EAAE,OAAOC,GAAG;gBACV,IAAI,CAAClB,MAAM,CAACmB,KAAK,CACf,CAAC,6CAA6C,EAAEP,OAAOK,SAAS,CAAC,cAAc,EAAEG,IAAAA,wBAAY,EAACF,GAAG,CAAC,CAAC,EACnGA,EAAEG,KAAK;gBAET;YACF;YAGA,IACE,AAACT,OAAOU,QAAQ,KAAKC,iCAAS,CAACC,KAAK,IAAI,CAACZ,OAAOa,4BAA4B,IAC5EnB,KAAKC,GAAG,KAAKK,OAAOa,4BAA4B,GAAG,KAAK,MACxD;gBACAd,gBAAgBK,IAAI,CAACJ,OAAOK,SAAS;gBAErC,IAAI;oBACF,MAAMS,SAAS,MAAM,IAAI,CAAC3B,mBAAmB,CAAC4B,aAAa,CAACf,OAAOgB,QAAQ;oBAC3E,IAAIF,QAAQG,SAASC,UAAU,UAAU;wBACvC,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CACd,CAAC,4FAA4F,EAAEL,QAAQG,SAASC,MAAM,aAAa,EAAElB,OAAOK,SAAS,CAAC,CAAC,CAAC;oBAE5J;gBACF,EAAE,OAAOC,GAAG;oBACV,IAAI,CAAClB,MAAM,CAACmB,KAAK,CACf,CAAC,uFAAuF,EAAEP,OAAOK,SAAS,CAAC,CAAC,CAAC;gBAEjH;YACF;QACF;QAEA,MAAMe,WAAW1B,KAAKC,GAAG,KAAKF;QAC9B,IAAI,IAAI,CAACR,aAAa,CAACoC,iBAAiB,IAAIC,eAAeC,oBAAoB;YAC7E,IAAI,CAACnC,MAAM,CAACoC,GAAG,CACb,CAAC,MAAM,EAAE1B,gBAAgB2B,MAAM,CAAC,qCAAqC,EAAE1B,gBAAgB0B,MAAM,CAAC,0BAA0B,EAAEL,SAAS,GAAG,CAAC;QAE3I;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/tasks/printer-websocket-restore.task.ts"],"names":["PrinterWebsocketRestoreTask","settingsStore","printerSocketStore","octoPrintApiService","logger","constructor","loggerFactory","name","run","startTime","Date","now","existingSockets","listPrinterSockets","resetAdapterIds","silentSocketIds","socket","isClosedOrAborted","close","resetSocketState","warn","push","printerId","e","error","errorSummary","stack","apiState","API_STATE","unset","lastMessageReceivedTimestamp","result","getConnection","loginDto","current","state","duration","getSettingsSensitive","server","debugSettings","debugSocketRetries","log","length"],"mappings":";;;;+BAQaA;;;eAAAA;;;4BARgB;wCACH;AAOnB,MAAMA;IACXC,cAA6B;IAC7BC,mBAAuC;IACvCC,oBAAyC;IACzCC,OAAsB;IAEtBC,YAAY,EACVH,kBAAkB,EAClBC,mBAAmB,EACnBF,aAAa,EACbK,aAAa,EAMd,CAAE;QACD,IAAI,CAACJ,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,mBAAmB,GAAGA;QAC3B,IAAI,CAACF,aAAa,GAAGA;QACrB,IAAI,CAACG,MAAM,GAAGE,cAAcN,4BAA4BO,IAAI;IAC9D;IAEA,MAAMC,MAAM;QACV,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,MAAMC,kBAAkB,IAAI,CAACV,kBAAkB,CAACW,kBAAkB;QAClE,MAAMC,kBAAkB,EAAE;QAC1B,MAAMC,kBAAkB,EAAE;QAC1B,KAAK,MAAMC,UAAUJ,gBAAiB;YACpC,IAAI;gBACF,IAAII,OAAOC,iBAAiB,IAAI;oBAC9BD,OAAOE,KAAK;oBACZF,OAAOG,gBAAgB;oBACvB,IAAI,CAACf,MAAM,CAACgB,IAAI,CAAC;oBACjBN,gBAAgBO,IAAI,CAACL,OAAOM,SAAS;oBACrC;gBACF;YACF,EAAE,OAAOC,GAAQ;gBACf,IAAI,CAACnB,MAAM,CAACoB,KAAK,CAAC,CAAC,uCAAuC,EAAER,OAAOM,SAAS,CAAC,cAAc,EAAEG,IAAAA,wBAAY,EAACF,GAAG,CAAC,CAAC,EAAEA,EAAEG,KAAK;gBACxH;YACF;YAGA,IACE,AAACV,OAAOW,QAAQ,KAAKC,iCAAS,CAACC,KAAK,IAAI,CAACb,OAAOc,4BAA4B,IAC5EpB,KAAKC,GAAG,KAAKK,OAAOc,4BAA4B,GAAG,KAAK,MACxD;gBACA,MAAMC,SAAS,MAAM,IAAI,CAAC5B,mBAAmB,CAAC6B,aAAa,CAAChB,OAAOiB,QAAQ;gBAE3ElB,gBAAgBM,IAAI,CAACL,OAAOM,SAAS;gBAErC,IAAI;oBACF,IAAIS,QAAQG,SAASC,UAAU,UAAU;wBACvC,IAAI,CAAC/B,MAAM,CAACgB,IAAI,CACd,CAAC,4FAA4F,EAAEW,QAAQG,SAASC,MAAM,aAAa,EAAEnB,OAAOM,SAAS,CAAC,CAAC,CAAC;oBAE5J;gBACF,EAAE,OAAOC,GAAG;oBACV,IAAI,CAACnB,MAAM,CAACoB,KAAK,CACf,CAAC,uFAAuF,EAAER,OAAOM,SAAS,CAAC,CAAC,CAAC;gBAEjH;YACF;QACF;QAEA,MAAMc,WAAW1B,KAAKC,GAAG,KAAKF;QAC9B,IAAI,IAAI,CAACR,aAAa,CAACoC,oBAAoB,IAAIC,QAAQC,cAAcC,oBAAoB;YACvF,IAAI,CAACpC,MAAM,CAACqC,GAAG,CACb,CAAC,MAAM,EAAE3B,gBAAgB4B,MAAM,CAAC,qCAAqC,EAAE3B,gBAAgB2B,MAAM,CAAC,0BAA0B,EAAEN,SAAS,GAAG,CAAC;QAE3I;IACF;AACF"}
@@ -24,7 +24,7 @@ class PrinterWebsocketTask {
24
24
  async run() {
25
25
  const startTime = Date.now();
26
26
  const result = await this.printerSocketStore.reconnectPrinterSockets();
27
- if (this.settingsStore.getServerSettings().debugSettings?.debugSocketReconnect) {
27
+ if (this.settingsStore.getDebugSettingsSensitive()?.debugSocketReconnect) {
28
28
  this.logger.log(`Socket reconnect (${Date.now() - startTime}ms)`, result);
29
29
  }
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tasks/printer-websocket.task.ts"],"names":["PrinterWebsocketTask","printerSocketStore","settingsStore","octoPrintApiService","taskManagerService","logger","constructor","loggerFactory","name","run","startTime","Date","now","result","reconnectPrinterSockets","getServerSettings","debugSettings","debugSocketReconnect","log"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA;IAIXC,mBAAmB;IAInBC,cAAc;IAIdC,oBAAoB;IAIpBC,mBAAmB;IAKnBC,OAAO;IAEPC,YAAY,EAAEL,kBAAkB,EAAEE,mBAAmB,EAAED,aAAa,EAAEE,kBAAkB,EAAEG,aAAa,EAAE,CAAE;QACzG,IAAI,CAACN,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,aAAa,GAAGA;QACrB,IAAI,CAACC,mBAAmB,GAAGA;QAC3B,IAAI,CAACC,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,MAAM,GAAGE,cAAcP,qBAAqBQ,IAAI;IACvD;IAEA,MAAMC,MAAM;QACV,MAAMC,YAAYC,KAAKC,GAAG;QAC1B,MAAMC,SAAS,MAAM,IAAI,CAACZ,kBAAkB,CAACa,uBAAuB;QACpE,IAAI,IAAI,CAACZ,aAAa,CAACa,iBAAiB,GAAGC,aAAa,EAAEC,sBAAsB;YAC9E,IAAI,CAACZ,MAAM,CAACa,GAAG,CAAC,CAAC,kBAAkB,EAAEP,KAAKC,GAAG,KAAKF,UAAU,GAAG,CAAC,EAAEG;QACpE;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/tasks/printer-websocket.task.ts"],"names":["PrinterWebsocketTask","printerSocketStore","settingsStore","octoPrintApiService","taskManagerService","logger","constructor","loggerFactory","name","run","startTime","Date","now","result","reconnectPrinterSockets","getDebugSettingsSensitive","debugSocketReconnect","log"],"mappings":";;;;+BAOaA;;;eAAAA;;;AAAN,MAAMA;IACXC,mBAAuC;IACvCC,cAA6B;IAC7BC,oBAAyC;IACzCC,mBAAuC;IAEvCC,OAAsB;IAEtBC,YAAY,EACVL,kBAAkB,EAClBE,mBAAmB,EACnBD,aAAa,EACbE,kBAAkB,EAClBG,aAAa,EAOd,CAAE;QACD,IAAI,CAACN,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,aAAa,GAAGA;QACrB,IAAI,CAACC,mBAAmB,GAAGA;QAC3B,IAAI,CAACC,kBAAkB,GAAGA;QAC1B,IAAI,CAACC,MAAM,GAAGE,cAAcP,qBAAqBQ,IAAI;IACvD;IAEA,MAAMC,MAAM;QACV,MAAMC,YAAYC,KAAKC,GAAG;QAC1B,MAAMC,SAAS,MAAM,IAAI,CAACZ,kBAAkB,CAACa,uBAAuB;QACpE,IAAI,IAAI,CAACZ,aAAa,CAACa,yBAAyB,IAAIC,sBAAsB;YACxE,IAAI,CAACX,MAAM,CAACY,GAAG,CAAC,CAAC,kBAAkB,EAAEN,KAAKC,GAAG,KAAKF,UAAU,GAAG,CAAC,EAAEG;QACpE;IACF;AACF"}
package/dist/tasks.js CHANGED
@@ -23,7 +23,7 @@ function registerTask(task, preset, milliseconds = 0, runImmediately = false) {
23
23
  ...preset
24
24
  };
25
25
  timingPreset.milliseconds = preset.milliseconds || milliseconds;
26
- timingPreset.runImmediately = runImmediately | false;
26
+ timingPreset.runImmediately = runImmediately || false;
27
27
  return {
28
28
  id: task.name || task,
29
29
  task,
@@ -39,6 +39,7 @@ class ServerTasks {
39
39
  registerTask(_containertokens.DITokens.printCompletionSocketIoTask, _taskpresets.TASK_PRESETS.RUNONCE),
40
40
  registerTask(_containertokens.DITokens.printerFileCleanTask, _taskpresets.TASK_PRESETS.RUNONCE, 60 * 1000, true),
41
41
  registerTask(_containertokens.DITokens.printerWebsocketTask, _taskpresets.TASK_PRESETS.PERIODIC, 2000, true),
42
+ registerTask(_containertokens.DITokens.printerStateUpdatePollTask, _taskpresets.TASK_PRESETS.PERIODIC, 10 * 1000, true),
42
43
  registerTask(_containertokens.DITokens.printerWebsocketRestoreTask, _taskpresets.TASK_PRESETS.PERIODIC, 15 * 1000, false)
43
44
  ];
44
45
  }
package/dist/tasks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tasks.ts"],"names":["ServerTasks","registerTask","task","preset","milliseconds","runImmediately","timingPreset","id","name","SERVER_BOOT_TASK","DITokens","bootTask","TaskPresets","PERIODIC_DISABLED","BOOT_TASKS","softwareUpdateTask","RUNDELAYED","clientDistDownloadTask","RUNONCE","socketIoTask","PERIODIC","printCompletionSocketIoTask","printerFileCleanTask","printerWebsocketTask","printerWebsocketRestoreTask"],"mappings":";;;;;;;;;;;IAsBaA,WAAW;eAAXA;;IAXGC,YAAY;eAAZA;;;6BAX4B;iCACnB;AAUlB,SAASA,aAAaC,IAAI,EAAEC,MAAM,EAAEC,eAAe,CAAC,EAAEC,iBAAiB,KAAK;IACjF,IAAIC,eAAe;QAAE,GAAGH,MAAM;IAAC;IAC/BG,aAAaF,YAAY,GAAGD,OAAOC,YAAY,IAAIA;IACnDE,aAAaD,cAAc,GAAGA,iBAAiB;IAC/C,OAAO;QACLE,IAAIL,KAAKM,IAAI,IAAIN;QACjBA;QACAC,QAAQG;IACV;AACF;AAEO,MAAMN;IACX,OAAOS,mBAAmBR,aAAaS,yBAAQ,CAACC,QAAQ,EAAEC,yBAAW,CAACC,iBAAiB,EAAE,MAAM,OAAO;IACtG,OAAOC,aAAa;QAClBb,aAAaS,yBAAQ,CAACK,kBAAkB,EAAEH,yBAAW,CAACI,UAAU,EAAE;QAClEf,aAAaS,yBAAQ,CAACO,sBAAsB,EAAEL,yBAAW,CAACM,OAAO;QACjEjB,aAAaS,yBAAQ,CAACS,YAAY,EAAEP,yBAAW,CAACQ,QAAQ,EAAE;QAC1DnB,aAAaS,yBAAQ,CAACW,2BAA2B,EAAET,yBAAW,CAACM,OAAO;QACtEjB,aAAaS,yBAAQ,CAACY,oBAAoB,EAAEV,yBAAW,CAACM,OAAO,EAAE,KAAK,MAAM;QAE5EjB,aAAaS,yBAAQ,CAACa,oBAAoB,EAAEX,yBAAW,CAACQ,QAAQ,EAAE,MAAM;QAExEnB,aAAaS,yBAAQ,CAACc,2BAA2B,EAAEZ,yBAAW,CAACQ,QAAQ,EAAE,KAAK,MAAM;KACrF,CAAC;AACJ"}
1
+ {"version":3,"sources":["../src/tasks.ts"],"names":["ServerTasks","registerTask","task","preset","milliseconds","runImmediately","timingPreset","id","name","SERVER_BOOT_TASK","DITokens","bootTask","TaskPresets","PERIODIC_DISABLED","BOOT_TASKS","softwareUpdateTask","RUNDELAYED","clientDistDownloadTask","RUNONCE","socketIoTask","PERIODIC","printCompletionSocketIoTask","printerFileCleanTask","printerWebsocketTask","printerStateUpdatePollTask","printerWebsocketRestoreTask"],"mappings":";;;;;;;;;;;IAsBaA,WAAW;eAAXA;;IAXGC,YAAY;eAAZA;;;6BAX0C;iCACjC;AAUlB,SAASA,aAAaC,IAAI,EAAEC,MAAoB,EAAEC,eAAe,CAAC,EAAEC,iBAAiB,KAAK;IAC/F,IAAIC,eAAe;QAAE,GAAGH,MAAM;IAAC;IAC/BG,aAAaF,YAAY,GAAGD,OAAOC,YAAY,IAAIA;IACnDE,aAAaD,cAAc,GAAGA,kBAAkB;IAChD,OAAO;QACLE,IAAIL,KAAKM,IAAI,IAAIN;QACjBA;QACAC,QAAQG;IACV;AACF;AAEO,MAAMN;IACX,OAAOS,mBAAmBR,aAAaS,yBAAQ,CAACC,QAAQ,EAAEC,yBAAW,CAACC,iBAAiB,EAAE,MAAM,OAAO;IACtG,OAAOC,aAAa;QAClBb,aAAaS,yBAAQ,CAACK,kBAAkB,EAAEH,yBAAW,CAACI,UAAU,EAAE;QAClEf,aAAaS,yBAAQ,CAACO,sBAAsB,EAAEL,yBAAW,CAACM,OAAO;QACjEjB,aAAaS,yBAAQ,CAACS,YAAY,EAAEP,yBAAW,CAACQ,QAAQ,EAAE;QAC1DnB,aAAaS,yBAAQ,CAACW,2BAA2B,EAAET,yBAAW,CAACM,OAAO;QACtEjB,aAAaS,yBAAQ,CAACY,oBAAoB,EAAEV,yBAAW,CAACM,OAAO,EAAE,KAAK,MAAM;QAE5EjB,aAAaS,yBAAQ,CAACa,oBAAoB,EAAEX,yBAAW,CAACQ,QAAQ,EAAE,MAAM;QAExEnB,aAAaS,yBAAQ,CAACc,0BAA0B,EAAEZ,yBAAW,CAACQ,QAAQ,EAAE,KAAK,MAAM;QAEnFnB,aAAaS,yBAAQ,CAACe,2BAA2B,EAAEb,yBAAW,CAACQ,QAAQ,EAAE,KAAK,MAAM;KACrF,CAAC;AACJ"}
@@ -67,16 +67,6 @@ function isNodemon() {
67
67
  function isNode() {
68
68
  return "NODE" in process.env;
69
69
  }
70
- function stringifyDotEnv(obj) {
71
- let result = "";
72
- for (const [key, value] of Object.entries(obj)){
73
- if (key) {
74
- const line = `${key}=${String(value)}`;
75
- result += line + "\n";
76
- }
77
- }
78
- return result;
79
- }
80
70
  function verifyPackageJsonRequirements(rootPath) {
81
71
  const dirConts = _fs.default.readdirSync(rootPath);
82
72
  const hasPackageJson = dirConts.includes("package.json");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/env.utils.ts"],"names":["getEnvOrDefault","isDevelopmentEnvironment","isNode","isNodemon","isPm2","isProductionEnvironment","isTestEnvironment","verifyPackageJsonRequirements","logger","LoggerService","key","defaultVal","val","process","env","length","NODE_ENV","AppConstants","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv","npm_lifecycle_script","includes","stringifyDotEnv","obj","result","value","Object","entries","line","String","rootPath","dirConts","fs","readdirSync","hasPackageJson","error","debug","packageName","require","join","name","toLowerCase","serverPackageName"],"mappings":";;;;;;;;;;;IAOgBA,eAAe;eAAfA;;IAMAC,wBAAwB;eAAxBA;;IAoBAC,MAAM;eAANA;;IAJAC,SAAS;eAATA;;IAJAC,KAAK;eAALA;;IAJAC,uBAAuB;eAAvBA;;IAJAC,iBAAiB;eAAjBA;;IAmCAC,6BAA6B;eAA7BA;;;6CApDD;wBACe;iCACD;sBACR;;;;;;AAErB,MAAMC,SAAS,IAAIC,qBAAa,CAAC,aAAa;AAEvC,SAAST,gBAAgBU,GAAQ,EAAEC,UAAe;IACvD,MAAMC,MAAMC,QAAQC,GAAG,CAACJ,IAAI;IAC5B,IAAI,CAACE,KAAKG,QAAQ,OAAOJ;IACzB,OAAOC;AACT;AAEO,SAASX;IACd,OAAOY,QAAQC,GAAG,CAACE,QAAQ,KAAKC,6BAAY,CAACC,qBAAqB;AACpE;AAEO,SAASZ;IACd,OAAOO,QAAQC,GAAG,CAACE,QAAQ,KAAKC,6BAAY,CAACE,cAAc;AAC7D;AAEO,SAASd;IACd,OAAOQ,QAAQC,GAAG,CAACE,QAAQ,KAAKC,6BAAY,CAACG,oBAAoB;AACnE;AAEO,SAAShB;IACd,OAAO,cAAcS,QAAQC,GAAG,IAAI,yBAAyBD,QAAQC,GAAG,IAAI,aAAaD,QAAQC,GAAG;AACtG;AAEO,SAASX;IACd,OAAO,0BAA0BU,QAAQC,GAAG,IAAID,QAAQC,GAAG,CAACO,oBAAoB,CAAEC,QAAQ,CAAC;AAC7F;AAEO,SAASpB;IACd,OAAO,UAAUW,QAAQC,GAAG;AAC9B;AAMA,SAASS,gBAAgBC,GAAQ;IAC/B,IAAIC,SAAS;IACb,KAAK,MAAM,CAACf,KAAKgB,MAAM,IAAIC,OAAOC,OAAO,CAACJ,KAAM;QAC9C,IAAId,KAAK;YACP,MAAMmB,OAAO,CAAC,EAAEnB,IAAI,CAAC,EAAEoB,OAAOJ,OAAO,CAAC;YACtCD,UAAUI,OAAO;QACnB;IACF;IACA,OAAOJ;AACT;AAEO,SAASlB,8BAA8BwB,QAAgB;IAC5D,MAAMC,WAAWC,WAAE,CAACC,WAAW,CAACH;IAChC,MAAMI,iBAAiBH,SAASV,QAAQ,CAAC;IACzC,IAAI,CAACa,gBAAgB;QACnB3B,OAAO4B,KAAK,CAAC,CAAC,sDAAsD,EAAEL,SAAS,CAAC;QAChF,OAAO;IACT;IAEAvB,OAAO6B,KAAK,CAAC;IACb,MAAMC,cAAcC,QAAQC,IAAAA,UAAI,EAACT,UAAU,iBAAiBU,IAAI;IAChE,IAAI,CAACH,aAAa;QAChB9B,OAAO4B,KAAK,CAAC;QACb,OAAO;IACT;IAEA,IAAIE,YAAYI,WAAW,OAAOzB,6BAAY,CAAC0B,iBAAiB,EAAE;QAChEnC,OAAO4B,KAAK,CACV,CAAC,yEAAyE,EAAEE,YAAYI,WAAW,GAAG,uBAAuB,CAAC;QAEhI,OAAO;IACT;IAEAlC,OAAO6B,KAAK,CAAC;IACb,OAAO;AACT"}
1
+ {"version":3,"sources":["../../src/utils/env.utils.ts"],"names":["getEnvOrDefault","isDevelopmentEnvironment","isNode","isNodemon","isPm2","isProductionEnvironment","isTestEnvironment","verifyPackageJsonRequirements","logger","LoggerService","key","defaultVal","val","process","env","length","NODE_ENV","AppConstants","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv","npm_lifecycle_script","includes","rootPath","dirConts","fs","readdirSync","hasPackageJson","error","debug","packageName","require","join","name","toLowerCase","serverPackageName"],"mappings":";;;;;;;;;;;IAOgBA,eAAe;eAAfA;;IAMAC,wBAAwB;eAAxBA;;IAoBAC,MAAM;eAANA;;IAJAC,SAAS;eAATA;;IAJAC,KAAK;eAALA;;IAJAC,uBAAuB;eAAvBA;;IAJAC,iBAAiB;eAAjBA;;IAoBAC,6BAA6B;eAA7BA;;;6CArCD;wBACe;iCACD;sBACR;;;;;;AAErB,MAAMC,SAAS,IAAIC,qBAAa,CAAC,aAAa;AAEvC,SAAST,gBAAgBU,GAAQ,EAAEC,UAAe;IACvD,MAAMC,MAAMC,QAAQC,GAAG,CAACJ,IAAI;IAC5B,IAAI,CAACE,KAAKG,QAAQ,OAAOJ;IACzB,OAAOC;AACT;AAEO,SAASX;IACd,OAAOY,QAAQC,GAAG,CAACE,QAAQ,KAAKC,6BAAY,CAACC,qBAAqB;AACpE;AAEO,SAASZ;IACd,OAAOO,QAAQC,GAAG,CAACE,QAAQ,KAAKC,6BAAY,CAACE,cAAc;AAC7D;AAEO,SAASd;IACd,OAAOQ,QAAQC,GAAG,CAACE,QAAQ,KAAKC,6BAAY,CAACG,oBAAoB;AACnE;AAEO,SAAShB;IACd,OAAO,cAAcS,QAAQC,GAAG,IAAI,yBAAyBD,QAAQC,GAAG,IAAI,aAAaD,QAAQC,GAAG;AACtG;AAEO,SAASX;IACd,OAAO,0BAA0BU,QAAQC,GAAG,IAAID,QAAQC,GAAG,CAACO,oBAAoB,CAAEC,QAAQ,CAAC;AAC7F;AAEO,SAASpB;IACd,OAAO,UAAUW,QAAQC,GAAG;AAC9B;AAEO,SAASP,8BAA8BgB,QAAgB;IAC5D,MAAMC,WAAWC,WAAE,CAACC,WAAW,CAACH;IAChC,MAAMI,iBAAiBH,SAASF,QAAQ,CAAC;IACzC,IAAI,CAACK,gBAAgB;QACnBnB,OAAOoB,KAAK,CAAC,CAAC,sDAAsD,EAAEL,SAAS,CAAC;QAChF,OAAO;IACT;IAEAf,OAAOqB,KAAK,CAAC;IACb,MAAMC,cAAcC,QAAQC,IAAAA,UAAI,EAACT,UAAU,iBAAiBU,IAAI;IAChE,IAAI,CAACH,aAAa;QAChBtB,OAAOoB,KAAK,CAAC;QACb,OAAO;IACT;IAEA,IAAIE,YAAYI,WAAW,OAAOjB,6BAAY,CAACkB,iBAAiB,EAAE;QAChE3B,OAAOoB,KAAK,CACV,CAAC,yEAAyE,EAAEE,YAAYI,WAAW,GAAG,uBAAuB,CAAC;QAEhI,OAAO;IACT;IAEA1B,OAAOqB,KAAK,CAAC;IACb,OAAO;AACT"}
@@ -2,16 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "checkVersionSatisfiesMinimum", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ checkVersionSatisfiesMinimum: function() {
8
13
  return checkVersionSatisfiesMinimum;
14
+ },
15
+ getMaximumOfVersionsSafe: function() {
16
+ return getMaximumOfVersionsSafe;
9
17
  }
10
18
  });
11
19
  const _semver = require("semver");
12
20
  function checkVersionSatisfiesMinimum(newVersion, minimumVersion) {
13
21
  const comparison = (0, _semver.compare)(newVersion, minimumVersion);
14
- return comparison > -1;
22
+ return comparison !== -1;
23
+ }
24
+ function getMaximumOfVersionsSafe(v1, v2) {
25
+ if (!v2) return v1;
26
+ const comparison = (0, _semver.compare)(v1, v2);
27
+ if (comparison === 0) return v1;
28
+ if (comparison === -1) return v2;
29
+ return v1;
15
30
  }
16
31
 
17
32
  //# sourceMappingURL=semver.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/semver.utils.ts"],"names":["checkVersionSatisfiesMinimum","newVersion","minimumVersion","comparison","compare"],"mappings":";;;;+BAEgBA;;;eAAAA;;;wBAFQ;AAEjB,SAASA,6BAA6BC,UAAkB,EAAEC,cAAsB;IACrF,MAAMC,aAAaC,IAAAA,eAAO,EAACH,YAAYC;IAEvC,OAAOC,aAAa,CAAC;AACvB"}
1
+ {"version":3,"sources":["../../src/utils/semver.utils.ts"],"names":["checkVersionSatisfiesMinimum","getMaximumOfVersionsSafe","newVersion","minimumVersion","comparison","compare","v1","v2"],"mappings":";;;;;;;;;;;IAEgBA,4BAA4B;eAA5BA;;IAQAC,wBAAwB;eAAxBA;;;wBAVQ;AAEjB,SAASD,6BAA6BE,UAAkB,EAAEC,cAAsB;IACrF,MAAMC,aAAaC,IAAAA,eAAO,EAACH,YAAYC;IAIvC,OAAOC,eAAe,CAAC;AACzB;AAEO,SAASH,yBAAyBK,EAAU,EAAEC,EAAW;IAC9D,IAAI,CAACA,IAAI,OAAOD;IAChB,MAAMF,aAAaC,IAAAA,eAAO,EAACC,IAAIC;IAC/B,IAAIH,eAAe,GAAG,OAAOE;IAC7B,IAAIF,eAAe,CAAC,GAAG,OAAOG;IAC9B,OAAOD;AACT"}