@fdm-monster/server 2.1.0 → 2.1.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 (223) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarn/releases/{yarn-4.13.0.cjs → yarn-4.14.1.cjs} +288 -288
  3. package/.yarnrc.yml +5 -1
  4. package/RELEASE_NOTES.MD +14 -0
  5. package/dist/_virtual/{_@oxc-project_runtime@0.127.0 → _@oxc-project_runtime@0.129.0}/helpers/decorate.js +1 -1
  6. package/dist/_virtual/{_@oxc-project_runtime@0.127.0 → _@oxc-project_runtime@0.129.0}/helpers/decorateMetadata.js +1 -1
  7. package/dist/consoles/typeorm-create.js.map +1 -1
  8. package/dist/consoles/typeorm-generate.js.map +1 -1
  9. package/dist/consoles/typeorm-migrate.js.map +1 -1
  10. package/dist/constants/authorization.constants.js.map +1 -1
  11. package/dist/container.js.map +1 -1
  12. package/dist/controllers/api-key.controller.js +2 -2
  13. package/dist/controllers/api-key.controller.js.map +1 -1
  14. package/dist/controllers/auth.controller.js +5 -3
  15. package/dist/controllers/auth.controller.js.map +1 -1
  16. package/dist/controllers/batch-call.controller.js +2 -2
  17. package/dist/controllers/batch-call.controller.js.map +1 -1
  18. package/dist/controllers/camera-stream.controller.js +2 -2
  19. package/dist/controllers/camera-stream.controller.js.map +1 -1
  20. package/dist/controllers/file-storage.controller.js +2 -2
  21. package/dist/controllers/file-storage.controller.js.map +1 -1
  22. package/dist/controllers/first-time-setup.controller.js +2 -2
  23. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  24. package/dist/controllers/floor.controller.js +2 -2
  25. package/dist/controllers/floor.controller.js.map +1 -1
  26. package/dist/controllers/metrics.controller.js +2 -2
  27. package/dist/controllers/metrics.controller.js.map +1 -1
  28. package/dist/controllers/print-job.controller.js +2 -2
  29. package/dist/controllers/print-job.controller.js.map +1 -1
  30. package/dist/controllers/print-queue.controller.js +2 -2
  31. package/dist/controllers/print-queue.controller.js.map +1 -1
  32. package/dist/controllers/printer-files.controller.js +2 -2
  33. package/dist/controllers/printer-files.controller.js.map +1 -1
  34. package/dist/controllers/printer-maintenance-log.controller.js +2 -2
  35. package/dist/controllers/printer-maintenance-log.controller.js.map +1 -1
  36. package/dist/controllers/printer-settings.controller.js +2 -2
  37. package/dist/controllers/printer-settings.controller.js.map +1 -1
  38. package/dist/controllers/printer-tag.controller.js +2 -2
  39. package/dist/controllers/printer-tag.controller.js.map +1 -1
  40. package/dist/controllers/printer.controller.js +2 -2
  41. package/dist/controllers/printer.controller.js.map +1 -1
  42. package/dist/controllers/server-private.controller.js +2 -2
  43. package/dist/controllers/server-private.controller.js.map +1 -1
  44. package/dist/controllers/server-public.controller.js +2 -2
  45. package/dist/controllers/server-public.controller.js.map +1 -1
  46. package/dist/controllers/settings.controller.js +2 -2
  47. package/dist/controllers/settings.controller.js.map +1 -1
  48. package/dist/controllers/slicer-compat.controller.js +2 -2
  49. package/dist/controllers/slicer-compat.controller.js.map +1 -1
  50. package/dist/controllers/user.controller.js +2 -2
  51. package/dist/controllers/user.controller.js.map +1 -1
  52. package/dist/entities/api-key.entity.js +2 -2
  53. package/dist/entities/camera-stream.entity.js +2 -2
  54. package/dist/entities/floor-position.entity.js +2 -2
  55. package/dist/entities/floor.entity.js +2 -2
  56. package/dist/entities/print-job.entity.js +2 -2
  57. package/dist/entities/printer-maintenance-log.entity.js +2 -2
  58. package/dist/entities/printer-tag.entity.js +2 -2
  59. package/dist/entities/printer.entity.js +2 -2
  60. package/dist/entities/refresh-token.entity.js +2 -2
  61. package/dist/entities/role.entity.js +2 -2
  62. package/dist/entities/settings.entity.js +2 -2
  63. package/dist/entities/tag.entity.js +2 -2
  64. package/dist/entities/user-role.entity.js +2 -2
  65. package/dist/entities/user.entity.js +2 -2
  66. package/dist/exceptions/failed-dependency.exception.js.map +1 -1
  67. package/dist/exceptions/job.exceptions.js.map +1 -1
  68. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  69. package/dist/handlers/event-emitter.js.map +1 -1
  70. package/dist/handlers/logger-factory.js.map +1 -1
  71. package/dist/handlers/logger.js.map +1 -1
  72. package/dist/handlers/logging/file-logging.transport.js +1 -2
  73. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  74. package/dist/handlers/logging/loki-logging.transport.js.map +1 -1
  75. package/dist/handlers/logging/static.logger.js.map +1 -1
  76. package/dist/handlers/validators.js.map +1 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/middleware/api-key.strategy.js.map +1 -1
  79. package/dist/middleware/authenticate.js.map +1 -1
  80. package/dist/middleware/database.js.map +1 -1
  81. package/dist/middleware/demo.middleware.js.map +1 -1
  82. package/dist/middleware/exception.filter.js.map +1 -1
  83. package/dist/middleware/global.middleware.js.map +1 -1
  84. package/dist/middleware/param-converter.middleware.js.map +1 -1
  85. package/dist/middleware/passport.js.map +1 -1
  86. package/dist/middleware/printer-resolver.js.map +1 -1
  87. package/dist/middleware/printer.js.map +1 -1
  88. package/dist/middleware/slicer-api-key.middleware.js.map +1 -1
  89. package/dist/middleware/socketio.middleware.js.map +1 -1
  90. package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
  91. package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
  92. package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
  93. package/dist/migrations/1713300747465-ChangeRoleNameUnique.js.map +1 -1
  94. package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
  95. package/dist/migrations/1720338804844-RemovePrinterFile.js.map +1 -1
  96. package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
  97. package/dist/migrations/1766576698569-DropPermissions.js.map +1 -1
  98. package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -1
  99. package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -1
  100. package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -1
  101. package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -1
  102. package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -1
  103. package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -1
  104. package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -1
  105. package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -1
  106. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js.map +1 -1
  107. package/dist/migrations/1778446203015-AddApiKey.js.map +1 -1
  108. package/dist/plugins/controllers-plugin.js.map +1 -1
  109. package/dist/server.constants.js +2 -1
  110. package/dist/server.constants.js.map +1 -1
  111. package/dist/server.core.js.map +1 -1
  112. package/dist/server.env.js.map +1 -1
  113. package/dist/server.host.js.map +1 -1
  114. package/dist/services/authentication/auth.service.js.map +1 -1
  115. package/dist/services/authentication/jwt.service.js.map +1 -1
  116. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  117. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
  118. package/dist/services/bambu/bambu.client.js.map +1 -1
  119. package/dist/services/bambu.api.js.map +1 -1
  120. package/dist/services/core/batch-call.service.js.map +1 -1
  121. package/dist/services/core/client-bundle.service.js.map +1 -1
  122. package/dist/services/core/config.service.js +4 -0
  123. package/dist/services/core/config.service.js.map +1 -1
  124. package/dist/services/core/cradle.service.js.map +1 -1
  125. package/dist/services/core/github.service.js.map +1 -1
  126. package/dist/services/core/http-client.factory.js.map +1 -1
  127. package/dist/services/core/logs-manager.service.js.map +1 -1
  128. package/dist/services/core/monsterpi.service.js.map +1 -1
  129. package/dist/services/core/multer.service.js.map +1 -1
  130. package/dist/services/core/server-release.service.js.map +1 -1
  131. package/dist/services/core/yaml.service.js.map +1 -1
  132. package/dist/services/file-analysis.service.js.map +1 -1
  133. package/dist/services/file-storage.service.js.map +1 -1
  134. package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
  135. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  136. package/dist/services/moonraker.api.js.map +1 -1
  137. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  138. package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
  139. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  140. package/dist/services/octoprint/utils/api.utils.js.map +1 -1
  141. package/dist/services/octoprint/utils/file.utils.js.map +1 -1
  142. package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
  143. package/dist/services/octoprint.api.js.map +1 -1
  144. package/dist/services/orm/api-key.service.js.map +1 -1
  145. package/dist/services/orm/base.service.js.map +1 -1
  146. package/dist/services/orm/camera-stream.service.js.map +1 -1
  147. package/dist/services/orm/floor-position.service.js.map +1 -1
  148. package/dist/services/orm/floor.service.js.map +1 -1
  149. package/dist/services/orm/permission.service.js.map +1 -1
  150. package/dist/services/orm/print-job.service.js.map +1 -1
  151. package/dist/services/orm/printer-maintenance-log.service.js.map +1 -1
  152. package/dist/services/orm/printer-tag.service.js.map +1 -1
  153. package/dist/services/orm/printer.service.js.map +1 -1
  154. package/dist/services/orm/refresh-token.service.js.map +1 -1
  155. package/dist/services/orm/role.service.js.map +1 -1
  156. package/dist/services/orm/settings.service.js.map +1 -1
  157. package/dist/services/orm/user-role.service.js.map +1 -1
  158. package/dist/services/orm/user.service.js.map +1 -1
  159. package/dist/services/print-file-downloader.service.js.map +1 -1
  160. package/dist/services/print-queue.service.js.map +1 -1
  161. package/dist/services/printer-api.factory.js.map +1 -1
  162. package/dist/services/printer-api.interface.js.map +1 -1
  163. package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
  164. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  165. package/dist/services/prusa-link/utils/digest-auth.util.js +19 -12
  166. package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -1
  167. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +45 -11
  168. package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
  169. package/dist/services/socket.factory.js.map +1 -1
  170. package/dist/services/task-manager.service.js.map +1 -1
  171. package/dist/services/typeorm/typeorm.service.js.map +1 -1
  172. package/dist/services/validators/printer-service.validation.js.map +1 -1
  173. package/dist/shared/default-http-client.builder.js.map +1 -1
  174. package/dist/shared/load-controllers.js.map +1 -1
  175. package/dist/shared/runtime-settings.migration.js.map +1 -1
  176. package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
  177. package/dist/shared/websocket.adapter.js.map +1 -1
  178. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  179. package/dist/state/floor.store.js.map +1 -1
  180. package/dist/state/printer-events.cache.js.map +1 -1
  181. package/dist/state/printer-socket.store.js.map +1 -1
  182. package/dist/state/printer-thumbnail.cache.js.map +1 -1
  183. package/dist/state/printer.cache.js.map +1 -1
  184. package/dist/state/settings.store.js.map +1 -1
  185. package/dist/state/socket-io.gateway.js.map +1 -1
  186. package/dist/state/test-printer-socket.store.js.map +1 -1
  187. package/dist/tasks/boot.task.js.map +1 -1
  188. package/dist/tasks/client-bundle.task.js.map +1 -1
  189. package/dist/tasks/print-job-analysis.task.js.map +1 -1
  190. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  191. package/dist/tasks/printer-websocket.task.js.map +1 -1
  192. package/dist/tasks/socketio.task.js.map +1 -1
  193. package/dist/tasks/software-update.task.js.map +1 -1
  194. package/dist/tasks.js.map +1 -1
  195. package/dist/utils/array.util.js.map +1 -1
  196. package/dist/utils/bgcode/bgcode-thumbnail.parser.js.map +1 -1
  197. package/dist/utils/bgcode/bgcode.utils.js.map +1 -1
  198. package/dist/utils/bgcode/heatshrink-decoder.js.map +1 -1
  199. package/dist/utils/bgcode/png-encoder.js.map +1 -1
  200. package/dist/utils/bgcode/qoi-decoder.js.map +1 -1
  201. package/dist/utils/cache/key-diff.cache.js.map +1 -1
  202. package/dist/utils/correlation-token.util.js.map +1 -1
  203. package/dist/utils/crypto.utils.js.map +1 -1
  204. package/dist/utils/env.utils.js.map +1 -1
  205. package/dist/utils/error.utils.js.map +1 -1
  206. package/dist/utils/fs.utils.js.map +1 -1
  207. package/dist/utils/gcode.utils.js.map +1 -1
  208. package/dist/utils/image-dimensions.js.map +1 -1
  209. package/dist/utils/job-stats.util.js.map +1 -1
  210. package/dist/utils/normalize-url.js.map +1 -1
  211. package/dist/utils/parsers/3mf.parser.js.map +1 -1
  212. package/dist/utils/parsers/bgcode.parser.js.map +1 -1
  213. package/dist/utils/parsers/gcode.parser.js.map +1 -1
  214. package/dist/utils/pretty-print.utils.js.map +1 -1
  215. package/dist/utils/semver.utils.js.map +1 -1
  216. package/dist/utils/swagger/decorators.js.map +1 -1
  217. package/dist/utils/swagger/generator.js.map +1 -1
  218. package/dist/utils/swagger/swagger.js.map +1 -1
  219. package/dist/utils/thumbnail.util.js.map +1 -1
  220. package/dist/utils/time.utils.js.map +1 -1
  221. package/dist/utils/url.utils.js.map +1 -1
  222. package/package.json +10 -7
  223. package/packages/consoles/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.js","names":["expressStatic"],"sources":["../../../src/utils/swagger/swagger.ts"],"sourcesContent":["import { SwaggerGenerator } from \"./generator\";\nimport { Application, static as expressStatic } from \"express\";\nimport { join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { AppConstants } from \"@/server.constants\";\nimport { ensureDirExists, getMediaPath } from \"@/utils/fs.utils\";\nimport { LoggerService } from \"@/handlers/logger\";\nimport { writeFile } from \"node:fs/promises\";\n\nfunction getSwaggerUiDistPath(): string {\n try {\n const resolved = import.meta.resolve(\"swagger-ui-dist/package.json\");\n return dirname(fileURLToPath(resolved));\n } catch {\n return join(process.cwd(), \"node_modules\", \"swagger-ui-dist\");\n }\n}\n\nfunction generateSwaggerHTML(): string {\n return `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>FDM Monster API Documentation</title>\n <link rel=\"stylesheet\" href=\"/api-docs/static/swagger-ui.css\" />\n <style>\n html { box-sizing: border-box; overflow: -moz-scrollbars-vertical; overflow-y: scroll; }\n *, *:before, *:after { box-sizing: inherit; }\n body { margin: 0; padding: 0; }\n </style>\n</head>\n<body>\n <div id=\"swagger-ui\"></div>\n <script src=\"/api-docs/static/swagger-ui-bundle.js\"></script>\n <script src=\"/api-docs/static/swagger-ui-standalone-preset.js\"></script>\n <script>\n window.onload = function() {\n window.ui = SwaggerUIBundle({\n url: '/api-docs/swagger.json',\n dom_id: '#swagger-ui',\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\"\n });\n };\n </script>\n</body>\n</html>\n `.trim();\n}\n\nexport async function setupSwagger(app: Application, logger: LoggerService) {\n const generator = new SwaggerGenerator(logger);\n const specification = await generator.generate();\n\n const generateJsonFile = process.env[AppConstants.GENERATE_SWAGGER_JSON] === \"true\";\n if (generateJsonFile) {\n try {\n const mediaPath = getMediaPath();\n ensureDirExists(mediaPath);\n\n const swaggerJsonPath = join(mediaPath, \"swagger.json\");\n const jsonContent = JSON.stringify(specification, null, 2);\n\n await writeFile(swaggerJsonPath, jsonContent, \"utf-8\");\n logger.log(`Swagger JSON file generated at: ${swaggerJsonPath}`);\n } catch (error) {\n logger.error(\"Failed to generate swagger.json file\", error);\n }\n }\n\n const swaggerUiPath = getSwaggerUiDistPath();\n app.use(\"/api-docs/static\", expressStatic(swaggerUiPath));\n app.get(\"/api-docs/swagger.json\", (_req, res) => {\n res.setHeader(\"Content-Type\", \"application/json\");\n res.send(specification);\n });\n app.get(\"/api-docs\", (_req, res) => {\n res.setHeader(\"Content-Type\", \"text/html\");\n res.send(generateSwaggerHTML());\n });\n\n return specification;\n}\n"],"mappings":";;;;;;;;AASA,SAAS,uBAA+B;AACtC,KAAI;AAEF,SAAO,QAAQ,cADE,OAAO,KAAK,QAAQ,+BACA,CAAC,CAAC;SACjC;AACN,SAAO,KAAK,QAAQ,KAAK,EAAE,gBAAgB,kBAAkB;;;AAIjE,SAAS,sBAA8B;AACrC,QAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCL,MAAM;;AAGV,eAAsB,aAAa,KAAkB,QAAuB;CAE1E,MAAM,gBAAgB,MAAM,IADN,iBAAiB,OACF,CAAC,UAAU;AAGhD,KADyB,QAAQ,IAAI,aAAa,2BAA2B,OAE3E,KAAI;EACF,MAAM,YAAY,cAAc;AAChC,kBAAgB,UAAU;EAE1B,MAAM,kBAAkB,KAAK,WAAW,eAAe;AAGvD,QAAM,UAAU,iBAFI,KAAK,UAAU,eAAe,MAAM,EAEZ,EAAE,QAAQ;AACtD,SAAO,IAAI,mCAAmC,kBAAkB;UACzD,OAAO;AACd,SAAO,MAAM,wCAAwC,MAAM;;CAI/D,MAAM,gBAAgB,sBAAsB;AAC5C,KAAI,IAAI,oBAAoBA,SAAc,cAAc,CAAC;AACzD,KAAI,IAAI,2BAA2B,MAAM,QAAQ;AAC/C,MAAI,UAAU,gBAAgB,mBAAmB;AACjD,MAAI,KAAK,cAAc;GACvB;AACF,KAAI,IAAI,cAAc,MAAM,QAAQ;AAClC,MAAI,UAAU,gBAAgB,YAAY;AAC1C,MAAI,KAAK,qBAAqB,CAAC;GAC/B;AAEF,QAAO"}
