@fdm-monster/server 1.9.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/.env.template +8 -7
  2. package/.yarn/install-state.gz +0 -0
  3. package/CONTRIBUTING.md +5 -5
  4. package/README.md +9 -8
  5. package/RELEASE_NOTES.MD +52 -0
  6. package/SECURITY.md +1 -1
  7. package/biome.json +8 -5
  8. package/dist/consoles/download-github-releases.js +3 -3
  9. package/dist/consoles/launch-http-servers.js +4 -4
  10. package/dist/consoles/launch-http-servers.js.map +1 -1
  11. package/dist/consoles/mock-bambu.server.js +50 -30
  12. package/dist/consoles/mock-bambu.server.js.map +1 -1
  13. package/dist/consoles/mock-camera/default-image.js +13 -0
  14. package/dist/consoles/mock-camera/default-image.js.map +1 -0
  15. package/dist/consoles/mock-camera/mock-camera.server.js +160 -0
  16. package/dist/consoles/mock-camera/mock-camera.server.js.map +1 -0
  17. package/dist/consoles/mock-octoprint.server.js +281 -73
  18. package/dist/consoles/mock-octoprint.server.js.map +1 -1
  19. package/dist/consoles/mock-prusalink.server.js +17 -17
  20. package/dist/consoles/mock-prusalink.server.js.map +1 -1
  21. package/dist/consoles/typeorm-create.js +135 -0
  22. package/dist/consoles/typeorm-create.js.map +1 -0
  23. package/dist/consoles/typeorm-generate.js +8 -8
  24. package/dist/consoles/typeorm-generate.js.map +1 -1
  25. package/dist/consoles/utils/api-messages.js.map +1 -1
  26. package/dist/constants/authorization.constants.js +25 -31
  27. package/dist/constants/authorization.constants.js.map +1 -1
  28. package/dist/constants/event.constants.js.map +1 -1
  29. package/dist/constants/server-settings.constants.js +3 -19
  30. package/dist/constants/server-settings.constants.js.map +1 -1
  31. package/dist/container.js +43 -59
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.tokens.js +9 -6
  34. package/dist/container.tokens.js.map +1 -1
  35. package/dist/controllers/auth.controller.js +1 -1
  36. package/dist/controllers/auth.controller.js.map +1 -1
  37. package/dist/controllers/batch-call.controller.js +7 -25
  38. package/dist/controllers/batch-call.controller.js.map +1 -1
  39. package/dist/controllers/file-storage.controller.js +248 -0
  40. package/dist/controllers/file-storage.controller.js.map +1 -0
  41. package/dist/controllers/first-time-setup.controller.js +6 -5
  42. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  43. package/dist/controllers/floor.controller.js +12 -12
  44. package/dist/controllers/floor.controller.js.map +1 -1
  45. package/dist/controllers/metrics.controller.js.map +1 -1
  46. package/dist/controllers/print-job.controller.js +666 -0
  47. package/dist/controllers/print-job.controller.js.map +1 -0
  48. package/dist/controllers/print-queue.controller.js +375 -0
  49. package/dist/controllers/print-queue.controller.js.map +1 -0
  50. package/dist/controllers/printer-files.controller.js +88 -59
  51. package/dist/controllers/printer-files.controller.js.map +1 -1
  52. package/dist/controllers/printer-settings.controller.js +0 -21
  53. package/dist/controllers/printer-settings.controller.js.map +1 -1
  54. package/dist/controllers/{printer-group.controller.js → printer-tag.controller.js} +51 -34
  55. package/dist/controllers/printer-tag.controller.js.map +1 -0
  56. package/dist/controllers/printer.controller.js +21 -7
  57. package/dist/controllers/printer.controller.js.map +1 -1
  58. package/dist/controllers/server-private.controller.js +2 -1
  59. package/dist/controllers/server-private.controller.js.map +1 -1
  60. package/dist/controllers/server-public.controller.js +11 -15
  61. package/dist/controllers/server-public.controller.js.map +1 -1
  62. package/dist/controllers/settings.controller.js +0 -68
  63. package/dist/controllers/settings.controller.js.map +1 -1
  64. package/dist/controllers/slicer-compat.controller.js +216 -0
  65. package/dist/controllers/slicer-compat.controller.js.map +1 -0
  66. package/dist/controllers/user.controller.js +8 -12
  67. package/dist/controllers/user.controller.js.map +1 -1
  68. package/dist/controllers/validation/batch-controller.validation.js +13 -13
  69. package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
  70. package/dist/controllers/validation/generic.validation.js +4 -8
  71. package/dist/controllers/validation/generic.validation.js.map +1 -1
  72. package/dist/controllers/validation/printer-files-controller.validation.js +2 -2
  73. package/dist/controllers/validation/user-controller.validation.js +14 -9
  74. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  75. package/dist/data-source.js +25 -12
  76. package/dist/data-source.js.map +1 -1
  77. package/dist/entities/camera-stream.entity.js +2 -1
  78. package/dist/entities/camera-stream.entity.js.map +1 -1
  79. package/dist/entities/floor.entity.js +3 -5
  80. package/dist/entities/floor.entity.js.map +1 -1
  81. package/dist/entities/index.js +15 -11
  82. package/dist/entities/index.js.map +1 -1
  83. package/dist/entities/print-job.entity.js +195 -0
  84. package/dist/entities/print-job.entity.js.map +1 -0
  85. package/dist/entities/{printer-group.entity.js → printer-tag.entity.js} +17 -17
  86. package/dist/entities/printer-tag.entity.js.map +1 -0
  87. package/dist/entities/printer.entity.js +4 -10
  88. package/dist/entities/printer.entity.js.map +1 -1
  89. package/dist/entities/settings.entity.js +3 -12
  90. package/dist/entities/settings.entity.js.map +1 -1
  91. package/dist/entities/{group.entity.js → tag.entity.js} +15 -8
  92. package/dist/entities/tag.entity.js.map +1 -0
  93. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  94. package/dist/handlers/logging/static.logger.js.map +1 -1
  95. package/dist/index.js +8 -2
  96. package/dist/index.js.map +1 -1
  97. package/dist/middleware/authenticate.js +4 -4
  98. package/dist/middleware/authenticate.js.map +1 -1
  99. package/dist/middleware/database.js +1 -1
  100. package/dist/middleware/exception.filter.js +114 -90
  101. package/dist/middleware/exception.filter.js.map +1 -1
  102. package/dist/middleware/global.middleware.js +10 -18
  103. package/dist/middleware/global.middleware.js.map +1 -1
  104. package/dist/middleware/param-converter.middleware.js +5 -13
  105. package/dist/middleware/param-converter.middleware.js.map +1 -1
  106. package/dist/middleware/passport.js +2 -2
  107. package/dist/middleware/passport.js.map +1 -1
  108. package/dist/middleware/printer-resolver.js.map +1 -1
  109. package/dist/middleware/printer.js +3 -2
  110. package/dist/middleware/printer.js.map +1 -1
  111. package/dist/middleware/socketio.middleware.js.map +1 -1
  112. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +1 -1
  113. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
  114. package/dist/migrations/1766576698569-DropPermissions.js +28 -0
  115. package/dist/migrations/1766576698569-DropPermissions.js.map +1 -0
  116. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +186 -0
  117. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -0
  118. package/dist/migrations/1767279607392-DropCustomGcode.js +31 -0
  119. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -0
  120. package/dist/migrations/1767291804417-DropPrintCompletions.js +37 -0
  121. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -0
  122. package/dist/migrations/1767352862576-DropSettingsFileClean.js +88 -0
  123. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -0
  124. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +107 -0
  125. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -0
  126. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +62 -0
  127. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -0
  128. package/dist/migrations/1767432108916-RenameGroupToTag.js +86 -0
  129. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -0
  130. package/dist/migrations/1767451444137-AddPrintJob.js +207 -0
  131. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -0
  132. package/dist/server.constants.js +9 -17
  133. package/dist/server.constants.js.map +1 -1
  134. package/dist/server.core.js +3 -7
  135. package/dist/server.core.js.map +1 -1
  136. package/dist/server.env.js +4 -49
  137. package/dist/server.env.js.map +1 -1
  138. package/dist/server.host.js +26 -44
  139. package/dist/server.host.js.map +1 -1
  140. package/dist/services/authentication/auth.service.js.map +1 -1
  141. package/dist/services/authentication/jwt.service.js.map +1 -1
  142. package/dist/services/bambu/bambu-ftp.adapter.js +3 -3
  143. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  144. package/dist/services/bambu/bambu-mqtt.adapter.js +74 -77
  145. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  146. package/dist/services/bambu/bambu.client.js.map +1 -1
  147. package/dist/services/bambu.api.js +11 -0
  148. package/dist/services/bambu.api.js.map +1 -1
  149. package/dist/services/core/batch-call.service.js +0 -25
  150. package/dist/services/core/batch-call.service.js.map +1 -1
  151. package/dist/services/core/multer.service.js +5 -9
  152. package/dist/services/core/multer.service.js.map +1 -1
  153. package/dist/services/core/yaml.service.js +219 -187
  154. package/dist/services/core/yaml.service.js.map +1 -1
  155. package/dist/services/file-analysis.service.js +146 -0
  156. package/dist/services/file-analysis.service.js.map +1 -0
  157. package/dist/services/file-storage.service.js +386 -0
  158. package/dist/services/file-storage.service.js.map +1 -0
  159. package/dist/services/interfaces/camera-stream.dto.js +2 -2
  160. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  161. package/dist/services/interfaces/floor.dto.js +3 -3
  162. package/dist/services/interfaces/floor.dto.js.map +1 -1
  163. package/dist/services/interfaces/{printer-group.dto.js → printer-tag.dto.js} +9 -8
  164. package/dist/services/interfaces/printer-tag.dto.js.map +1 -0
  165. package/dist/services/interfaces/{print-completion.interface.js → printer-tag.service.interface.js} +1 -1
  166. package/dist/services/interfaces/{printer-group.service.interface.js.map → printer-tag.service.interface.js.map} +1 -1
  167. package/dist/services/interfaces/printer.dto.js +2 -2
  168. package/dist/services/interfaces/printer.dto.js.map +1 -1
  169. package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
  170. package/dist/services/interfaces/role.dto.js.map +1 -1
  171. package/dist/services/interfaces/settings.dto.js +0 -1
  172. package/dist/services/interfaces/settings.dto.js.map +1 -1
  173. package/dist/services/interfaces/{group.dto.js → tag.dto.js} +1 -1
  174. package/dist/services/interfaces/tag.dto.js.map +1 -0
  175. package/dist/services/interfaces/user.dto.js.map +1 -1
  176. package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
  177. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  178. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  179. package/dist/services/moonraker.api.js +3 -0
  180. package/dist/services/moonraker.api.js.map +1 -1
  181. package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +1 -0
  182. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
  183. package/dist/services/octoprint/octoprint-api.routes.js +0 -7
  184. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  185. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  186. package/dist/services/octoprint/octoprint.client.js +0 -4
  187. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  188. package/dist/services/octoprint.api.js +3 -0
  189. package/dist/services/octoprint.api.js.map +1 -1
  190. package/dist/services/orm/base.service.js.map +1 -1
  191. package/dist/services/orm/camera-stream.service.js.map +1 -1
  192. package/dist/services/orm/floor-position.service.js.map +1 -1
  193. package/dist/services/orm/floor.service.js +12 -19
  194. package/dist/services/orm/floor.service.js.map +1 -1
  195. package/dist/services/orm/permission.service.js +3 -54
  196. package/dist/services/orm/permission.service.js.map +1 -1
  197. package/dist/services/orm/print-job.service.js +539 -0
  198. package/dist/services/orm/print-job.service.js.map +1 -0
  199. package/dist/services/orm/printer-tag.service.js +120 -0
  200. package/dist/services/orm/printer-tag.service.js.map +1 -0
  201. package/dist/services/orm/printer.service.js.map +1 -1
  202. package/dist/services/orm/refresh-token.service.js.map +1 -1
  203. package/dist/services/orm/role.service.js +25 -39
  204. package/dist/services/orm/role.service.js.map +1 -1
  205. package/dist/services/orm/settings.service.js +4 -15
  206. package/dist/services/orm/settings.service.js.map +1 -1
  207. package/dist/services/orm/user.service.js +17 -13
  208. package/dist/services/orm/user.service.js.map +1 -1
  209. package/dist/services/print-file-downloader.service.js +169 -0
  210. package/dist/services/print-file-downloader.service.js.map +1 -0
  211. package/dist/services/print-queue.service.js +268 -0
  212. package/dist/services/print-queue.service.js.map +1 -0
  213. package/dist/services/printer-api.factory.js +1 -1
  214. package/dist/services/printer-api.factory.js.map +1 -1
  215. package/dist/services/printer-api.interface.js.map +1 -1
  216. package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
  217. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +1 -3
  218. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  219. package/dist/services/prusa-link/prusa-link.api.js +4 -1
  220. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  221. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
  222. package/dist/services/validators/floor-service.validation.js +25 -31
  223. package/dist/services/validators/floor-service.validation.js.map +1 -1
  224. package/dist/services/validators/print-job.validation.js +31 -0
  225. package/dist/services/validators/print-job.validation.js.map +1 -0
  226. package/dist/services/validators/settings-service.validation.js +0 -22
  227. package/dist/services/validators/settings-service.validation.js.map +1 -1
  228. package/dist/services/validators/user-service.validation.js +15 -10
  229. package/dist/services/validators/user-service.validation.js.map +1 -1
  230. package/dist/services/validators/yaml-service.validation.js +8 -14
  231. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  232. package/dist/shared/load-controllers.js +2 -1
  233. package/dist/shared/load-controllers.js.map +1 -1
  234. package/dist/shared/runtime-settings.migration.js +1 -11
  235. package/dist/shared/runtime-settings.migration.js.map +1 -1
  236. package/dist/shared/websocket-rpc-extended.adapter.js +13 -4
  237. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  238. package/dist/shared/websocket.adapter.js.map +1 -1
  239. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  240. package/dist/state/file.cache.js +6 -6
  241. package/dist/state/file.cache.js.map +1 -1
  242. package/dist/state/floor.store.js +3 -10
  243. package/dist/state/floor.store.js.map +1 -1
  244. package/dist/state/printer-events.cache.js +180 -20
  245. package/dist/state/printer-events.cache.js.map +1 -1
  246. package/dist/state/printer-files.store.js.map +1 -1
  247. package/dist/state/printer-socket.store.js +25 -20
  248. package/dist/state/printer-socket.store.js.map +1 -1
  249. package/dist/state/printer-thumbnail.cache.js +98 -188
  250. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  251. package/dist/state/printer.cache.js +3 -13
  252. package/dist/state/printer.cache.js.map +1 -1
  253. package/dist/state/settings.store.js +4 -42
  254. package/dist/state/settings.store.js.map +1 -1
  255. package/dist/state/socket-io.gateway.js +1 -1
  256. package/dist/state/socket-io.gateway.js.map +1 -1
  257. package/dist/state/test-printer-socket.store.js +6 -3
  258. package/dist/state/test-printer-socket.store.js.map +1 -1
  259. package/dist/tasks/boot.task.js +11 -91
  260. package/dist/tasks/boot.task.js.map +1 -1
  261. package/dist/tasks/print-job-analysis.task.js +116 -0
  262. package/dist/tasks/print-job-analysis.task.js.map +1 -0
  263. package/dist/tasks/printer-files-load.task.js +29 -0
  264. package/dist/tasks/printer-files-load.task.js.map +1 -0
  265. package/dist/tasks/socketio.task.js +1 -1
  266. package/dist/tasks/socketio.task.js.map +1 -1
  267. package/dist/tasks.js +3 -2
  268. package/dist/tasks.js.map +1 -1
  269. package/dist/utils/cache/key-diff.cache.js +20 -61
  270. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  271. package/dist/utils/parsers/3mf.parser.js +337 -0
  272. package/dist/utils/parsers/3mf.parser.js.map +1 -0
  273. package/dist/utils/parsers/bgcode.parser.js +223 -0
  274. package/dist/utils/parsers/bgcode.parser.js.map +1 -0
  275. package/dist/utils/parsers/gcode.parser.js +254 -0
  276. package/dist/utils/parsers/gcode.parser.js.map +1 -0
  277. package/dist/utils/swagger/decorators.js +39 -0
  278. package/dist/utils/swagger/decorators.js.map +1 -0
  279. package/dist/utils/swagger/generator.js +196 -0
  280. package/dist/utils/swagger/generator.js.map +1 -0
  281. package/dist/utils/swagger/swagger.js +93 -0
  282. package/dist/utils/swagger/swagger.js.map +1 -0
  283. package/package.json +24 -30
  284. package/dist/controllers/custom-gcode.controller.js +0 -150
  285. package/dist/controllers/custom-gcode.controller.js.map +0 -1
  286. package/dist/controllers/print-completion.controller.js +0 -118
  287. package/dist/controllers/print-completion.controller.js.map +0 -1
  288. package/dist/controllers/printer-group.controller.js.map +0 -1
  289. package/dist/entities/custom-gcode.entity.js +0 -49
  290. package/dist/entities/custom-gcode.entity.js.map +0 -1
  291. package/dist/entities/group.entity.js.map +0 -1
  292. package/dist/entities/permission.entity.js +0 -37
  293. package/dist/entities/permission.entity.js.map +0 -1
  294. package/dist/entities/print-completion.entity.js +0 -90
  295. package/dist/entities/print-completion.entity.js.map +0 -1
  296. package/dist/entities/printer-group.entity.js.map +0 -1
  297. package/dist/models/Auth/Permission.js +0 -20
  298. package/dist/models/Auth/Permission.js.map +0 -1
  299. package/dist/models/Auth/RefreshToken.js +0 -41
  300. package/dist/models/Auth/RefreshToken.js.map +0 -1
  301. package/dist/models/Auth/Role.js +0 -20
  302. package/dist/models/Auth/Role.js.map +0 -1
  303. package/dist/models/Auth/User.js +0 -49
  304. package/dist/models/Auth/User.js.map +0 -1
  305. package/dist/models/CameraStream.js +0 -49
  306. package/dist/models/CameraStream.js.map +0 -1
  307. package/dist/models/CustomGcode.js +0 -28
  308. package/dist/models/CustomGcode.js.map +0 -1
  309. package/dist/models/Floor.js +0 -33
  310. package/dist/models/Floor.js.map +0 -1
  311. package/dist/models/FloorPrinter.js +0 -38
  312. package/dist/models/FloorPrinter.js.map +0 -1
  313. package/dist/models/PrintCompletion.js +0 -40
  314. package/dist/models/PrintCompletion.js.map +0 -1
  315. package/dist/models/Printer.js +0 -78
  316. package/dist/models/Printer.js.map +0 -1
  317. package/dist/models/Settings.js +0 -150
  318. package/dist/models/Settings.js.map +0 -1
  319. package/dist/models/index.js +0 -54
  320. package/dist/models/index.js.map +0 -1
  321. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -45
  322. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +0 -1
  323. package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -35
  324. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +0 -1
  325. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -35
  326. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +0 -1
  327. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +0 -60
  328. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +0 -1
  329. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +0 -30
  330. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +0 -1
  331. package/dist/mongo-migrations/20230716065316-user-remove-name.js +0 -30
  332. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +0 -1
  333. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js +0 -35
  334. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +0 -1
  335. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js +0 -41
  336. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +0 -1
  337. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +0 -41
  338. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +0 -1
  339. package/dist/services/interfaces/custom-gcode.dto.js +0 -18
  340. package/dist/services/interfaces/custom-gcode.dto.js.map +0 -1
  341. package/dist/services/interfaces/custom-gcode.service.interface.js +0 -6
  342. package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -1
  343. package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -1
  344. package/dist/services/interfaces/group.dto.js.map +0 -1
  345. package/dist/services/interfaces/permission.dto.js +0 -16
  346. package/dist/services/interfaces/permission.dto.js.map +0 -1
  347. package/dist/services/interfaces/print-completion-context.dto.js +0 -6
  348. package/dist/services/interfaces/print-completion-context.dto.js.map +0 -1
  349. package/dist/services/interfaces/print-completion.dto.js +0 -38
  350. package/dist/services/interfaces/print-completion.dto.js.map +0 -1
  351. package/dist/services/interfaces/print-completion.interface.js.map +0 -1
  352. package/dist/services/interfaces/printer-group.dto.js.map +0 -1
  353. package/dist/services/interfaces/printer-group.service.interface.js +0 -6
  354. package/dist/services/mongoose/camera-stream.service.js +0 -67
  355. package/dist/services/mongoose/camera-stream.service.js.map +0 -1
  356. package/dist/services/mongoose/custom-gcode.service.js +0 -50
  357. package/dist/services/mongoose/custom-gcode.service.js.map +0 -1
  358. package/dist/services/mongoose/floor.service.js +0 -139
  359. package/dist/services/mongoose/floor.service.js.map +0 -1
  360. package/dist/services/mongoose/permission.service.js +0 -73
  361. package/dist/services/mongoose/permission.service.js.map +0 -1
  362. package/dist/services/mongoose/print-completion.service.js +0 -134
  363. package/dist/services/mongoose/print-completion.service.js.map +0 -1
  364. package/dist/services/mongoose/print-completion.shared.js +0 -59
  365. package/dist/services/mongoose/print-completion.shared.js.map +0 -1
  366. package/dist/services/mongoose/printer.service.js +0 -216
  367. package/dist/services/mongoose/printer.service.js.map +0 -1
  368. package/dist/services/mongoose/refresh-token.service.js +0 -104
  369. package/dist/services/mongoose/refresh-token.service.js.map +0 -1
  370. package/dist/services/mongoose/role.service.js +0 -132
  371. package/dist/services/mongoose/role.service.js.map +0 -1
  372. package/dist/services/mongoose/settings.service.js +0 -124
  373. package/dist/services/mongoose/settings.service.js.map +0 -1
  374. package/dist/services/mongoose/user.service.js +0 -180
  375. package/dist/services/mongoose/user.service.js.map +0 -1
  376. package/dist/services/orm/custom-gcode.service.js +0 -42
  377. package/dist/services/orm/custom-gcode.service.js.map +0 -1
  378. package/dist/services/orm/print-completion.service.js +0 -87
  379. package/dist/services/orm/print-completion.service.js.map +0 -1
  380. package/dist/services/orm/printer-group.service.js +0 -109
  381. package/dist/services/orm/printer-group.service.js.map +0 -1
  382. package/dist/services/validators/camera-service.validation.js +0 -19
  383. package/dist/services/validators/camera-service.validation.js.map +0 -1
  384. package/dist/services/validators/print-completion-service.validation.js +0 -33
  385. package/dist/services/validators/print-completion-service.validation.js.map +0 -1
  386. package/dist/shared.constants.js +0 -15
  387. package/dist/shared.constants.js.map +0 -1
  388. package/dist/tasks/print-completion.socketio.task.js +0 -91
  389. package/dist/tasks/print-completion.socketio.task.js.map +0 -1
  390. package/dist/tasks/printer-file-clean.task.js +0 -74
  391. package/dist/tasks/printer-file-clean.task.js.map +0 -1
  392. package/migrate-mongo-config.js +0 -45
  393. /package/dist/services/{interfaces → octoprint/dto/files}/gcode-analysis.dto.js +0 -0
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "AddPrintJob1767451444137", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return AddPrintJob1767451444137;
9
+ }
10
+ });
11
+ class AddPrintJob1767451444137 {
12
+ name = 'AddPrintJob1767451444137';
13
+ async up(queryRunner) {
14
+ await queryRunner.query(`
15
+ CREATE TABLE "print_job" (
16
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
17
+ "printerId" integer,
18
+ "printerName" varchar,
19
+ "fileName" varchar NOT NULL,
20
+ "fileStorageId" varchar,
21
+ "fileFormat" varchar,
22
+ "fileSize" integer,
23
+ "fileHash" varchar,
24
+ "createdAt" datetime NOT NULL DEFAULT (datetime('now')),
25
+ "updatedAt" datetime NOT NULL DEFAULT (datetime('now')),
26
+ "analyzedAt" datetime,
27
+ "startedAt" datetime,
28
+ "endedAt" datetime,
29
+ "status" varchar NOT NULL DEFAULT ('PENDING'),
30
+ "analysisState" varchar NOT NULL DEFAULT ('NOT_ANALYZED'),
31
+ "statusReason" varchar,
32
+ "progress" float,
33
+ "metadata" json,
34
+ "statistics" json,
35
+ "queuePosition" integer,
36
+ "queueGroup" varchar
37
+ )
38
+ `);
39
+ await queryRunner.query(`
40
+ CREATE TABLE "temporary_print_job" (
41
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
42
+ "printerId" integer,
43
+ "printerName" varchar,
44
+ "fileName" varchar NOT NULL,
45
+ "fileStorageId" varchar,
46
+ "fileFormat" varchar,
47
+ "fileSize" integer,
48
+ "fileHash" varchar,
49
+ "createdAt" datetime NOT NULL DEFAULT (datetime('now')),
50
+ "updatedAt" datetime NOT NULL DEFAULT (datetime('now')),
51
+ "analyzedAt" datetime,
52
+ "startedAt" datetime,
53
+ "endedAt" datetime,
54
+ "status" varchar NOT NULL DEFAULT ('PENDING'),
55
+ "analysisState" varchar NOT NULL DEFAULT ('NOT_ANALYZED'),
56
+ "statusReason" varchar,
57
+ "progress" float,
58
+ "metadata" json,
59
+ "statistics" json,
60
+ "queuePosition" integer,
61
+ "queueGroup" varchar,
62
+ CONSTRAINT "FK_12483257f75235517688864f2d0" FOREIGN KEY ("printerId") REFERENCES "printer" ("id") ON DELETE
63
+ SET NULL ON UPDATE NO ACTION
64
+ )
65
+ `);
66
+ await queryRunner.query(`
67
+ INSERT INTO "temporary_print_job"(
68
+ "id",
69
+ "printerId",
70
+ "printerName",
71
+ "fileName",
72
+ "fileStorageId",
73
+ "fileFormat",
74
+ "fileSize",
75
+ "fileHash",
76
+ "createdAt",
77
+ "updatedAt",
78
+ "analyzedAt",
79
+ "startedAt",
80
+ "endedAt",
81
+ "status",
82
+ "analysisState",
83
+ "statusReason",
84
+ "progress",
85
+ "metadata",
86
+ "statistics",
87
+ "queuePosition",
88
+ "queueGroup"
89
+ )
90
+ SELECT "id",
91
+ "printerId",
92
+ "printerName",
93
+ "fileName",
94
+ "fileStorageId",
95
+ "fileFormat",
96
+ "fileSize",
97
+ "fileHash",
98
+ "createdAt",
99
+ "updatedAt",
100
+ "analyzedAt",
101
+ "startedAt",
102
+ "endedAt",
103
+ "status",
104
+ "analysisState",
105
+ "statusReason",
106
+ "progress",
107
+ "metadata",
108
+ "statistics",
109
+ "queuePosition",
110
+ "queueGroup"
111
+ FROM "print_job"
112
+ `);
113
+ await queryRunner.query(`
114
+ DROP TABLE "print_job"
115
+ `);
116
+ await queryRunner.query(`
117
+ ALTER TABLE "temporary_print_job"
118
+ RENAME TO "print_job"
119
+ `);
120
+ }
121
+ async down(queryRunner) {
122
+ await queryRunner.query(`
123
+ ALTER TABLE "print_job"
124
+ RENAME TO "temporary_print_job"
125
+ `);
126
+ await queryRunner.query(`
127
+ CREATE TABLE "print_job" (
128
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
129
+ "printerId" integer,
130
+ "printerName" varchar,
131
+ "fileName" varchar NOT NULL,
132
+ "fileStorageId" varchar,
133
+ "fileFormat" varchar,
134
+ "fileSize" integer,
135
+ "fileHash" varchar,
136
+ "createdAt" datetime NOT NULL DEFAULT (datetime('now')),
137
+ "updatedAt" datetime NOT NULL DEFAULT (datetime('now')),
138
+ "analyzedAt" datetime,
139
+ "startedAt" datetime,
140
+ "endedAt" datetime,
141
+ "status" varchar NOT NULL DEFAULT ('PENDING'),
142
+ "analysisState" varchar NOT NULL DEFAULT ('NOT_ANALYZED'),
143
+ "statusReason" varchar,
144
+ "progress" float,
145
+ "metadata" json,
146
+ "statistics" json,
147
+ "queuePosition" integer,
148
+ "queueGroup" varchar
149
+ )
150
+ `);
151
+ await queryRunner.query(`
152
+ INSERT INTO "print_job"(
153
+ "id",
154
+ "printerId",
155
+ "printerName",
156
+ "fileName",
157
+ "fileStorageId",
158
+ "fileFormat",
159
+ "fileSize",
160
+ "fileHash",
161
+ "createdAt",
162
+ "updatedAt",
163
+ "analyzedAt",
164
+ "startedAt",
165
+ "endedAt",
166
+ "status",
167
+ "analysisState",
168
+ "statusReason",
169
+ "progress",
170
+ "metadata",
171
+ "statistics",
172
+ "queuePosition",
173
+ "queueGroup"
174
+ )
175
+ SELECT "id",
176
+ "printerId",
177
+ "printerName",
178
+ "fileName",
179
+ "fileStorageId",
180
+ "fileFormat",
181
+ "fileSize",
182
+ "fileHash",
183
+ "createdAt",
184
+ "updatedAt",
185
+ "analyzedAt",
186
+ "startedAt",
187
+ "endedAt",
188
+ "status",
189
+ "analysisState",
190
+ "statusReason",
191
+ "progress",
192
+ "metadata",
193
+ "statistics",
194
+ "queuePosition",
195
+ "queueGroup"
196
+ FROM "temporary_print_job"
197
+ `);
198
+ await queryRunner.query(`
199
+ DROP TABLE "temporary_print_job"
200
+ `);
201
+ await queryRunner.query(`
202
+ DROP TABLE "print_job"
203
+ `);
204
+ }
205
+ }
206
+
207
+ //# sourceMappingURL=1767451444137-AddPrintJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/migrations/1767451444137-AddPrintJob.ts"],"names":["AddPrintJob1767451444137","name","up","queryRunner","query","down"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACTC,OAAO,2BAA0B;IAEjC,MAAaC,GAAGC,WAAwB,EAAiB;QACrD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;QAwBzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;QA0BzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8CzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;QAEzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;QAGzB,CAAC;IACL;IAEA,MAAaC,KAAKF,WAAwB,EAAiB;QACvD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;;QAGzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;QAwBzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8CzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;QAEzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;QAEzB,CAAC;IACL;AAEJ"}
@@ -12,7 +12,6 @@ const AppConstants = {
12
12
  NODE_ENV_KEY: "NODE_ENV",
13
13
  VERSION_KEY: "npm_package_version",
14
14
  SERVER_PORT_KEY: "SERVER_PORT",
15
- MONGO_KEY: "MONGO",
16
15
  DATABASE_PATH: "DATABASE_PATH",
17
16
  DATABASE_FILE: "DATABASE_FILE",
18
17
  pm2ServiceName: "FDM",
@@ -24,6 +23,7 @@ const AppConstants = {
24
23
  defaultClientBundleZipsStorage: "./media/client-dist-zips",
25
24
  defaultPrinterThumbnailsStorage: "./media/printer-thumbnails",
26
25
  defaultFileUploadsStorage: "./media/file-uploads",
26
+ defaultPrintFilesStorage: "./media/files",
27
27
  defaultAcceptedGcodeExtensions: [
28
28
  ".gcode",
29
29
  ".bgcode"
@@ -33,8 +33,7 @@ const AppConstants = {
33
33
  ".3mf"
34
34
  ],
35
35
  defaultServerPort: 4000,
36
- defaultMongoStringUnauthenticated: "mongodb://127.0.0.1:27017/fdm-monster",
37
- apiRoute: "/api",
36
+ apiRoute: "/api/v2",
38
37
  enableClientDistAutoUpdateKey: "ENABLE_CLIENT_DIST_AUTO_UPDATE",
39
38
  OVERRIDE_LOGIN_REQUIRED: "OVERRIDE_LOGIN_REQUIRED",
40
39
  OVERRIDE_REGISTRATION_ENABLED: "OVERRIDE_REGISTRATION_ENABLED",
@@ -48,7 +47,7 @@ const AppConstants = {
48
47
  OVERRIDE_JWT_ISSUER: "OVERRIDE_JWT_ISSUER",
49
48
  DEFAULT_JWT_ISSUER: "fdm-monster-server",
50
49
  OVERRIDE_JWT_AUDIENCE: "OVERRIDE_JWT_AUDIENCE",
51
- DEFAULT_JWT_AUDIENCE: "fdm-monster-client",
50
+ DEFAULT_JWT_AUDIENCE: "fdm-monster-client-next",
52
51
  OVERRIDE_IS_DEMO_MODE: "OVERRIDE_IS_DEMO_MODE",
53
52
  OVERRIDE_DEMO_USERNAME: "OVERRIDE_DEMO_USERNAME",
54
53
  DEFAULT_DEMO_USERNAME: "demo",
@@ -68,18 +67,12 @@ const AppConstants = {
68
67
  GITHUB_PAT: "GITHUB_PAT",
69
68
  serverPackageName: "@fdm-monster/server",
70
69
  serverRepoName: "fdm-monster",
71
- clientPackageName: "@fdm-monster/client",
72
- clientRepoName: "fdm-monster-client",
73
- clientNextPackageName: "@fdm-monster/client-next",
74
- clientNextRepoName: "fdm-monster-client-next",
70
+ clientPackageName: "@fdm-monster/client-next",
71
+ clientRepoName: "fdm-monster-client-next",
75
72
  githubUrl: "https://github.com/fdm-monster/fdm-monster",
76
73
  orgName: "fdm-monster",
77
74
  currentWizardVersion: 1,
78
- defaultClientMinimum: "1.12.3",
79
- influxUrl: "INFLUX_URL",
80
- influxToken: "INFLUX_TOKEN",
81
- influxOrg: "INFLUX_ORG",
82
- influxBucket: "INFLUX_BUCKET",
75
+ defaultClientMinimum: "2.1.0",
83
76
  defaultWebsocketHandshakeTimeout: 3000,
84
77
  defaultSocketThrottleRate: 1,
85
78
  debugSocketStatesKey: "DEBUG_SOCKET_STATES",
@@ -87,14 +80,13 @@ const AppConstants = {
87
80
  monsterPiFilePath: "/etc/monsterpi_version",
88
81
  sentryCustomDsnToken: "SENTRY_CUSTOM_DSN",
89
82
  sentryCustomDsnDefault: "https://164b8028a8a745bba3dbcab991b84ae7@o4503975545733120.ingest.sentry.io/4505101598261248",
90
- debugRoutesKey: "DEBUG_ROUTES",
91
- ENABLE_EXPERIMENTAL_TYPEORM: "ENABLE_EXPERIMENTAL_TYPEORM",
92
- enableExperimentalTypeormDefault: "false",
93
83
  ENABLE_PROMETHEUS_METRICS: "ENABLE_PROMETHEUS_METRICS",
94
84
  ENABLE_LOKI_LOGGING: "ENABLE_LOKI_LOGGING",
95
85
  LOKI_ADDRESS: "LOKI_ADDRESS",
96
86
  LOKI_TIMEOUT_SECONDS: "LOKI_TIMEOUT_SECONDS",
97
- LOKI_INTERVAL: "LOKI_INTERVAL"
87
+ LOKI_INTERVAL: "LOKI_INTERVAL",
88
+ DISABLE_SWAGGER_OPENAPI: "DISABLE_SWAGGER_OPENAPI",
89
+ GENERATE_SWAGGER_JSON: "GENERATE_SWAGGER_JSON"
98
90
  };
99
91
 
100
92
  //# sourceMappingURL=server.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","ENABLE_COLORED_LOGS_KEY","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,gCAAgC;QAAC;QAAU;KAAO;IAClDC,mBAAmB;IACnBC,mCAAmC;IACnCC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,yBAAyB;IACzBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;IAClCC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
1
+ {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultPrintFilesStorage","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","defaultServerPort","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","ENABLE_COLORED_LOGS_KEY","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL","DISABLE_SWAGGER_OPENAPI","GENERATE_SWAGGER_JSON"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,0BAA0B;IAC1BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,gCAAgC;QAAC;QAAU;KAAO;IAClDC,mBAAmB;IACnBC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,yBAAyB;IACzBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAGtBC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;IAGfC,yBAAyB;IACzBC,uBAAuB;AACzB"}
@@ -21,7 +21,6 @@ const _passport1 = require("./middleware/passport");
21
21
  const _serverconstants = require("./server.constants");
22
22
  const _path = require("path");
23
23
  const _fsutils = require("./utils/fs.utils");
24
- const _envutils = require("./utils/env.utils");
25
24
  const _promclient = require("prom-client");
26
25
  const _logger = require("./handlers/logger");
27
26
  function _interop_require_default(obj) {
@@ -76,12 +75,9 @@ const httpRequestsTotal = new _promclient.Counter({
76
75
  });
77
76
  async function setupServer() {
78
77
  const httpServer = (0, _express.default)();
79
- const experimentalTypeormEnabled = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.ENABLE_EXPERIMENTAL_TYPEORM, _serverconstants.AppConstants.enableExperimentalTypeormDefault) === "true";
80
- if (experimentalTypeormEnabled) {
81
- const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] ?? "./database";
82
- (0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
83
- }
84
- const container = (0, _container.configureContainer)(experimentalTypeormEnabled);
78
+ const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] ?? "./database";
79
+ (0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
80
+ const container = (0, _container.configureContainer)();
85
81
  (0, _passport1.initializePassportStrategies)(_passport.default, container);
86
82
  httpServer.use((req, res, next)=>{
87
83
  const route = req.route?.path ?? req.path ?? "unknown";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","experimentalTypeormEnabled","getEnvOrDefault","AppConstants","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","dbFolder","process","env","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","req","res","next","route","path","includes","start","hrtime","on","inc","delta","duration","logger","LoggerService","newDebug","message","method","originalUrl","statusCode","responseTimeMs","toFixed","clientIp","ip","userAgent","get","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAsBsBA;;;eAAAA;;;iEAtBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;0BACf;4BACR;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,aAAaC,IAAAA,gBAAO;IAC1B,MAAMC,6BACJC,IAAAA,yBAAe,EAACC,6BAAY,CAACC,2BAA2B,EAAED,6BAAY,CAACE,gCAAgC,MAAM;IAC/G,IAAIJ,4BAA4B;QAC9B,MAAMK,WAAWC,QAAQC,GAAG,CAACL,6BAAY,CAACM,aAAa,CAAC,IAAI;QAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIN;IACxC;IAEA,MAAMO,YAAYC,IAAAA,6BAAkB,EAACb;IACrCc,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCd,WACGkB,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQ,AAACH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAK;QAE/C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQjB,QAAQkB,MAAM;YAE5BN,IAAIO,EAAE,CAAC,UAAU;gBACf/B,kBAAkBgC,GAAG;gBAErB,MAAMC,QAAQrB,QAAQkB,MAAM,CAACD;gBAC7B,MAAMK,WAAWD,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,GAAG;gBACvC,MAAME,SAAS,IAAIC,qBAAa,CAAC;gBACjCD,OAAOE,QAAQ,CAAC;oBACdC,SAAS,CAAC,aAAa,EAAEf,IAAIgB,MAAM,CAAC,CAAC,EAAEhB,IAAIiB,WAAW,CAAC,CAAC,EAAEhB,IAAIiB,UAAU,EAAE;oBAC1EF,QAAQhB,IAAIgB,MAAM;oBAClBZ,MAAMJ,IAAIiB,WAAW;oBACrBC,YAAYjB,IAAIiB,UAAU;oBAC1BC,gBAAgBR,SAASS,OAAO,CAAC;oBACjCC,UAAUrB,IAAIsB,EAAE;oBAChBC,WAAWvB,IAAIwB,GAAG,CAAC;gBACrB;YACF;QACF;QAEAtB;IACF,GACCH,GAAG,CACF0B,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAED5B,GAAG,CACF6B,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAED9B,GAAG,CAAC+B,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzBhC,GAAG,CAACiC,IAAAA,qBAAY,KAChBjC,GAAG,CAACkC,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjCnC,GAAG,CAACD,iBAAQ,CAACqC,UAAU,IACvBpC,GAAG,CAACD,iBAAQ,CAACsC,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjEtC,GAAG,CAACuC,IAAAA,8BAAe,EAAC3C,YACpBI,GAAG,CAACwC,gCAAsB,EAE1BxC,GAAG,CAACyC,yCAAuB,EAC3BzC,GAAG,CAAC0C,gCAAc;IAErB,OAAO;QACL5D;QACAc;IACF;AACF"}
1
+ {"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","dbFolder","process","env","AppConstants","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","req","res","next","route","path","includes","start","hrtime","on","inc","delta","duration","logger","LoggerService","newDebug","message","method","originalUrl","statusCode","responseTimeMs","toFixed","clientIp","ip","userAgent","get","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAqBsBA;;;eAAAA;;;iEArBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;4BACvB;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,aAAaC,IAAAA,gBAAO;IAE1B,MAAMC,WAAWC,QAAQC,GAAG,CAACC,6BAAY,CAACC,aAAa,CAAC,IAAI;IAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIP;IAEtC,MAAMQ,YAAYC,IAAAA,6BAAkB;IACpCC,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCV,WACGc,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAI;QAE7C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQlB,QAAQmB,MAAM;YAE5BN,IAAIO,EAAE,CAAC,UAAU;gBACf3B,kBAAkB4B,GAAG;gBAErB,MAAMC,QAAQtB,QAAQmB,MAAM,CAACD;gBAC7B,MAAMK,WAAWD,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,GAAG;gBACvC,MAAME,SAAS,IAAIC,qBAAa,CAAC;gBACjCD,OAAOE,QAAQ,CAAC;oBACdC,SAAS,CAAC,aAAa,EAAEf,IAAIgB,MAAM,CAAC,CAAC,EAAEhB,IAAIiB,WAAW,CAAC,CAAC,EAAEhB,IAAIiB,UAAU,EAAE;oBAC1EF,QAAQhB,IAAIgB,MAAM;oBAClBZ,MAAMJ,IAAIiB,WAAW;oBACrBC,YAAYjB,IAAIiB,UAAU;oBAC1BC,gBAAgBR,SAASS,OAAO,CAAC;oBACjCC,UAAUrB,IAAIsB,EAAE;oBAChBC,WAAWvB,IAAIwB,GAAG,CAAC;gBACrB;YACF;QACF;QAEAtB;IACF,GACCH,GAAG,CACF0B,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAED5B,GAAG,CACF6B,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAED9B,GAAG,CAAC+B,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzBhC,GAAG,CAACiC,IAAAA,qBAAY,KAChBjC,GAAG,CAACkC,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjCnC,GAAG,CAACD,iBAAQ,CAACqC,UAAU,IACvBpC,GAAG,CAACD,iBAAQ,CAACsC,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjEtC,GAAG,CAACuC,IAAAA,8BAAe,EAAC3C,YACpBI,GAAG,CAACwC,gCAAsB,EAE1BxC,GAAG,CAACyC,yCAAuB,EAC3BzC,GAAG,CAAC0C,gCAAc;IAErB,OAAO;QACLxD;QACAU;IACF;AACF"}
@@ -9,24 +9,15 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- get ensureMongoDbConnectionStringSet () {
13
- return ensureMongoDbConnectionStringSet;
14
- },
15
12
  get ensurePortSet () {
16
13
  return ensurePortSet;
17
14
  },
18
- get fetchMongoDBConnectionString () {
19
- return fetchMongoDBConnectionString;
20
- },
21
15
  get fetchServerPort () {
22
16
  return fetchServerPort;
23
17
  },
24
18
  get isEnvProd () {
25
19
  return isEnvProd;
26
20
  },
27
- get runMigrations () {
28
- return runMigrations;
29
- },
30
21
  get setupEnvConfig () {
31
22
  return setupEnvConfig;
32
23
  },
@@ -34,8 +25,7 @@ _export(exports, {
34
25
  return setupSentry;
35
26
  }
36
27
  });
37
- const _migratemongo = require("migrate-mongo");
38
- const _path = require("path");
28
+ const _nodepath = require("node:path");
39
29
  const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
40
30
  const _serverconstants = require("./server.constants");
41
31
  const _logger = require("./handlers/logger");
@@ -85,7 +75,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
85
75
  return newObj;
86
76
  }
87
77
  const instructionsReferralURL = "https://docs.fdm-monster.net";
88
- const packageJsonPath = (0, _path.join)((0, _fsutils.superRootPath)(), "./package.json");
78
+ const packageJsonPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), "./package.json");
89
79
  function isEnvTest() {
90
80
  return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultTestEnv;
91
81
  }
@@ -113,32 +103,14 @@ function printInstructionsURL() {
113
103
  const logger = new _logger.LoggerService("FDM-Environment");
114
104
  logger.log(`Please make sure to read ${instructionsReferralURL} for more information.`);
115
105
  }
116
- function fetchMongoDBConnectionString() {
117
- const logger = new _logger.LoggerService("FDM-Environment");
118
- if (!process.env[_serverconstants.AppConstants.MONGO_KEY]) {
119
- logger.debug(`~ ${_serverconstants.AppConstants.MONGO_KEY} environment variable is not set. Assuming default`);
120
- printInstructionsURL();
121
- process.env[_serverconstants.AppConstants.MONGO_KEY] = _serverconstants.AppConstants.defaultMongoStringUnauthenticated;
122
- }
123
- return process.env[_serverconstants.AppConstants.MONGO_KEY];
124
- }
125
106
  function fetchServerPort() {
126
107
  let port = process.env[_serverconstants.AppConstants.SERVER_PORT_KEY];
127
- if (Number.isNaN(parseInt(port))) {
108
+ if (Number.isNaN(Number.parseInt(port))) {
128
109
  process.env[_serverconstants.AppConstants.SERVER_PORT_KEY] = _serverconstants.AppConstants.defaultServerPort.toString();
129
110
  port = process.env[_serverconstants.AppConstants.SERVER_PORT_KEY];
130
111
  }
131
112
  return port;
132
113
  }
133
- function ensureMongoDbConnectionStringSet() {
134
- const logger = new _logger.LoggerService("FDM-Environment");
135
- const dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
136
- if (!dbConnectionString) {
137
- fetchMongoDBConnectionString();
138
- } else {
139
- logger.log(`✓ ${_serverconstants.AppConstants.MONGO_KEY} environment variable set!`);
140
- }
141
- }
142
114
  function setupSentry() {
143
115
  const logger = new _logger.LoggerService("FDM-Environment");
144
116
  const sentryDsnToken = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.sentryCustomDsnToken, _serverconstants.AppConstants.sentryCustomDsnDefault);
@@ -147,7 +119,7 @@ function setupSentry() {
147
119
  environment: process.env.NODE_ENV,
148
120
  release: process.env.npm_package_version,
149
121
  enabled: !isEnvTest(),
150
- tracesSampleRate: (0, _envutils.isProductionEnvironment)() ? 0.25 : 1.0
122
+ tracesSampleRate: (0, _envutils.isProductionEnvironment)() ? 0.25 : 1
151
123
  });
152
124
  process.on("unhandledRejection", (e)=>{
153
125
  const message = `Unhandled rejection error - ${(0, _errorutils.errorSummary)(e)}`;
@@ -168,7 +140,6 @@ function setupEnvConfig() {
168
140
  ensureNodeEnvSet();
169
141
  ensurePackageVersionSet();
170
142
  setupSentry();
171
- ensureMongoDbConnectionStringSet();
172
143
  ensurePortSet();
173
144
  if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
174
145
  (0, _promclient.collectDefaultMetrics)({
@@ -177,21 +148,5 @@ function setupEnvConfig() {
177
148
  _promclient.register.removeSingleMetric("nodejs_version_info");
178
149
  }
179
150
  }
180
- async function runMigrations(db, client) {
181
- const logger = new _logger.LoggerService("FDM-Environment");
182
- const migrationsStatus = await (0, _migratemongo.status)(db);
183
- const pendingMigrations = migrationsStatus.filter((m)=>m.appliedAt === "PENDING");
184
- if (pendingMigrations.length) {
185
- logger.log(`! MongoDB has ${pendingMigrations.length} migrations left to run (${migrationsStatus.length} migrations in total)`);
186
- } else {
187
- logger.log(`✓ Mongo Database is up to date [${migrationsStatus.length} migration applied]`);
188
- }
189
- const migrationResult = await (0, _migratemongo.up)(db, client);
190
- if (migrationResult?.length > 0) {
191
- logger.log(`Applied ${migrationResult.length} migrations successfully`, migrationResult);
192
- } else {
193
- logger.log("No migrations were run");
194
- }
195
- }
196
151
 
197
152
  //# sourceMappingURL=server.env.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.env.ts"],"names":["ensureMongoDbConnectionStringSet","ensurePortSet","fetchMongoDBConnectionString","fetchServerPort","isEnvProd","runMigrations","setupEnvConfig","setupSentry","instructionsReferralURL","packageJsonPath","join","superRootPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","logger","Logger","environment","knownEnvNames","includes","newEnvName","warn","log","ensurePackageVersionSet","packageJsonVersion","require","version","VERSION_KEY","printInstructionsURL","MONGO_KEY","debug","defaultMongoStringUnauthenticated","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","dbConnectionString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","ENABLE_PROMETHEUS_METRICS","collectDefaultMetrics","register","removeSingleMetric","db","client","migrationsStatus","status","pendingMigrations","filter","m","appliedAt","length","migrationResult","up"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/server.env.ts"],"names":["ensurePortSet","fetchServerPort","isEnvProd","setupEnvConfig","setupSentry","instructionsReferralURL","packageJsonPath","join","superRootPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","logger","Logger","environment","knownEnvNames","includes","newEnvName","warn","log","ensurePackageVersionSet","packageJsonVersion","require","version","VERSION_KEY","printInstructionsURL","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","ENABLE_PROMETHEUS_METRICS","collectDefaultMetrics","register","removeSingleMetric"],"mappings":"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"}
@@ -9,16 +9,14 @@ Object.defineProperty(exports, "ServerHost", {
9
9
  }
10
10
  });
11
11
  const _express = /*#__PURE__*/ _interop_require_default(require("express"));
12
- const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
13
12
  const _connecthistoryapifallback = /*#__PURE__*/ _interop_require_default(require("connect-history-api-fallback"));
14
- const _path = require("path");
15
- const _exceptionfilter = require("./middleware/exception.filter");
13
+ const _nodepath = require("node:path");
16
14
  const _serverenv = require("./server.env");
17
15
  const _runtimeexceptions = require("./exceptions/runtime.exceptions");
18
16
  const _serverconstants = require("./server.constants");
19
17
  const _fsutils = require("./utils/fs.utils");
20
- const _envutils = require("./utils/env.utils");
21
18
  const _loadcontrollers = require("./shared/load-controllers");
19
+ const _swagger = require("./utils/swagger/swagger");
22
20
  function _interop_require_default(obj) {
23
21
  return obj && obj.__esModule ? obj : {
24
22
  default: obj
@@ -26,62 +24,52 @@ function _interop_require_default(obj) {
26
24
  }
27
25
  class ServerHost {
28
26
  configService;
29
- isTypeormMode;
30
- settingsStore;
31
27
  bootTask;
32
28
  socketIoGateway;
33
29
  typeormService;
30
+ exceptionFilter;
34
31
  logger;
35
- constructor(loggerFactory, configService, isTypeormMode, settingsStore, bootTask, socketIoGateway, typeormService){
32
+ constructor(loggerFactory, configService, bootTask, socketIoGateway, typeormService, exceptionFilter){
36
33
  this.configService = configService;
37
- this.isTypeormMode = isTypeormMode;
38
- this.settingsStore = settingsStore;
39
34
  this.bootTask = bootTask;
40
35
  this.socketIoGateway = socketIoGateway;
41
36
  this.typeormService = typeormService;
37
+ this.exceptionFilter = exceptionFilter;
42
38
  this.logger = loggerFactory(ServerHost.name);
43
39
  }
44
40
  async boot(app, quick_boot = false, listenRequests = true) {
45
- if (!this.isTypeormMode) {
46
- _mongoose.default.set("strictQuery", true);
47
- }
48
- this.serveControllerRoutes(app);
41
+ await this.serveControllerRoutes(app);
49
42
  if (!quick_boot) {
50
43
  await this.bootTask.runOnce();
51
44
  }
52
45
  if (listenRequests) return this.httpListen(app);
53
46
  }
54
47
  hasConnected() {
55
- if (this.isTypeormMode) {
56
- return this.typeormService.hasConnected();
57
- } else {
58
- return _mongoose.default.connections[0].readyState;
59
- }
48
+ return this.typeormService.hasConnected();
60
49
  }
61
- serveControllerRoutes(app) {
50
+ async serveControllerRoutes(app) {
51
+ const swaggerDisabled = process.env[_serverconstants.AppConstants.DISABLE_SWAGGER_OPENAPI] === "true";
62
52
  app.use((req, res, next)=>{
63
- if (!req.originalUrl.startsWith("/metrics") && !req.originalUrl.startsWith("/api") && !req.originalUrl.startsWith("/socket.io")) {
53
+ if (!req.originalUrl.startsWith("/metrics") && !req.originalUrl.startsWith("/api") && !req.originalUrl.startsWith("/api-docs") && !req.originalUrl.startsWith("/socket.io")) {
64
54
  (0, _connecthistoryapifallback.default)()(req, res, next);
65
55
  } else {
66
56
  next();
67
57
  }
68
58
  }).use((0, _loadcontrollers.loadControllersFunc)());
69
- const nextClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientNextPackageName, "dist");
70
- const bundleDistPath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
71
- const backupClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
72
- app.use((req, res, next)=>{
73
- if (this.isClientNextEnabled()) {
74
- _express.default.static(nextClientPath)(req, res, next);
75
- } else {
76
- next();
77
- }
78
- });
59
+ if (swaggerDisabled) {
60
+ this.logger.log("Swagger/OpenAPI documentation disabled");
61
+ } else {
62
+ await (0, _swagger.setupSwagger)(app, this.logger);
63
+ this.logger.log("Swagger/OpenAPI documentation enabled");
64
+ }
65
+ const bundleDistPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
66
+ const backupClientPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
79
67
  app.use(_express.default.static(bundleDistPath));
80
68
  app.use(_express.default.static(backupClientPath));
81
69
  app.get("*", (req, _)=>{
82
70
  const path = req.originalUrl;
83
71
  let resource = "MVC";
84
- if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/metrics")) {
72
+ if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/metrics") || path.startsWith("/api-docs")) {
85
73
  resource = "API";
86
74
  } else if (path.endsWith(".min.js")) {
87
75
  resource = "client-bundle";
@@ -91,29 +79,23 @@ class ServerHost {
91
79
  throw new _runtimeexceptions.NotFoundException(`${resource} resource was not found`, path);
92
80
  }
93
81
  });
94
- app.use(_exceptionfilter.exceptionFilter);
82
+ app.use(this.exceptionFilter.handle.bind(this.exceptionFilter));
95
83
  }
96
84
  async httpListen(app) {
97
85
  const port = (0, _serverenv.fetchServerPort)();
98
- if (!(0, _envutils.isProductionEnvironment)() && this.configService.get(_serverconstants.AppConstants.debugRoutesKey, "false") === "true") {
99
- const expressListRoutes = require("express-list-routes");
100
- expressListRoutes(app, {
101
- prefix: "/"
102
- });
103
- }
104
- if (!port || Number.isNaN(parseInt(port))) {
86
+ if (!port || Number.isNaN(Number.parseInt(port))) {
105
87
  throw new Error("The FDM Server requires a numeric port input argument to run");
106
88
  }
89
+ const swaggerDisabled = process.env[_serverconstants.AppConstants.DISABLE_SWAGGER_OPENAPI] === "true";
107
90
  const hostOrFqdn = "0.0.0.0";
108
- const server = app.listen(parseInt(port), hostOrFqdn, ()=>{
91
+ const server = app.listen(Number.parseInt(port), hostOrFqdn, ()=>{
109
92
  this.logger.log(`Server started... open it at http://127.0.0.1:${port}`);
93
+ if (!swaggerDisabled) {
94
+ this.logger.log(`API Documentation available at http://127.0.0.1:${port}/api-docs`);
95
+ }
110
96
  });
111
97
  this.socketIoGateway.attachServer(server);
112
98
  }
113
- isClientNextEnabled() {
114
- const settings = this.settingsStore.getServerSettings();
115
- return settings.experimentalClientSupport;
116
- }
117
99
  }
118
100
 
119
101
  //# sourceMappingURL=server.host.js.map