@fdm-monster/server 2.0.0-rc1 → 2.0.1

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 (230) hide show
  1. package/.env.template +8 -3
  2. package/.yarn/install-state.gz +0 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/README.md +5 -4
  5. package/RELEASE_NOTES.MD +53 -0
  6. package/SECURITY.md +1 -1
  7. package/dist/consoles/download-github-releases.js +3 -3
  8. package/dist/consoles/launch-http-servers.js +4 -4
  9. package/dist/consoles/launch-http-servers.js.map +1 -1
  10. package/dist/consoles/mock-bambu.server.js +35 -16
  11. package/dist/consoles/mock-bambu.server.js.map +1 -1
  12. package/dist/consoles/mock-camera/default-image.js +13 -0
  13. package/dist/consoles/mock-camera/default-image.js.map +1 -0
  14. package/dist/consoles/mock-camera/mock-camera.server.js +160 -0
  15. package/dist/consoles/mock-camera/mock-camera.server.js.map +1 -0
  16. package/dist/consoles/mock-octoprint.server.js +281 -73
  17. package/dist/consoles/mock-octoprint.server.js.map +1 -1
  18. package/dist/consoles/mock-prusalink.server.js +11 -11
  19. package/dist/consoles/mock-prusalink.server.js.map +1 -1
  20. package/dist/consoles/typeorm-create.js +135 -0
  21. package/dist/consoles/typeorm-create.js.map +1 -0
  22. package/dist/consoles/typeorm-generate.js +8 -8
  23. package/dist/consoles/typeorm-generate.js.map +1 -1
  24. package/dist/constants/authorization.constants.js +13 -26
  25. package/dist/constants/authorization.constants.js.map +1 -1
  26. package/dist/constants/server-settings.constants.js +7 -20
  27. package/dist/constants/server-settings.constants.js.map +1 -1
  28. package/dist/container.js +18 -10
  29. package/dist/container.js.map +1 -1
  30. package/dist/container.tokens.js +9 -5
  31. package/dist/container.tokens.js.map +1 -1
  32. package/dist/controllers/batch-call.controller.js +0 -15
  33. package/dist/controllers/batch-call.controller.js.map +1 -1
  34. package/dist/controllers/file-storage.controller.js +319 -0
  35. package/dist/controllers/file-storage.controller.js.map +1 -0
  36. package/dist/controllers/first-time-setup.controller.js +2 -1
  37. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  38. package/dist/controllers/floor.controller.js +12 -12
  39. package/dist/controllers/floor.controller.js.map +1 -1
  40. package/dist/controllers/print-job.controller.js +666 -0
  41. package/dist/controllers/print-job.controller.js.map +1 -0
  42. package/dist/controllers/print-queue.controller.js +375 -0
  43. package/dist/controllers/print-queue.controller.js.map +1 -0
  44. package/dist/controllers/printer-files.controller.js +86 -59
  45. package/dist/controllers/printer-files.controller.js.map +1 -1
  46. package/dist/controllers/printer-settings.controller.js +0 -21
  47. package/dist/controllers/printer-settings.controller.js.map +1 -1
  48. package/dist/controllers/{printer-group.controller.js → printer-tag.controller.js} +51 -34
  49. package/dist/controllers/printer-tag.controller.js.map +1 -0
  50. package/dist/controllers/printer.controller.js +15 -0
  51. package/dist/controllers/printer.controller.js.map +1 -1
  52. package/dist/controllers/server-private.controller.js +2 -1
  53. package/dist/controllers/server-private.controller.js.map +1 -1
  54. package/dist/controllers/server-public.controller.js +6 -2
  55. package/dist/controllers/server-public.controller.js.map +1 -1
  56. package/dist/controllers/settings.controller.js +44 -44
  57. package/dist/controllers/settings.controller.js.map +1 -1
  58. package/dist/controllers/slicer-compat.controller.js +220 -0
  59. package/dist/controllers/slicer-compat.controller.js.map +1 -0
  60. package/dist/data-source.js +20 -8
  61. package/dist/data-source.js.map +1 -1
  62. package/dist/entities/camera-stream.entity.js +2 -1
  63. package/dist/entities/camera-stream.entity.js.map +1 -1
  64. package/dist/entities/floor.entity.js +3 -5
  65. package/dist/entities/floor.entity.js.map +1 -1
  66. package/dist/entities/index.js +15 -7
  67. package/dist/entities/index.js.map +1 -1
  68. package/dist/entities/print-job.entity.js +195 -0
  69. package/dist/entities/print-job.entity.js.map +1 -0
  70. package/dist/entities/{printer-group.entity.js → printer-tag.entity.js} +17 -17
  71. package/dist/entities/printer-tag.entity.js.map +1 -0
  72. package/dist/entities/printer.entity.js +4 -10
  73. package/dist/entities/printer.entity.js.map +1 -1
  74. package/dist/entities/settings.entity.js +3 -12
  75. package/dist/entities/settings.entity.js.map +1 -1
  76. package/dist/entities/{group.entity.js → tag.entity.js} +15 -8
  77. package/dist/entities/tag.entity.js.map +1 -0
  78. package/dist/index.js +8 -2
  79. package/dist/index.js.map +1 -1
  80. package/dist/middleware/exception.filter.js +114 -90
  81. package/dist/middleware/exception.filter.js.map +1 -1
  82. package/dist/middleware/global.middleware.js +6 -6
  83. package/dist/middleware/global.middleware.js.map +1 -1
  84. package/dist/middleware/slicer-api-key.middleware.js +29 -0
  85. package/dist/middleware/slicer-api-key.middleware.js.map +1 -0
  86. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +186 -0
  87. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -0
  88. package/dist/migrations/1767279607392-DropCustomGcode.js +31 -0
  89. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -0
  90. package/dist/migrations/1767291804417-DropPrintCompletions.js +37 -0
  91. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -0
  92. package/dist/migrations/1767352862576-DropSettingsFileClean.js +88 -0
  93. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -0
  94. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +107 -0
  95. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -0
  96. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +62 -0
  97. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -0
  98. package/dist/migrations/1767432108916-RenameGroupToTag.js +86 -0
  99. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -0
  100. package/dist/migrations/1767451444137-AddPrintJob.js +207 -0
  101. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -0
  102. package/dist/server.constants.js +9 -9
  103. package/dist/server.constants.js.map +1 -1
  104. package/dist/server.host.js +24 -32
  105. package/dist/server.host.js.map +1 -1
  106. package/dist/services/bambu/bambu-ftp.adapter.js +1 -1
  107. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  108. package/dist/services/bambu/bambu-mqtt.adapter.js +73 -76
  109. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  110. package/dist/services/core/batch-call.service.js +0 -25
  111. package/dist/services/core/batch-call.service.js.map +1 -1
  112. package/dist/services/core/multer.service.js +5 -9
  113. package/dist/services/core/multer.service.js.map +1 -1
  114. package/dist/services/core/yaml.service.js +231 -156
  115. package/dist/services/core/yaml.service.js.map +1 -1
  116. package/dist/services/file-analysis.service.js +146 -0
  117. package/dist/services/file-analysis.service.js.map +1 -0
  118. package/dist/services/file-storage.service.js +387 -0
  119. package/dist/services/file-storage.service.js.map +1 -0
  120. package/dist/services/interfaces/floor.dto.js +3 -3
  121. package/dist/services/interfaces/floor.dto.js.map +1 -1
  122. package/dist/services/interfaces/{printer-group.dto.js → printer-tag.dto.js} +9 -8
  123. package/dist/services/interfaces/printer-tag.dto.js.map +1 -0
  124. package/dist/services/interfaces/{print-completion.interface.js → printer-tag.service.interface.js} +1 -1
  125. package/dist/services/interfaces/{printer-group.service.interface.js.map → printer-tag.service.interface.js.map} +1 -1
  126. package/dist/services/interfaces/settings.dto.js +0 -1
  127. package/dist/services/interfaces/settings.dto.js.map +1 -1
  128. package/dist/services/interfaces/{group.dto.js → tag.dto.js} +1 -1
  129. package/dist/services/interfaces/tag.dto.js.map +1 -0
  130. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +1 -0
  131. package/dist/services/octoprint/octoprint-api.routes.js +0 -7
  132. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  133. package/dist/services/octoprint/octoprint.client.js +0 -4
  134. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  135. package/dist/services/orm/floor.service.js +9 -16
  136. package/dist/services/orm/floor.service.js.map +1 -1
  137. package/dist/services/orm/print-job.service.js +539 -0
  138. package/dist/services/orm/print-job.service.js.map +1 -0
  139. package/dist/services/orm/printer-tag.service.js +120 -0
  140. package/dist/services/orm/printer-tag.service.js.map +1 -0
  141. package/dist/services/orm/settings.service.js +5 -6
  142. package/dist/services/orm/settings.service.js.map +1 -1
  143. package/dist/services/print-file-downloader.service.js +169 -0
  144. package/dist/services/print-file-downloader.service.js.map +1 -0
  145. package/dist/services/print-queue.service.js +268 -0
  146. package/dist/services/print-queue.service.js.map +1 -0
  147. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +1 -3
  148. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  149. package/dist/services/validators/floor-service.validation.js +10 -10
  150. package/dist/services/validators/floor-service.validation.js.map +1 -1
  151. package/dist/services/validators/print-job.validation.js +31 -0
  152. package/dist/services/validators/print-job.validation.js.map +1 -0
  153. package/dist/services/validators/settings-service.validation.js +21 -24
  154. package/dist/services/validators/settings-service.validation.js.map +1 -1
  155. package/dist/services/validators/yaml-service.validation.js +9 -13
  156. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  157. package/dist/shared/load-controllers.js +2 -1
  158. package/dist/shared/load-controllers.js.map +1 -1
  159. package/dist/shared/runtime-settings.migration.js +9 -9
  160. package/dist/shared/runtime-settings.migration.js.map +1 -1
  161. package/dist/state/floor.store.js +2 -9
  162. package/dist/state/floor.store.js.map +1 -1
  163. package/dist/state/printer-events.cache.js +179 -19
  164. package/dist/state/printer-events.cache.js.map +1 -1
  165. package/dist/state/printer-thumbnail.cache.js +98 -183
  166. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  167. package/dist/state/settings.store.js +39 -37
  168. package/dist/state/settings.store.js.map +1 -1
  169. package/dist/state/socket-io.gateway.js +1 -1
  170. package/dist/state/socket-io.gateway.js.map +1 -1
  171. package/dist/tasks/boot.task.js +7 -5
  172. package/dist/tasks/boot.task.js.map +1 -1
  173. package/dist/tasks/print-job-analysis.task.js +116 -0
  174. package/dist/tasks/print-job-analysis.task.js.map +1 -0
  175. package/dist/tasks/printer-files-load.task.js +29 -0
  176. package/dist/tasks/printer-files-load.task.js.map +1 -0
  177. package/dist/tasks/socketio.task.js +1 -1
  178. package/dist/tasks/socketio.task.js.map +1 -1
  179. package/dist/tasks.js +3 -2
  180. package/dist/tasks.js.map +1 -1
  181. package/dist/utils/parsers/3mf.parser.js +337 -0
  182. package/dist/utils/parsers/3mf.parser.js.map +1 -0
  183. package/dist/utils/parsers/bgcode.parser.js +223 -0
  184. package/dist/utils/parsers/bgcode.parser.js.map +1 -0
  185. package/dist/utils/parsers/gcode.parser.js +254 -0
  186. package/dist/utils/parsers/gcode.parser.js.map +1 -0
  187. package/dist/utils/swagger/decorators.js +39 -0
  188. package/dist/utils/swagger/decorators.js.map +1 -0
  189. package/dist/utils/swagger/generator.js +196 -0
  190. package/dist/utils/swagger/generator.js.map +1 -0
  191. package/dist/utils/swagger/swagger.js +93 -0
  192. package/dist/utils/swagger/swagger.js.map +1 -0
  193. package/package.json +21 -17
  194. package/dist/controllers/custom-gcode.controller.js +0 -147
  195. package/dist/controllers/custom-gcode.controller.js.map +0 -1
  196. package/dist/controllers/print-completion.controller.js +0 -118
  197. package/dist/controllers/print-completion.controller.js.map +0 -1
  198. package/dist/controllers/printer-group.controller.js.map +0 -1
  199. package/dist/entities/custom-gcode.entity.js +0 -49
  200. package/dist/entities/custom-gcode.entity.js.map +0 -1
  201. package/dist/entities/group.entity.js.map +0 -1
  202. package/dist/entities/print-completion.entity.js +0 -90
  203. package/dist/entities/print-completion.entity.js.map +0 -1
  204. package/dist/entities/printer-group.entity.js.map +0 -1
  205. package/dist/services/interfaces/custom-gcode.dto.js +0 -18
  206. package/dist/services/interfaces/custom-gcode.dto.js.map +0 -1
  207. package/dist/services/interfaces/custom-gcode.service.interface.js +0 -6
  208. package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -1
  209. package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -1
  210. package/dist/services/interfaces/group.dto.js.map +0 -1
  211. package/dist/services/interfaces/print-completion-context.dto.js +0 -6
  212. package/dist/services/interfaces/print-completion-context.dto.js.map +0 -1
  213. package/dist/services/interfaces/print-completion.dto.js +0 -38
  214. package/dist/services/interfaces/print-completion.dto.js.map +0 -1
  215. package/dist/services/interfaces/print-completion.interface.js.map +0 -1
  216. package/dist/services/interfaces/printer-group.dto.js.map +0 -1
  217. package/dist/services/interfaces/printer-group.service.interface.js +0 -6
  218. package/dist/services/orm/custom-gcode.service.js +0 -42
  219. package/dist/services/orm/custom-gcode.service.js.map +0 -1
  220. package/dist/services/orm/print-completion.service.js +0 -87
  221. package/dist/services/orm/print-completion.service.js.map +0 -1
  222. package/dist/services/orm/print-completion.shared.js +0 -59
  223. package/dist/services/orm/print-completion.shared.js.map +0 -1
  224. package/dist/services/orm/printer-group.service.js +0 -109
  225. package/dist/services/orm/printer-group.service.js.map +0 -1
  226. package/dist/tasks/print-completion.socketio.task.js +0 -91
  227. package/dist/tasks/print-completion.socketio.task.js.map +0 -1
  228. package/dist/tasks/printer-file-clean.task.js +0 -74
  229. package/dist/tasks/printer-file-clean.task.js.map +0 -1
  230. /package/dist/services/{interfaces → octoprint/dto/files}/gcode-analysis.dto.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/validators/floor-service.validation.ts"],"names":["createOrUpdateFloorSchema","floorLevelValidator","floorNameValidator","printerInFloorSchema","updateFloorLevelSchema","updateFloorNameSchema","xValidator","yValidator","z","number","int","min","max","string","minFloorNameLength","object","printerId","idRuleV2","floorId","x","y","name","floor","printers","array","optional"],"mappings":";;;;;;;;;;;QAuBaA;eAAAA;;QAlBAC;eAAAA;;QACAC;eAAAA;;QAEAC;eAAAA;;QAWAC;eAAAA;;QAJAC;eAAAA;;QAZAC;eAAAA;;QACAC;eAAAA;;;qBAJK;kCACiB;mCACV;AAClB,MAAMD,aAAaE,MAAC,CAACC,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGC,GAAG,CAAC;AAC/C,MAAML,aAAaC,MAAC,CAACC,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGC,GAAG,CAAC;AAC/C,MAAMX,sBAAsBO,MAAC,CAACC,MAAM,GAAGC,GAAG;AAC1C,MAAMR,qBAAqBM,MAAC,CAACK,MAAM,GAAGF,GAAG,CAACG,oCAAkB;AAE5D,MAAMX,uBAAuBK,MAAC,CAACO,MAAM,CAAC;IAC3CC,WAAWC,2BAAQ;IACnBC,SAASD,2BAAQ;IACjBE,GAAGb;IACHc,GAAGb;AACL;AAEO,MAAMF,wBAAwBG,MAAC,CAACO,MAAM,CAAC;IAC5CM,MAAMnB;AACR;AAEO,MAAME,yBAAyBI,MAAC,CAACO,MAAM,CAAC;IAC7CO,OAAOrB;AACT;AAEO,MAAMD,4BAA4BQ,MAAC,CAACO,MAAM,CAAC;IAChDM,MAAMnB;IACNoB,OAAOrB;IACPsB,UAAUf,MAAC,CACRgB,KAAK,CACJhB,MAAC,CAACO,MAAM,CAAC;QACPC,WAAWC,2BAAQ;QACnBC,SAASD,2BAAQ,CAACQ,QAAQ;QAC1BN,GAAGb;QACHc,GAAGb;IACL,IAEDkB,QAAQ;AACb"}