1
+ {"version":3,"file":"swagger.js","names":["expressStatic"],"sources":["../../../src/utils/swagger/swagger.ts"],"sourcesContent":["import { SwaggerGenerator } from \"./generator\";\nimport { Application, static as expressStatic } from \"express\";\nimport { join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { AppConstants } from \"@/server.constants\";\nimport { ensureDirExists, getMediaPath } from \"@/utils/fs.utils\";\nimport { LoggerService } from \"@/handlers/logger\";\nimport { writeFile } from \"node:fs/promises\";\n\nfunction getSwaggerUiDistPath(): string {\n try {\n const resolved = import.meta.resolve(\"swagger-ui-dist/package.json\");\n return dirname(fileURLToPath(resolved));\n } catch {\n return join(process.cwd(), \"node_modules\", \"swagger-ui-dist\");\n }\n}\n\nfunction generateSwaggerHTML(): string {\n return `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>FDM Monster API Documentation</title>\n <link rel=\"stylesheet\" href=\"/api-docs/static/swagger-ui.css\" />\n <style>\n html { box-sizing: border-box; overflow: -moz-scrollbars-vertical; overflow-y: scroll; }\n *, *:before, *:after { box-sizing: inherit; }\n body { margin: 0; padding: 0; }\n </style>\n</head>\n<body>\n <div id=\"swagger-ui\"></div>\n <script src=\"/api-docs/static/swagger-ui-bundle.js\"></script>\n <script src=\"/api-docs/static/swagger-ui-standalone-preset.js\"></script>\n <script>\n window.onload = function() {\n window.ui = SwaggerUIBundle({\n url: '/api-docs/swagger.json',\n dom_id: '#swagger-ui',\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\"\n });\n };\n </script>\n</body>\n</html>\n `.trim();\n}\n\nexport async function setupSwagger(app: Application, logger: LoggerService) {\n const generator = new SwaggerGenerator(logger);\n const specification = await generator.generate();\n\n const generateJsonFile = process.env[AppConstants.GENERATE_SWAGGER_JSON] === \"true\";\n if (generateJsonFile) {\n try {\n const mediaPath = getMediaPath();\n ensureDirExists(mediaPath);\n\n const swaggerJsonPath = join(mediaPath, \"swagger.json\");\n const jsonContent = JSON.stringify(specification, null, 2);\n\n await writeFile(swaggerJsonPath, jsonContent, \"utf-8\");\n logger.log(`Swagger JSON file generated at: ${swaggerJsonPath}`);\n } catch (error) {\n logger.error(\"Failed to generate swagger.json file\", error);\n }\n }\n\n const swaggerUiPath = getSwaggerUiDistPath();\n app.use(\"/api-docs/static\", expressStatic(swaggerUiPath));\n app.get(\"/api-docs/swagger.json\", (_req, res) => {\n res.setHeader(\"Content-Type\", \"application/json\");\n res.send(specification);\n });\n app.get(\"/api-docs\", (_req, res) => {\n res.setHeader(\"Content-Type\", \"text/html\");\n res.send(generateSwaggerHTML());\n });\n\n return specification;\n}\n"],"mappings":";;;;;;;;AASA,SAAS,uBAA+B;CACtC,IAAI;EAEF,OAAO,QAAQ,cADE,OAAO,KAAK,QAAQ,+BACA,CAAC,CAAC;SACjC;EACN,OAAO,KAAK,QAAQ,KAAK,EAAE,gBAAgB,kBAAkB;;;AAIjE,SAAS,sBAA8B;CACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCL,MAAM;;AAGV,eAAsB,aAAa,KAAkB,QAAuB;CAE1E,MAAM,gBAAgB,MAAM,IADN,iBAAiB,OACF,CAAC,UAAU;CAGhD,IADyB,QAAQ,IAAI,aAAa,2BAA2B,QAE3E,IAAI;EACF,MAAM,YAAY,cAAc;EAChC,gBAAgB,UAAU;EAE1B,MAAM,kBAAkB,KAAK,WAAW,eAAe;EAGvD,MAAM,UAAU,iBAFI,KAAK,UAAU,eAAe,MAAM,EAEZ,EAAE,QAAQ;EACtD,OAAO,IAAI,mCAAmC,kBAAkB;UACzD,OAAO;EACd,OAAO,MAAM,wCAAwC,MAAM;;CAI/D,MAAM,gBAAgB,sBAAsB;CAC5C,IAAI,IAAI,oBAAoBA,SAAc,cAAc,CAAC;CACzD,IAAI,IAAI,2BAA2B,MAAM,QAAQ;EAC/C,IAAI,UAAU,gBAAgB,mBAAmB;EACjD,IAAI,KAAK,cAAc;GACvB;CACF,IAAI,IAAI,cAAc,MAAM,QAAQ;EAClC,IAAI,UAAU,gBAAgB,YAAY;EAC1C,IAAI,KAAK,qBAAqB,CAAC;GAC/B;CAEF,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.util.js","names":[],"sources":["../../src/utils/thumbnail.util.ts"],"sourcesContent":["export interface ThumbnailInfo {\n index: number;\n width: number;\n height: number;\n format: string;\n size: number;\n}\n\nexport function extractThumbnailsFromMetadata(metadata: any): ThumbnailInfo[] {\n if (!metadata?._thumbnails) {\n return [];\n }\n\n return (metadata._thumbnails || []).map((thumb: any) => ({\n index: thumb.index,\n width: thumb.width,\n height: thumb.height,\n format: thumb.format,\n size: thumb.size,\n }));\n}\n"],"mappings":";AAQA,SAAgB,8BAA8B,UAAgC;AAC5E,KAAI,CAAC,UAAU,YACb,QAAO,EAAE;AAGX,SAAQ,SAAS,eAAe,EAAE,EAAE,KAAK,WAAgB;EACvD,OAAO,MAAM;EACb,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,MAAM,MAAM;EACb,EAAE"}
1
+ {"version":3,"file":"thumbnail.util.js","names":[],"sources":["../../src/utils/thumbnail.util.ts"],"sourcesContent":["export interface ThumbnailInfo {\n index: number;\n width: number;\n height: number;\n format: string;\n size: number;\n}\n\nexport function extractThumbnailsFromMetadata(metadata: any): ThumbnailInfo[] {\n if (!metadata?._thumbnails) {\n return [];\n }\n\n return (metadata._thumbnails || []).map((thumb: any) => ({\n index: thumb.index,\n width: thumb.width,\n height: thumb.height,\n format: thumb.format,\n size: thumb.size,\n }));\n}\n"],"mappings":";AAQA,SAAgB,8BAA8B,UAAgC;CAC5E,IAAI,CAAC,UAAU,aACb,OAAO,EAAE;CAGX,QAAQ,SAAS,eAAe,EAAE,EAAE,KAAK,WAAgB;EACvD,OAAO,MAAM;EACb,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,MAAM,MAAM;EACb,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"time.utils.js","names":[],"sources":["../../src/utils/time.utils.ts"],"sourcesContent":["export function isParsableDate(value: string): boolean {\n const timestamp = Date.parse(value);\n return !isNaN(timestamp);\n}\n"],"mappings":";AAAA,SAAgB,eAAe,OAAwB;AAErD,QAAO,CAAC,MADU,KAAK,MAAM,MACN,CAAC"}
1
+ {"version":3,"file":"time.utils.js","names":[],"sources":["../../src/utils/time.utils.ts"],"sourcesContent":["export function isParsableDate(value: string): boolean {\n const timestamp = Date.parse(value);\n return !isNaN(timestamp);\n}\n"],"mappings":";AAAA,SAAgB,eAAe,OAAwB;CAErD,OAAO,CAAC,MADU,KAAK,MAAM,MACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"url.utils.js","names":[],"sources":["../../src/utils/url.utils.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { normalizeUrl } from \"./normalize-url\";\n\nexport const defaultHttpProtocol = \"https\";\n\nexport function httpToWsUrl(url?: string) {\n const validUrl = z.string().parse(url);\n\n const protocolNormalizedAddress = normalizeUrl(validUrl, { defaultProtocol: defaultHttpProtocol });\n\n const wsUrl = new URL(protocolNormalizedAddress);\n wsUrl.protocol = wsUrl.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n return wsUrl;\n}\n"],"mappings":";;;AAGA,MAAa,sBAAsB;AAEnC,SAAgB,YAAY,KAAc;CAGxC,MAAM,4BAA4B,aAFjB,EAAE,QAAQ,CAAC,MAAM,IAEqB,EAAE,EAAE,iBAAiB,qBAAqB,CAAC;CAElG,MAAM,QAAQ,IAAI,IAAI,0BAA0B;AAChD,OAAM,WAAW,MAAM,aAAa,WAAW,SAAS;AACxD,QAAO"}
1
+ {"version":3,"file":"url.utils.js","names":[],"sources":["../../src/utils/url.utils.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { normalizeUrl } from \"./normalize-url\";\n\nexport const defaultHttpProtocol = \"https\";\n\nexport function httpToWsUrl(url?: string) {\n const validUrl = z.string().parse(url);\n\n const protocolNormalizedAddress = normalizeUrl(validUrl, { defaultProtocol: defaultHttpProtocol });\n\n const wsUrl = new URL(protocolNormalizedAddress);\n wsUrl.protocol = wsUrl.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n return wsUrl;\n}\n"],"mappings":";;;AAGA,MAAa,sBAAsB;AAEnC,SAAgB,YAAY,KAAc;CAGxC,MAAM,4BAA4B,aAFjB,EAAE,QAAQ,CAAC,MAAM,IAEqB,EAAE,EAAE,iBAAiB,qBAAqB,CAAC;CAElG,MAAM,QAAQ,IAAI,IAAI,0BAA0B;CAChD,MAAM,WAAW,MAAM,aAAa,WAAW,SAAS;CACxD,OAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fdm-monster/server",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.",
5
5
  "keywords": [
6
6
  "3d printing",
@@ -53,8 +53,13 @@
53
53
  "console:generate": "tsx src/consoles/typeorm-generate.ts",
54
54
  "console:migrate": "tsx src/consoles/typeorm-migrate.ts"
55
55
  },
56
+ "dependenciesMeta": {
57
+ "better-sqlite3": {
58
+ "built": true
59
+ }
60
+ },
56
61
  "dependencies": {
57
- "@fdm-monster/client-next": "2.4.0",
62
+ "@fdm-monster/client-next": "2.4.2",
58
63
  "@octokit/plugin-throttling": "11.0.3",
59
64
  "@sentry/node": "10.53.1",
60
65
  "adm-zip": "0.5.17",
@@ -64,7 +69,6 @@
64
69
  "basic-ftp": "6.0.1",
65
70
  "bcryptjs": "3.0.3",
66
71
  "better-sqlite3": "12.10.0",
67
- "chalk": "5.6.2",
68
72
  "class-validator": "0.15.1",
69
73
  "connect-history-api-fallback": "2.0.0",
70
74
  "cookie-parser": "1.4.7",
@@ -77,7 +81,6 @@
77
81
  "helmet": "8.1.0",
78
82
  "js-yaml": "4.1.1",
79
83
  "jsonwebtoken": "9.0.3",
80
- "luxon": "3.7.2",
81
84
  "mqtt": "5.15.1",
82
85
  "multer": "2.1.1",
83
86
  "octokit": "5.0.5",
@@ -116,12 +119,12 @@
116
119
  "@types/ws": "8.18.1",
117
120
  "@vitest/coverage-v8": "4.1.6",
118
121
  "@vitest/ui": "4.1.6",
119
- "deprecation": "2.3.1",
122
+ "chalk": "5.6.2",
120
123
  "nock": "13.5.6",
121
124
  "openapi3-ts": "4.5.0",
122
125
  "supertest": "7.2.2",
123
126
  "swagger-ui-dist": "5.32.6",
124
- "tsx": "4.21.0",
127
+ "tsx": "4.22.0",
125
128
  "typescript": "6.0.3",
126
129
  "vite-plus": "latest",
127
130
  "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
@@ -135,7 +138,7 @@
135
138
  "npm": ">= 10.9.0",
136
139
  "yarn": ">= 4.12.0"
137
140
  },
138
- "packageManager": "yarn@4.13.0",
141
+ "packageManager": "yarn@4.14.1",
139
142
  "engine-strict": true,
140
143
  "ignore-engines": false
141
144
  }
@@ -37,7 +37,7 @@
37
37
  "@types/ws": "8.18.1",
38
38
  "ts-node": "10.9.2",
39
39
  "tsconfig-paths": "4.2.0",
40
- "tsx": "4.21.0",
40
+ "tsx": "4.22.0",
41
41
  "typescript": "6.0.3",
42
42
  "vite-plus": "latest"
43
43
  }