1
+ {"version":3,"sources":["../../../src/services/validators/floor-service.validation.ts"],"names":["createOrUpdateFloorSchema","floorNameValidator","floorOrderValidator","printerInFloorSchema","updateFloorNameSchema","updateFloorOrderSchema","xValidator","yValidator","z","number","int","min","max","string","minFloorNameLength","object","printerId","idRuleV2","floorId","x","y","name","order","printers","array","optional"],"mappings":";;;;;;;;;;;QAuBaA;eAAAA;;QAjBAC;eAAAA;;QADAC;eAAAA;;QAGAC;eAAAA;;QAOAC;eAAAA;;QAIAC;eAAAA;;QAhBAC;eAAAA;;QACAC;eAAAA;;;qBAJK;kCACiB;mCACV;AAClB,MAAMD,aAAaE,MAAC,CAACC,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGC,GAAG,CAAC;AAC/C,MAAML,aAAaC,MAAC,CAACC,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGC,GAAG,CAAC;AAC/C,MAAMV,sBAAsBM,MAAC,CAACC,MAAM,GAAGC,GAAG;AAC1C,MAAMT,qBAAqBO,MAAC,CAACK,MAAM,GAAGF,GAAG,CAACG,oCAAkB;AAE5D,MAAMX,uBAAuBK,MAAC,CAACO,MAAM,CAAC;IAC3CC,WAAWC,2BAAQ;IACnBC,SAASD,2BAAQ;IACjBE,GAAGb;IACHc,GAAGb;AACL;AAEO,MAAMH,wBAAwBI,MAAC,CAACO,MAAM,CAAC;IAC5CM,MAAMpB;AACR;AAEO,MAAMI,yBAAyBG,MAAC,CAACO,MAAM,CAAC;IAC7CO,OAAOpB;AACT;AAEO,MAAMF,4BAA4BQ,MAAC,CAACO,MAAM,CAAC;IAChDM,MAAMpB;IACNqB,OAAOpB;IACPqB,UAAUf,MAAC,CACRgB,KAAK,CACJhB,MAAC,CAACO,MAAM,CAAC;QACPC,WAAWC,2BAAQ;QACnBC,SAASD,2BAAQ,CAACQ,QAAQ;QAC1BN,GAAGb;QACHc,GAAGb;IACL,IAEDkB,QAAQ;AACb"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get searchJobsPagedSchema () {
13
+ return searchJobsPagedSchema;
14
+ },
15
+ get searchJobsSchema () {
16
+ return searchJobsSchema;
17
+ }
18
+ });
19
+ const _zod = require("zod");
20
+ const searchJobsSchema = _zod.z.object({
21
+ searchPrinter: _zod.z.string().trim().min(1).optional(),
22
+ searchFile: _zod.z.string().trim().min(1).optional(),
23
+ startDate: _zod.z.string().date().min(1).optional(),
24
+ endDate: _zod.z.string().date().min(1).optional()
25
+ });
26
+ const searchJobsPagedSchema = searchJobsSchema.extend({
27
+ page: _zod.z.coerce.number().int().min(1),
28
+ pageSize: _zod.z.coerce.number().int().min(1).max(500)
29
+ });
30
+
31
+ //# sourceMappingURL=print-job.validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/validators/print-job.validation.ts"],"names":["searchJobsPagedSchema","searchJobsSchema","z","object","searchPrinter","string","trim","min","optional","searchFile","startDate","date","endDate","extend","page","coerce","number","int","pageSize","max"],"mappings":";;;;;;;;;;;QASaA;eAAAA;;QAPAC;eAAAA;;;qBAFK;AAEX,MAAMA,mBAAmBC,MAAC,CAACC,MAAM,CAAC;IACvCC,eAAeF,MAAC,CAACG,MAAM,GAAGC,IAAI,GAAGC,GAAG,CAAC,GAAGC,QAAQ;IAChDC,YAAYP,MAAC,CAACG,MAAM,GAAGC,IAAI,GAAGC,GAAG,CAAC,GAAGC,QAAQ;IAC7CE,WAAWR,MAAC,CAACG,MAAM,GAAGM,IAAI,GAAGJ,GAAG,CAAC,GAAGC,QAAQ;IAC5CI,SAASV,MAAC,CAACG,MAAM,GAAGM,IAAI,GAAGJ,GAAG,CAAC,GAAGC,QAAQ;AAC5C;AAEO,MAAMR,wBAAwBC,iBAAiBY,MAAM,CAAC;IAC3DC,MAAMZ,MAAC,CAACa,MAAM,CAACC,MAAM,GAAGC,GAAG,GAAGV,GAAG,CAAC;IAClCW,UAAUhB,MAAC,CAACa,MAAM,CAACC,MAAM,GAAGC,GAAG,GAAGV,GAAG,CAAC,GAAGY,GAAG,CAAC;AAC/C"}
@@ -12,14 +12,11 @@ _export(exports, {
12
12
  get bambuSupportSchema () {
13
13
  return bambuSupportSchema;
14
14
  },
15
- get clientNextSchema () {
16
- return clientNextSchema;
15
+ get credentialCoreSettingUpdateSchema () {
16
+ return credentialCoreSettingUpdateSchema;
17
17
  },
18
- get credentialSettingUpdateSchema () {
19
- return credentialSettingUpdateSchema;
20
- },
21
- get fileCleanSettingsUpdateSchema () {
22
- return fileCleanSettingsUpdateSchema;
18
+ get credentialSettingSchema () {
19
+ return credentialSettingSchema;
23
20
  },
24
21
  get frontendSettingsUpdateSchema () {
25
22
  return frontendSettingsUpdateSchema;
@@ -39,8 +36,8 @@ _export(exports, {
39
36
  get serverSettingsUpdateSchema () {
40
37
  return serverSettingsUpdateSchema;
41
38
  },
42
- get thumbnailSupportSchema () {
43
- return thumbnailSupportSchema;
39
+ get slicerApiKeyUpdateSchema () {
40
+ return slicerApiKeyUpdateSchema;
44
41
  },
45
42
  get timeoutSettingsUpdateSchema () {
46
43
  return timeoutSettingsUpdateSchema;
@@ -57,8 +54,6 @@ const serverSettingsUpdateSchema = _zod.z.object({
57
54
  experimentalMoonrakerSupport: _zod.z.boolean(),
58
55
  experimentalBambuSupport: _zod.z.boolean(),
59
56
  experimentalPrusaLinkSupport: _zod.z.boolean(),
60
- experimentalThumbnailSupport: _zod.z.boolean(),
61
- experimentalClientSupport: _zod.z.boolean(),
62
57
  sentryDiagnosticsEnabled: _zod.z.boolean()
63
58
  });
64
59
  const timeoutSettingsUpdateSchema = _zod.z.object({
@@ -69,26 +64,34 @@ const frontendSettingsUpdateSchema = _zod.z.object({
69
64
  gridCols: _zod.z.number().int().min(1),
70
65
  gridRows: _zod.z.number().int().min(1),
71
66
  largeTiles: _zod.z.boolean(),
72
- tilePreferCancelOverQuickStop: _zod.z.boolean()
67
+ tilePreferCancelOverQuickStop: _zod.z.boolean(),
68
+ gridNameSortDirection: _zod.z.enum([
69
+ 'horizontal',
70
+ 'vertical'
71
+ ]).optional()
73
72
  });
74
73
  const jwtSecretCredentialSettingUpdateSchema = _zod.z.object({
75
74
  jwtSecret: _zod.z.string().min(10)
76
75
  });
77
- const credentialSettingUpdateSchema = _zod.z.object({
76
+ const credentialSettingSchema = _zod.z.object({
77
+ jwtExpiresIn: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 120 : 0).max((0, _envutils.isProductionEnvironment)() ? 7200 : Infinity),
78
+ refreshTokenAttempts: _zod.z.number().int().min(-1),
79
+ refreshTokenExpiry: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 240 : 0),
80
+ slicerApiKey: _zod.z.string().nullable()
81
+ });
82
+ const credentialCoreSettingUpdateSchema = _zod.z.object({
78
83
  jwtExpiresIn: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 120 : 0).max((0, _envutils.isProductionEnvironment)() ? 7200 : Infinity),
79
84
  refreshTokenAttempts: _zod.z.number().int().min(-1),
80
85
  refreshTokenExpiry: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 240 : 0)
81
86
  });
87
+ const slicerApiKeyUpdateSchema = _zod.z.object({
88
+ slicerApiKey: _zod.z.string().nullable()
89
+ });
82
90
  const wizardUpdateSchema = _zod.z.object({
83
91
  wizardCompleted: _zod.z.boolean(),
84
92
  wizardCompletedAt: _zod.z.date().nullable(),
85
93
  wizardVersion: _zod.z.number().int().min(0)
86
94
  });
87
- const fileCleanSettingsUpdateSchema = _zod.z.object({
88
- autoRemoveOldFilesBeforeUpload: _zod.z.boolean(),
89
- autoRemoveOldFilesAtBoot: _zod.z.boolean(),
90
- autoRemoveOldFilesCriteriumDays: _zod.z.number().int().min(0)
91
- });
92
95
  const sentryDiagnosticsEnabledSchema = _zod.z.object({
93
96
  enabled: _zod.z.boolean()
94
97
  });
@@ -101,11 +104,5 @@ const prusaLinkSupportSchema = _zod.z.object({
101
104
  const bambuSupportSchema = _zod.z.object({
102
105
  enabled: _zod.z.boolean()
103
106
  });
104
- const thumbnailSupportSchema = _zod.z.object({
105
- enabled: _zod.z.boolean()
106
- });
107
- const clientNextSchema = _zod.z.object({
108
- enabled: _zod.z.boolean()
109
- });
110
107
 
111
108
  //# sourceMappingURL=settings-service.validation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/validators/settings-service.validation.ts"],"names":["bambuSupportSchema","clientNextSchema","credentialSettingUpdateSchema","fileCleanSettingsUpdateSchema","frontendSettingsUpdateSchema","jwtSecretCredentialSettingUpdateSchema","moonrakerSupportSchema","prusaLinkSupportSchema","sentryDiagnosticsEnabledSchema","serverSettingsUpdateSchema","thumbnailSupportSchema","timeoutSettingsUpdateSchema","wizardUpdateSchema","z","object","registration","boolean","loginRequired","experimentalMoonrakerSupport","experimentalBambuSupport","experimentalPrusaLinkSupport","experimentalThumbnailSupport","experimentalClientSupport","sentryDiagnosticsEnabled","apiTimeout","number","int","min","apiUploadTimeout","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","jwtSecret","string","jwtExpiresIn","isProductionEnvironment","max","Infinity","refreshTokenAttempts","refreshTokenExpiry","wizardCompleted","wizardCompletedAt","date","nullable","wizardVersion","autoRemoveOldFilesBeforeUpload","autoRemoveOldFilesAtBoot","autoRemoveOldFilesCriteriumDays","enabled"],"mappings":";;;;;;;;;;;QAmEaA;eAAAA;;QAQAC;eAAAA;;QA7CAC;eAAAA;;QAmBAC;eAAAA;;QA9BAC;eAAAA;;QAOAC;eAAAA;;QAiCAC;eAAAA;;QAIAC;eAAAA;;QARAC;eAAAA;;QApDAC;eAAAA;;QAoEAC;eAAAA;;QAzDAC;eAAAA;;QA6BAC;eAAAA;;;0BA3C2B;qBACtB;AAEX,MAAMH,6BAA6BI,MAAC,CAACC,MAAM,CAAC;IACjDC,cAAcF,MAAC,CAACG,OAAO;IACvBC,eAAeJ,MAAC,CAACG,OAAO;IACxBE,8BAA8BL,MAAC,CAACG,OAAO;IACvCG,0BAA0BN,MAAC,CAACG,OAAO;IACnCI,8BAA8BP,MAAC,CAACG,OAAO;IACvCK,8BAA8BR,MAAC,CAACG,OAAO;IACvCM,2BAA2BT,MAAC,CAACG,OAAO;IACpCO,0BAA0BV,MAAC,CAACG,OAAO;AACrC;AAEO,MAAML,8BAA8BE,MAAC,CAACC,MAAM,CAAC;IAClDU,YAAYX,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC;IACjCC,kBAAkBf,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC;AACzC;AAEO,MAAMvB,+BAA+BS,MAAC,CAACC,MAAM,CAAC;IACnDe,UAAUhB,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC;IAC/BG,UAAUjB,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC;IAC/BI,YAAYlB,MAAC,CAACG,OAAO;IACrBgB,+BAA+BnB,MAAC,CAACG,OAAO;AAC1C;AAEO,MAAMX,yCAAyCQ,MAAC,CAACC,MAAM,CAAC;IAC7DmB,WAAWpB,MAAC,CAACqB,MAAM,GAAGP,GAAG,CAAC;AAC5B;AAEO,MAAMzB,gCAAgCW,MAAC,CAACC,MAAM,CAAC;IACpDqB,cAActB,MAAC,CACZY,MAAM,GACNC,GAAG,GACHC,GAAG,CAACS,IAAAA,iCAAuB,MAAK,MAAM,GACtCC,GAAG,CAACD,IAAAA,iCAAuB,MAAK,OAAOE;IAC1CC,sBAAsB1B,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,CAAC;IAC5Ca,oBAAoB3B,MAAC,CAClBY,MAAM,GACNC,GAAG,GACHC,GAAG,CAACS,IAAAA,iCAAuB,MAAK,MAAM;AAC3C;AAEO,MAAMxB,qBAAqBC,MAAC,CAACC,MAAM,CAAC;IACzC2B,iBAAiB5B,MAAC,CAACG,OAAO;IAC1B0B,mBAAmB7B,MAAC,CAAC8B,IAAI,GAAGC,QAAQ;IACpCC,eAAehC,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC;AACtC;AAEO,MAAMxB,gCAAgCU,MAAC,CAACC,MAAM,CAAC;IACpDgC,gCAAgCjC,MAAC,CAACG,OAAO;IACzC+B,0BAA0BlC,MAAC,CAACG,OAAO;IACnCgC,iCAAiCnC,MAAC,CAACY,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC;AACxD;AAEO,MAAMnB,iCAAiCK,MAAC,CAACC,MAAM,CAAC;IACrDmC,SAASpC,MAAC,CAACG,OAAO;AACpB;AAEO,MAAMV,yBAAyBO,MAAC,CAACC,MAAM,CAAC;IAC7CmC,SAASpC,MAAC,CAACG,OAAO;AACpB;AAEO,MAAMT,yBAAyBM,MAAC,CAACC,MAAM,CAAC;IAC7CmC,SAASpC,MAAC,CAACG,OAAO;AACpB;AAEO,MAAMhB,qBAAqBa,MAAC,CAACC,MAAM,CAAC;IACzCmC,SAASpC,MAAC,CAACG,OAAO;AACpB;AAEO,MAAMN,yBAAyBG,MAAC,CAACC,MAAM,CAAC;IAC7CmC,SAASpC,MAAC,CAACG,OAAO;AACpB;AAEO,MAAMf,mBAAmBY,MAAC,CAACC,MAAM,CAAC;IACvCmC,SAASpC,MAAC,CAACG,OAAO;AACpB"}
1
+ {"version":3,"sources":["../../../src/services/validators/settings-service.validation.ts"],"names":["bambuSupportSchema","credentialCoreSettingUpdateSchema","credentialSettingSchema","frontendSettingsUpdateSchema","jwtSecretCredentialSettingUpdateSchema","moonrakerSupportSchema","prusaLinkSupportSchema","sentryDiagnosticsEnabledSchema","serverSettingsUpdateSchema","slicerApiKeyUpdateSchema","timeoutSettingsUpdateSchema","wizardUpdateSchema","z","object","registration","boolean","loginRequired","experimentalMoonrakerSupport","experimentalBambuSupport","experimentalPrusaLinkSupport","sentryDiagnosticsEnabled","apiTimeout","number","int","min","apiUploadTimeout","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","gridNameSortDirection","enum","optional","jwtSecret","string","jwtExpiresIn","isProductionEnvironment","max","Infinity","refreshTokenAttempts","refreshTokenExpiry","slicerApiKey","nullable","wizardCompleted","wizardCompletedAt","date","wizardVersion","enabled"],"mappings":"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"}
@@ -32,7 +32,8 @@ const exportPrintersFloorsYamlSchema = _zod.z.object({
32
32
  exportPrinters: _zod.z.boolean(),
33
33
  exportFloorGrid: _zod.z.boolean(),
34
34
  exportFloors: _zod.z.boolean(),
35
- exportGroups: _zod.z.boolean(),
35
+ exportTags: _zod.z.boolean(),
36
+ exportGroups: _zod.z.boolean().optional(),
36
37
  exportSettings: _zod.z.boolean().default(false),
37
38
  exportUsers: _zod.z.boolean().default(false),
38
39
  printerComparisonStrategiesByPriority: _zod.z.array(_zod.z.string().refine((val)=>[
@@ -71,6 +72,7 @@ const importPrintersFloorsYamlSchema = _zod.z.object({
71
72
  exportPrinters: _zod.z.boolean(),
72
73
  exportFloorGrid: _zod.z.boolean(),
73
74
  exportFloors: _zod.z.boolean(),
75
+ exportTags: _zod.z.boolean().optional(),
74
76
  exportGroups: _zod.z.boolean().optional(),
75
77
  exportSettings: _zod.z.boolean().optional().default(false),
76
78
  exportUsers: _zod.z.boolean().optional().default(false),
@@ -90,6 +92,8 @@ const importPrintersFloorsYamlSchema = _zod.z.object({
90
92
  printerURL: _printerservicevalidation.printerUrlValidator,
91
93
  printerType: _printerservicevalidation.printerTypeValidator,
92
94
  apiKey: _printerservicevalidation.printerApiKeyValidator,
95
+ username: _printerservicevalidation.printerUsernameValidator.optional(),
96
+ password: _printerservicevalidation.printerPasswordValidator.optional(),
93
97
  enabled: _printerservicevalidation.printerEnabledValidator,
94
98
  name: _printerservicevalidation.printerNameValidator,
95
99
  printerName: _zod.z.string().optional(),
@@ -99,13 +103,15 @@ const importPrintersFloorsYamlSchema = _zod.z.object({
99
103
  })).min(0).default([]),
100
104
  floors: _zod.z.array(_zod.z.object({
101
105
  id: numberOrStringIdValidator,
102
- floor: _floorservicevalidation.floorLevelValidator,
106
+ order: _floorservicevalidation.floorOrderValidator,
107
+ floor: _floorservicevalidation.floorOrderValidator.optional(),
103
108
  name: _floorservicevalidation.floorNameValidator,
104
109
  printers: printerPositionsSchema
105
110
  })).min(0).default([]),
106
- groups: _zod.z.array(_zod.z.object({
111
+ tags: _zod.z.array(_zod.z.object({
107
112
  id: numberOrStringIdValidator,
108
113
  name: _zod.z.string(),
114
+ color: _zod.z.string().optional(),
109
115
  printers: _zod.z.array(_zod.z.object({
110
116
  printerId: numberOrStringIdValidator
111
117
  }))
@@ -121,16 +127,6 @@ const importPrintersFloorsYamlSchema = _zod.z.object({
121
127
  passwordHash: _zod.z.string(),
122
128
  createdAt: _zod.z.date().optional(),
123
129
  roles: _zod.z.array(_zod.z.any()).optional()
124
- })).optional().default([]),
125
- roles: _zod.z.array(_zod.z.object({
126
- id: numberOrStringIdValidator,
127
- name: _zod.z.string()
128
- })).optional().default([]),
129
- user_roles: _zod.z.array(_zod.z.object({
130
- id: numberOrStringIdValidator,
131
- userId: numberOrStringIdValidator,
132
- roleId: numberOrStringIdValidator,
133
- createdAt: _zod.z.date().optional()
134
130
  })).optional().default([])
135
131
  });
136
132
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlSchema","importPrinterPositionsSchema","importPrintersFloorsYamlSchema","numberOrStringIdValidator","printerPositionsSchema","z","object","exportPrinters","boolean","exportFloorGrid","exportFloors","exportGroups","exportSettings","default","exportUsers","printerComparisonStrategiesByPriority","array","string","refine","val","includes","min","floorComparisonStrategiesByPriority","notes","optional","union","number","printerId","floorId","x","xValidator","y","yValidator","printers","version","exportedAt","date","databaseType","enum","config","id","printerURL","printerUrlValidator","printerType","printerTypeValidator","apiKey","printerApiKeyValidator","enabled","printerEnabledValidator","name","printerNameValidator","printerName","settingsAppearance","floors","floor","floorLevelValidator","floorNameValidator","groups","settings","any","users","username","isDemoUser","isRootUser","isVerified","needsPasswordChange","passwordHash","createdAt","roles","user_roles","userId","roleId"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlSchema","importPrinterPositionsSchema","importPrintersFloorsYamlSchema","numberOrStringIdValidator","printerPositionsSchema","z","object","exportPrinters","boolean","exportFloorGrid","exportFloors","exportTags","exportGroups","optional","exportSettings","default","exportUsers","printerComparisonStrategiesByPriority","array","string","refine","val","includes","min","floorComparisonStrategiesByPriority","notes","union","number","printerId","floorId","x","xValidator","y","yValidator","printers","version","exportedAt","date","databaseType","enum","config","id","printerURL","printerUrlValidator","printerType","printerTypeValidator","apiKey","printerApiKeyValidator","username","printerUsernameValidator","password","printerPasswordValidator","enabled","printerEnabledValidator","name","printerNameValidator","printerName","settingsAppearance","floors","order","floorOrderValidator","floor","floorNameValidator","tags","color","settings","any","users","isDemoUser","isRootUser","isVerified","needsPasswordChange","passwordHash","createdAt","roles"],"mappings":"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"}
@@ -13,7 +13,8 @@ const _path = require("path");
13
13
  const loadControllersFunc = ()=>(0, _awilixexpress.loadControllers)("./controllers/*.controller.*", {
14
14
  cwd: (0, _path.join)(__dirname, ".."),
15
15
  ignore: [
16
- "**/*.map"
16
+ "**/*.map",
17
+ "**/*.d.ts"
17
18
  ]
18
19
  });
19
20
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/load-controllers.ts"],"names":["loadControllersFunc","loadControllers","cwd","join","__dirname","ignore"],"mappings":";;;;+BAGaA;;;eAAAA;;;+BAHmB;sBACX;AAEd,MAAMA,sBAAsB,IACjCC,IAAAA,8BAAe,EAAC,gCAAgC;QAC9CC,KAAKC,IAAAA,UAAI,EAACC,WAAW;QACrBC,QAAQ;YAAC;SAAW;IACtB"}
1
+ {"version":3,"sources":["../../src/shared/load-controllers.ts"],"names":["loadControllersFunc","loadControllers","cwd","join","__dirname","ignore"],"mappings":";;;;+BAGaA;;;eAAAA;;;+BAHmB;sBACX;AAEd,MAAMA,sBAAsB,IACjCC,IAAAA,8BAAe,EAAC,gCAAgC;QAC9CC,KAAKC,IAAAA,UAAI,EAACC,WAAW;QACrBC,QAAQ;YAAC;YAAY;SAAY;IACnC"}
@@ -27,12 +27,14 @@ function migrateSettingsRuntime(knownSettings) {
27
27
  ...(0, _serversettingsconstants.getDefaultCredentialSettings)(),
28
28
  jwtSecret: (0, _uuid.v4)()
29
29
  };
30
- entity[_serversettingsconstants.printerFileCleanSettingKey] ??= (0, _serversettingsconstants.getDefaultFileCleanSettings)();
31
- if (entity[_serversettingsconstants.printerFileCleanSettingKey]) {
32
- entity[_serversettingsconstants.printerFileCleanSettingKey] = {
33
- autoRemoveOldFilesBeforeUpload: entity[_serversettingsconstants.printerFileCleanSettingKey].autoRemoveOldFilesBeforeUpload,
34
- autoRemoveOldFilesAtBoot: entity[_serversettingsconstants.printerFileCleanSettingKey].autoRemoveOldFilesBeforeUpload,
35
- autoRemoveOldFilesCriteriumDays: entity[_serversettingsconstants.printerFileCleanSettingKey].autoRemoveOldFilesCriteriumDays
30
+ if (entity[_serversettingsconstants.frontendSettingKey]) {
31
+ const defaultFrontendSettings = (0, _serversettingsconstants.getDefaultFrontendSettings)();
32
+ entity[_serversettingsconstants.frontendSettingKey] = {
33
+ gridCols: entity[_serversettingsconstants.frontendSettingKey].gridCols ?? defaultFrontendSettings.gridCols,
34
+ gridRows: entity[_serversettingsconstants.frontendSettingKey].gridRows ?? defaultFrontendSettings.gridRows,
35
+ largeTiles: entity[_serversettingsconstants.frontendSettingKey].largeTiles ?? defaultFrontendSettings.largeTiles,
36
+ tilePreferCancelOverQuickStop: entity[_serversettingsconstants.frontendSettingKey].tilePreferCancelOverQuickStop ?? defaultFrontendSettings.tilePreferCancelOverQuickStop,
37
+ gridNameSortDirection: entity[_serversettingsconstants.frontendSettingKey].gridNameSortDirection ?? defaultFrontendSettings.gridNameSortDirection
36
38
  };
37
39
  }
38
40
  if (entity[_serversettingsconstants.serverSettingsKey]) {
@@ -40,12 +42,10 @@ function migrateSettingsRuntime(knownSettings) {
40
42
  entity[_serversettingsconstants.serverSettingsKey] = {
41
43
  loginRequired: entity[_serversettingsconstants.serverSettingsKey].loginRequired ?? defaultServerSettings.loginRequired,
42
44
  registration: entity[_serversettingsconstants.serverSettingsKey].registration ?? defaultServerSettings.registration,
43
- experimentalClientSupport: entity[_serversettingsconstants.serverSettingsKey].experimentalClientSupport ?? defaultServerSettings.experimentalClientSupport,
44
45
  experimentalMoonrakerSupport: entity[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport ?? defaultServerSettings.experimentalMoonrakerSupport,
45
46
  experimentalPrusaLinkSupport: entity[_serversettingsconstants.serverSettingsKey].experimentalPrusaLinkSupport ?? defaultServerSettings.experimentalPrusaLinkSupport,
46
47
  experimentalBambuSupport: entity[_serversettingsconstants.serverSettingsKey].experimentalBambuSupport ?? defaultServerSettings.experimentalBambuSupport,
47
- sentryDiagnosticsEnabled: entity[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled ?? defaultServerSettings.sentryDiagnosticsEnabled,
48
- experimentalThumbnailSupport: entity[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport ?? defaultServerSettings.experimentalThumbnailSupport
48
+ sentryDiagnosticsEnabled: entity[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled ?? defaultServerSettings.sentryDiagnosticsEnabled
49
49
  };
50
50
  }
51
51
  return entity;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/runtime-settings.migration.ts"],"names":["migrateSettingsRuntime","knownSettings","entity","wizardSettingKey","getDefaultWizardSettings","timeoutSettingKey","getDefaultTimeout","defaultTimeoutSettings","apiTimeout","apiUploadTimeout","serverSettingsKey","getDefaultServerSettings","frontendSettingKey","getDefaultFrontendSettings","credentialSettingsKey","getDefaultCredentialSettings","jwtSecret","uuidv4","printerFileCleanSettingKey","getDefaultFileCleanSettings","autoRemoveOldFilesBeforeUpload","autoRemoveOldFilesAtBoot","autoRemoveOldFilesCriteriumDays","defaultServerSettings","loginRequired","registration","experimentalClientSupport","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalBambuSupport","sentryDiagnosticsEnabled","experimentalThumbnailSupport"],"mappings":";;;;+BAiBgBA;;;eAAAA;;;yCAJT;sBACsB;AAGtB,SAASA,uBAAuBC,aAAgC;IACrE,MAAMC,SAASD;IAEfC,MAAM,CAACC,yCAAgB,CAAC,KAAKC,IAAAA,iDAAwB;IACrDF,MAAM,CAACG,0CAAiB,CAAC,KAAKC,IAAAA,0CAAiB;IAE/C,IAAIJ,MAAM,CAACG,0CAAiB,CAAC,EAAE;QAC7B,MAAME,yBAAyBD,IAAAA,0CAAiB;QAChDJ,MAAM,CAACG,0CAAiB,CAAC,GAAG;YAC1BG,YAAYN,MAAM,CAACG,0CAAiB,CAAC,CAACG,UAAU,IAAID,uBAAuBC,UAAU;YACrFC,kBAAkBP,MAAM,CAACG,0CAAiB,CAAC,CAACI,gBAAgB,IAAIF,uBAAuBE,gBAAgB;QACzG;IACF;IAEAP,MAAM,CAACQ,0CAAiB,CAAC,KAAKC,IAAAA,iDAAwB;IACtDT,MAAM,CAACU,2CAAkB,CAAC,KAAKC,IAAAA,mDAA0B;IACzDX,MAAM,CAACY,8CAAqB,CAAC,KAAK;QAChC,GAAGC,IAAAA,qDAA4B,GAAE;QAEjCC,WAAWC,IAAAA,QAAM;IACnB;IACAf,MAAM,CAACgB,mDAA0B,CAAC,KAAKC,IAAAA,oDAA2B;IAElE,IAAIjB,MAAM,CAACgB,mDAA0B,CAAC,EAAE;QAEtChB,MAAM,CAACgB,mDAA0B,CAAC,GAAG;YACnCE,gCAAgClB,MAAM,CAACgB,mDAA0B,CAAC,CAACE,8BAA8B;YACjGC,0BAA0BnB,MAAM,CAACgB,mDAA0B,CAAC,CAACE,8BAA8B;YAC3FE,iCAAiCpB,MAAM,CAACgB,mDAA0B,CAAC,CAACI,+BAA+B;QACrG;IACF;IAEA,IAAIpB,MAAM,CAACQ,0CAAiB,CAAC,EAAE;QAC7B,MAAMa,wBAAwBZ,IAAAA,iDAAwB;QAGtDT,MAAM,CAACQ,0CAAiB,CAAC,GAAG;YAC1Bc,eAAetB,MAAM,CAACQ,0CAAiB,CAAC,CAACc,aAAa,IAAID,sBAAsBC,aAAa;YAC7FC,cAAcvB,MAAM,CAACQ,0CAAiB,CAAC,CAACe,YAAY,IAAIF,sBAAsBE,YAAY;YAC1FC,2BACExB,MAAM,CAACQ,0CAAiB,CAAC,CAACgB,yBAAyB,IAAIH,sBAAsBG,yBAAyB;YACxGC,8BACEzB,MAAM,CAACQ,0CAAiB,CAAC,CAACiB,4BAA4B,IAAIJ,sBAAsBI,4BAA4B;YAC9GC,8BACE1B,MAAM,CAACQ,0CAAiB,CAAC,CAACkB,4BAA4B,IAAIL,sBAAsBK,4BAA4B;YAC9GC,0BACE3B,MAAM,CAACQ,0CAAiB,CAAC,CAACmB,wBAAwB,IAAIN,sBAAsBM,wBAAwB;YACtGC,0BACE5B,MAAM,CAACQ,0CAAiB,CAAC,CAACoB,wBAAwB,IAAIP,sBAAsBO,wBAAwB;YACtGC,8BACE7B,MAAM,CAACQ,0CAAiB,CAAC,CAACqB,4BAA4B,IAAIR,sBAAsBQ,4BAA4B;QAChH;IACF;IAEA,OAAO7B;AACT"}
1
+ {"version":3,"sources":["../../src/shared/runtime-settings.migration.ts"],"names":["migrateSettingsRuntime","knownSettings","entity","wizardSettingKey","getDefaultWizardSettings","timeoutSettingKey","getDefaultTimeout","defaultTimeoutSettings","apiTimeout","apiUploadTimeout","serverSettingsKey","getDefaultServerSettings","frontendSettingKey","getDefaultFrontendSettings","credentialSettingsKey","getDefaultCredentialSettings","jwtSecret","uuidv4","defaultFrontendSettings","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","gridNameSortDirection","defaultServerSettings","loginRequired","registration","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalBambuSupport","sentryDiagnosticsEnabled"],"mappings":";;;;+BAegBA;;;eAAAA;;;yCAJT;sBACsB;AAGtB,SAASA,uBAAuBC,aAAgC;IACrE,MAAMC,SAASD;IAEfC,MAAM,CAACC,yCAAgB,CAAC,KAAKC,IAAAA,iDAAwB;IACrDF,MAAM,CAACG,0CAAiB,CAAC,KAAKC,IAAAA,0CAAiB;IAE/C,IAAIJ,MAAM,CAACG,0CAAiB,CAAC,EAAE;QAC7B,MAAME,yBAAyBD,IAAAA,0CAAiB;QAChDJ,MAAM,CAACG,0CAAiB,CAAC,GAAG;YAC1BG,YAAYN,MAAM,CAACG,0CAAiB,CAAC,CAACG,UAAU,IAAID,uBAAuBC,UAAU;YACrFC,kBAAkBP,MAAM,CAACG,0CAAiB,CAAC,CAACI,gBAAgB,IAAIF,uBAAuBE,gBAAgB;QACzG;IACF;IAEAP,MAAM,CAACQ,0CAAiB,CAAC,KAAKC,IAAAA,iDAAwB;IACtDT,MAAM,CAACU,2CAAkB,CAAC,KAAKC,IAAAA,mDAA0B;IACzDX,MAAM,CAACY,8CAAqB,CAAC,KAAK;QAChC,GAAGC,IAAAA,qDAA4B,GAAE;QAEjCC,WAAWC,IAAAA,QAAM;IACnB;IAEA,IAAIf,MAAM,CAACU,2CAAkB,CAAC,EAAE;QAC9B,MAAMM,0BAA0BL,IAAAA,mDAA0B;QAG1DX,MAAM,CAACU,2CAAkB,CAAC,GAAG;YAC3BO,UAAUjB,MAAM,CAACU,2CAAkB,CAAC,CAACO,QAAQ,IAAID,wBAAwBC,QAAQ;YACjFC,UAAUlB,MAAM,CAACU,2CAAkB,CAAC,CAACQ,QAAQ,IAAIF,wBAAwBE,QAAQ;YACjFC,YAAYnB,MAAM,CAACU,2CAAkB,CAAC,CAACS,UAAU,IAAIH,wBAAwBG,UAAU;YACvFC,+BAA+BpB,MAAM,CAACU,2CAAkB,CAAC,CAACU,6BAA6B,IAAIJ,wBAAwBI,6BAA6B;YAChJC,uBAAuBrB,MAAM,CAACU,2CAAkB,CAAC,CAACW,qBAAqB,IAAIL,wBAAwBK,qBAAqB;QAC1H;IACF;IAEA,IAAIrB,MAAM,CAACQ,0CAAiB,CAAC,EAAE;QAC7B,MAAMc,wBAAwBb,IAAAA,iDAAwB;QAGtDT,MAAM,CAACQ,0CAAiB,CAAC,GAAG;YAC1Be,eAAevB,MAAM,CAACQ,0CAAiB,CAAC,CAACe,aAAa,IAAID,sBAAsBC,aAAa;YAC7FC,cAAcxB,MAAM,CAACQ,0CAAiB,CAAC,CAACgB,YAAY,IAAIF,sBAAsBE,YAAY;YAC1FC,8BACEzB,MAAM,CAACQ,0CAAiB,CAAC,CAACiB,4BAA4B,IAAIH,sBAAsBG,4BAA4B;YAC9GC,8BACE1B,MAAM,CAACQ,0CAAiB,CAAC,CAACkB,4BAA4B,IAAIJ,sBAAsBI,4BAA4B;YAC9GC,0BACE3B,MAAM,CAACQ,0CAAiB,CAAC,CAACmB,wBAAwB,IAAIL,sBAAsBK,wBAAwB;YACtGC,0BACE5B,MAAM,CAACQ,0CAAiB,CAAC,CAACoB,wBAAwB,IAAIN,sBAAsBM,wBAAwB;QACxG;IACF;IAEA,OAAO5B;AACT"}
@@ -18,13 +18,6 @@ class FloorStore extends _keydiffcache.KeyDiffCache {
18
18
  }
19
19
  async loadStore() {
20
20
  const floors = await this.floorService.list();
21
- if (!floors?.length) {
22
- this.logger.log("Creating default floor as non existed");
23
- const floor = await this.floorService.createDefaultFloor();
24
- const floorDto = this.floorService.toDto(floor);
25
- await this.setKeyValue(floor.id, floorDto, true);
26
- return;
27
- }
28
21
  const keyValues = floors.map((floor)=>({
29
22
  key: floor.id,
30
23
  value: this.floorService.toDto(floor)
@@ -71,8 +64,8 @@ class FloorStore extends _keydiffcache.KeyDiffCache {
71
64
  await this.setKeyValue(floorId, floorDto, true);
72
65
  return floorDto;
73
66
  }
74
- async updateFloorNumber(floorId, floorLevel) {
75
- const floor = await this.floorService.updateLevel(floorId, floorLevel);
67
+ async updateFloorOrder(floorId, order) {
68
+ const floor = await this.floorService.updateOrder(floorId, order);
76
69
  const floorDto = this.floorService.toDto(floor);
77
70
  await this.setKeyValue(floorId, floorDto, true);
78
71
  return floorDto;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/state/floor.store.ts"],"names":["FloorStore","KeyDiffCache","logger","floorService","loggerFactory","name","loadStore","floors","list","length","log","floor","createDefaultFloor","floorDto","toDto","setKeyValue","id","keyValues","map","key","value","setKeyValuesBatch","listCache","getAllValues","create","input","delete","floorId","deleteKeyValue","getFloor","getValue","dbFloor","get","update","updateName","updateFloorNumber","floorLevel","updateLevel","addOrUpdatePrinter","position","removePrinter","printerId","removePrinterFromAnyFloor","deletePrinterFromAnyFloor"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/state/floor.store.ts"],"names":["FloorStore","KeyDiffCache","logger","floorService","loggerFactory","name","loadStore","floors","list","keyValues","map","floor","key","id","value","toDto","setKeyValuesBatch","listCache","getAllValues","length","create","input","floorDto","setKeyValue","delete","floorId","deleteKeyValue","getFloor","getValue","dbFloor","get","update","updateName","updateFloorOrder","order","updateOrder","addOrUpdatePrinter","position","removePrinter","printerId","removePrinterFromAnyFloor","deletePrinterFromAnyFloor"],"mappings":"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"}
@@ -10,15 +10,19 @@ Object.defineProperty(exports, "PrinterEventsCache", {
10
10
  });
11
11
  const _keydiffcache = require("../utils/cache/key-diff.cache");
12
12
  const _eventconstants = require("../constants/event.constants");
13
+ const _octoprinteventdto = require("../services/octoprint/dto/octoprint-event.dto");
13
14
  const _octoprintwebsocketadapter = require("../services/octoprint/octoprint-websocket.adapter");
14
15
  const _moonrakerconstants = require("../services/moonraker/constants/moonraker.constants");
15
16
  const _prusalinkconstants = require("../services/prusa-link/constants/prusalink.constants");
16
17
  const _bambumqttadapter = require("../services/bambu/bambu-mqtt.adapter");
17
18
  class PrinterEventsCache extends _keydiffcache.KeyDiffCache {
18
19
  eventEmitter2;
20
+ printJobService;
21
+ printerCache;
22
+ printerThumbnailCache;
19
23
  logger;
20
- constructor(eventEmitter2, loggerFactory){
21
- super(), this.eventEmitter2 = eventEmitter2;
24
+ constructor(eventEmitter2, loggerFactory, printJobService, printerCache, printerThumbnailCache){
25
+ super(), this.eventEmitter2 = eventEmitter2, this.printJobService = printJobService, this.printerCache = printerCache, this.printerThumbnailCache = printerThumbnailCache;
22
26
  this.logger = loggerFactory(PrinterEventsCache.name);
23
27
  this.subscribeToEvents();
24
28
  }
@@ -76,30 +80,140 @@ class PrinterEventsCache extends _keydiffcache.KeyDiffCache {
76
80
  this.eventEmitter2.on((0, _bambumqttadapter.bambuEvent)("*"), (e)=>this.onBambuSocketMessage(e));
77
81
  this.eventEmitter2.on(_eventconstants.printerEvents.printersDeleted, this.handlePrintersDeleted.bind(this));
78
82
  }
83
+ async getPrinterName(printerId) {
84
+ try {
85
+ const printer = await this.printerCache.getValue(printerId);
86
+ return printer?.name;
87
+ } catch (error) {
88
+ this.logger.debug(`Could not get printer name for ${printerId}: ${error}`);
89
+ return undefined;
90
+ }
91
+ }
79
92
  async onOctoPrintSocketMessage(e) {
80
93
  const printerId = e.printerId;
81
- if (![
82
- "plugin",
83
- "event"
84
- ].includes(e.event)) {
85
- await this.setEvent(printerId, e.event, e.event === "history" ? this.pruneHistoryPayload(e.payload) : e.payload);
94
+ if (e.event === _octoprinteventdto.messages.current && e.payload) {
95
+ await this.setEvent(printerId, _octoprinteventdto.messages.current, e.payload);
96
+ const payload = e.payload;
97
+ const flags = payload?.state?.flags;
98
+ const filePath = payload?.job?.file?.path;
99
+ const completion = payload?.progress?.completion;
100
+ if (flags?.printing && filePath) {
101
+ const printerName = await this.getPrinterName(printerId);
102
+ const job = await this.printJobService.markStarted(printerId, filePath, printerName);
103
+ if (job) {
104
+ await this.printerThumbnailCache.handleJobStarted(printerId, job.id);
105
+ }
106
+ if (job && !job.fileStorageId && job.analysisState === "NOT_ANALYZED") {
107
+ this.logger.log(`Job ${job.id} has no local file - triggering download and analysis`);
108
+ await this.printJobService.triggerFileAnalysis(job.id);
109
+ }
110
+ if (job && !job.metadata?.gcodePrintTimeSeconds) {
111
+ const estimatedTime = payload?.job?.estimatedPrintTime;
112
+ const filament = payload?.job?.filament?.tool0;
113
+ await this.printJobService.updateJobMetadata(printerId, filePath, {
114
+ gcodePrintTimeSeconds: estimatedTime ? Math.round(estimatedTime) : null,
115
+ nozzleDiameterMm: null,
116
+ filamentDiameterMm: null,
117
+ filamentDensityGramsCm3: null,
118
+ filamentUsedMm: filament?.length ? Math.round(filament.length) : null,
119
+ filamentUsedCm3: filament?.volume ? Math.round(filament.volume * 100) / 100 : null,
120
+ filamentUsedGrams: null,
121
+ totalFilamentUsedGrams: null
122
+ });
123
+ }
124
+ }
125
+ if (typeof completion === "number" && filePath) {
126
+ await this.printJobService.markProgress(printerId, filePath, completion);
127
+ }
128
+ if ((flags?.finished || flags?.error) && filePath) {
129
+ const reason = flags?.error ? "Error" : "Finished";
130
+ if (flags?.finished) {
131
+ const job = await this.printJobService.markFinished(printerId, filePath);
132
+ if (job) {
133
+ await this.printerThumbnailCache.handleJobCompleted(printerId, job.id);
134
+ }
135
+ } else {
136
+ await this.printJobService.markFailed(printerId, filePath, reason);
137
+ }
138
+ }
86
139
  }
87
140
  }
88
141
  async onMoonrakerSocketMessage(e) {
89
142
  const printerId = e.printerId;
90
143
  const eventType = e.event;
91
144
  if ([
92
- "notify_status_update",
93
- "current"
145
+ _octoprinteventdto.messages.notify_status_update,
146
+ _octoprinteventdto.messages.current
94
147
  ].includes(eventType)) {
95
148
  await this.setEvent(printerId, eventType, e.payload);
149
+ const payload = e.payload;
150
+ const status = payload?.status ?? payload?.result ?? {};
151
+ const filename = status?.print_stats?.filename;
152
+ const progress = status?.display_status?.progress ?? status?.print_stats?.progress;
153
+ const state = status?.print_stats?.state;
154
+ if (state === "printing" && filename) {
155
+ const printerName = await this.getPrinterName(printerId);
156
+ const job = await this.printJobService.markStarted(printerId, filename, printerName);
157
+ if (job) {
158
+ await this.printerThumbnailCache.handleJobStarted(printerId, job.id);
159
+ }
160
+ if (job && !job.fileStorageId && job.analysisState === "NOT_ANALYZED") {
161
+ this.logger.log(`Job ${job.id} has no local file - triggering download and analysis`);
162
+ await this.printJobService.triggerFileAnalysis(job.id);
163
+ }
164
+ }
165
+ if (typeof progress === "number" && filename) {
166
+ await this.printJobService.markProgress(printerId, filename, Math.round(progress * 100));
167
+ }
168
+ if ([
169
+ "complete",
170
+ "cancelled",
171
+ "error"
172
+ ].includes(state) && filename) {
173
+ if (state === "complete") {
174
+ const job = await this.printJobService.markFinished(printerId, filename);
175
+ if (job) {
176
+ await this.printerThumbnailCache.handleJobCompleted(printerId, job.id);
177
+ }
178
+ } else {
179
+ await this.printJobService.markFailed(printerId, filename, state);
180
+ }
181
+ }
96
182
  }
97
183
  }
98
184
  async onPrusaLinkPollMessage(e) {
99
185
  const printerId = e.printerId;
100
- this.logger.debug(`Received prusaLink event ${e.event}, printerId ${e.printerId}`, e);
101
- if (e.event === "current") {
102
- await this.setEvent(printerId, e.event, e.payload);
186
+ if (e.event === _octoprinteventdto.messages.current) {
187
+ await this.setEvent(printerId, _octoprinteventdto.messages.current, e.payload);
188
+ const payload = e.payload;
189
+ const state = payload?.state;
190
+ const filename = payload?.job?.file?.path ?? payload?.job?.file?.display;
191
+ const completion = payload?.progress?.completion;
192
+ if (state === "Printing" && filename) {
193
+ const printerName = await this.getPrinterName(printerId);
194
+ const job = await this.printJobService.markStarted(printerId, filename, printerName);
195
+ if (job) {
196
+ await this.printerThumbnailCache.handleJobStarted(printerId, job.id);
197
+ }
198
+ if (job && !job.fileStorageId && job.analysisState === "NOT_ANALYZED") {
199
+ this.logger.log(`Job ${job.id} has no local file - triggering download and analysis`);
200
+ await this.printJobService.triggerFileAnalysis(job.id);
201
+ }
202
+ }
203
+ if (typeof completion === "number" && filename) {
204
+ await this.printJobService.markProgress(printerId, filename, completion);
205
+ }
206
+ if (state === "Finished" && filename) {
207
+ const job = await this.printJobService.markFinished(printerId, filename);
208
+ if (job) {
209
+ await this.printerThumbnailCache.handleJobCompleted(printerId, job.id);
210
+ }
211
+ } else if ([
212
+ "Stopped",
213
+ "Error"
214
+ ].includes(state) && filename) {
215
+ await this.printJobService.markFailed(printerId, filename, state);
216
+ }
103
217
  }
104
218
  }
105
219
  async onBambuSocketMessage(e) {
@@ -108,15 +222,61 @@ class PrinterEventsCache extends _keydiffcache.KeyDiffCache {
108
222
  this.logger.warn("Received Bambu event without printerId", e);
109
223
  return;
110
224
  }
111
- this.logger.debug(`Received Bambu event ${e.event}, printerId ${printerId}`);
112
- if (e.event === "current") {
113
- await this.setEvent(printerId, e.event, e.payload);
225
+ if (e.event === _octoprinteventdto.messages.current) {
226
+ await this.setEvent(printerId, _octoprinteventdto.messages.current, e.payload);
227
+ const payload = e.payload;
228
+ const print = payload?.print;
229
+ const percent = print?.mc_percent;
230
+ const filename = print?.gcode_file || print?.subtask_name;
231
+ const stage = print?.mc_print_stage;
232
+ const state = print?.gcode_state;
233
+ if (state === "PRINTING" && filename) {
234
+ const printerName = await this.getPrinterName(printerId);
235
+ const job = await this.printJobService.markStarted(printerId, filename, printerName);
236
+ if (job) {
237
+ await this.printerThumbnailCache.handleJobStarted(printerId, job.id);
238
+ }
239
+ if (job && !job.fileStorageId && job.analysisState === "NOT_ANALYZED") {
240
+ this.logger.log(`Job ${job.id} has no local file - triggering download and analysis`);
241
+ await this.printJobService.triggerFileAnalysis(job.id);
242
+ }
243
+ if (job && !job.metadata?.gcodePrintTimeSeconds) {
244
+ const remainingMinutes = print?.mc_remaining_time;
245
+ const totalLayers = print?.total_layer_num;
246
+ const estimatedSeconds = remainingMinutes ? remainingMinutes * 60 : null;
247
+ const tray = print?.ams?.tray_now ? print?.vt_tray : print?.ams?.ams?.[0]?.tray?.[0];
248
+ const filamentDiameter = tray?.tray_diameter ? parseFloat(tray.tray_diameter) : null;
249
+ await this.printJobService.updateJobMetadata(printerId, filename, {
250
+ gcodePrintTimeSeconds: estimatedSeconds,
251
+ nozzleDiameterMm: null,
252
+ filamentDiameterMm: filamentDiameter,
253
+ filamentDensityGramsCm3: null,
254
+ filamentUsedMm: null,
255
+ filamentUsedCm3: null,
256
+ filamentUsedGrams: null,
257
+ totalFilamentUsedGrams: null
258
+ });
259
+ }
260
+ }
261
+ if (typeof percent === "number" && filename) {
262
+ await this.printJobService.markProgress(printerId, filename, percent);
263
+ }
264
+ if (state === "FINISHED" && filename) {
265
+ const job = await this.printJobService.markFinished(printerId, filename);
266
+ if (job) {
267
+ await this.printerThumbnailCache.handleJobCompleted(printerId, job.id);
268
+ }
269
+ } else if (state === "IDLE") {
270
+ const activeJob = await this.printJobService.getActivePrintJob(printerId);
271
+ if (activeJob && activeJob.status === "PRINTING") {
272
+ this.logger.log(`Print job ${activeJob.id} transitioned to IDLE - marking as cancelled`);
273
+ await this.printJobService.handlePrintCancelled(printerId, "Print stopped");
274
+ }
275
+ } else if (state === "ERROR" && filename) {
276
+ await this.printJobService.markFailed(printerId, filename, "Error");
277
+ }
114
278
  }
115
279
  }
116
- pruneHistoryPayload(payload) {
117
- const { logs, temps, messages, plugins, ...prunedPayload } = payload;
118
- return prunedPayload;
119
- }
120
280
  }
121
281
 
122
282
  //# sourceMappingURL=printer-events.cache.js.map