@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.
- package/.env.template +8 -7
- package/.yarn/install-state.gz +0 -0
- package/CONTRIBUTING.md +5 -5
- package/README.md +9 -8
- package/RELEASE_NOTES.MD +52 -0
- package/SECURITY.md +1 -1
- package/biome.json +8 -5
- package/dist/consoles/download-github-releases.js +3 -3
- package/dist/consoles/launch-http-servers.js +4 -4
- package/dist/consoles/launch-http-servers.js.map +1 -1
- package/dist/consoles/mock-bambu.server.js +50 -30
- package/dist/consoles/mock-bambu.server.js.map +1 -1
- package/dist/consoles/mock-camera/default-image.js +13 -0
- package/dist/consoles/mock-camera/default-image.js.map +1 -0
- package/dist/consoles/mock-camera/mock-camera.server.js +160 -0
- package/dist/consoles/mock-camera/mock-camera.server.js.map +1 -0
- package/dist/consoles/mock-octoprint.server.js +281 -73
- package/dist/consoles/mock-octoprint.server.js.map +1 -1
- package/dist/consoles/mock-prusalink.server.js +17 -17
- package/dist/consoles/mock-prusalink.server.js.map +1 -1
- package/dist/consoles/typeorm-create.js +135 -0
- package/dist/consoles/typeorm-create.js.map +1 -0
- package/dist/consoles/typeorm-generate.js +8 -8
- package/dist/consoles/typeorm-generate.js.map +1 -1
- package/dist/consoles/utils/api-messages.js.map +1 -1
- package/dist/constants/authorization.constants.js +25 -31
- package/dist/constants/authorization.constants.js.map +1 -1
- package/dist/constants/event.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +3 -19
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/container.js +43 -59
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +9 -6
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/auth.controller.js +1 -1
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +7 -25
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/file-storage.controller.js +248 -0
- package/dist/controllers/file-storage.controller.js.map +1 -0
- package/dist/controllers/first-time-setup.controller.js +6 -5
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/floor.controller.js +12 -12
- package/dist/controllers/floor.controller.js.map +1 -1
- package/dist/controllers/metrics.controller.js.map +1 -1
- package/dist/controllers/print-job.controller.js +666 -0
- package/dist/controllers/print-job.controller.js.map +1 -0
- package/dist/controllers/print-queue.controller.js +375 -0
- package/dist/controllers/print-queue.controller.js.map +1 -0
- package/dist/controllers/printer-files.controller.js +88 -59
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer-settings.controller.js +0 -21
- package/dist/controllers/printer-settings.controller.js.map +1 -1
- package/dist/controllers/{printer-group.controller.js → printer-tag.controller.js} +51 -34
- package/dist/controllers/printer-tag.controller.js.map +1 -0
- package/dist/controllers/printer.controller.js +21 -7
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-private.controller.js +2 -1
- package/dist/controllers/server-private.controller.js.map +1 -1
- package/dist/controllers/server-public.controller.js +11 -15
- package/dist/controllers/server-public.controller.js.map +1 -1
- package/dist/controllers/settings.controller.js +0 -68
- package/dist/controllers/settings.controller.js.map +1 -1
- package/dist/controllers/slicer-compat.controller.js +216 -0
- package/dist/controllers/slicer-compat.controller.js.map +1 -0
- package/dist/controllers/user.controller.js +8 -12
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +13 -13
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/controllers/validation/generic.validation.js +4 -8
- package/dist/controllers/validation/generic.validation.js.map +1 -1
- package/dist/controllers/validation/printer-files-controller.validation.js +2 -2
- package/dist/controllers/validation/user-controller.validation.js +14 -9
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/data-source.js +25 -12
- package/dist/data-source.js.map +1 -1
- package/dist/entities/camera-stream.entity.js +2 -1
- package/dist/entities/camera-stream.entity.js.map +1 -1
- package/dist/entities/floor.entity.js +3 -5
- package/dist/entities/floor.entity.js.map +1 -1
- package/dist/entities/index.js +15 -11
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/print-job.entity.js +195 -0
- package/dist/entities/print-job.entity.js.map +1 -0
- package/dist/entities/{printer-group.entity.js → printer-tag.entity.js} +17 -17
- package/dist/entities/printer-tag.entity.js.map +1 -0
- package/dist/entities/printer.entity.js +4 -10
- package/dist/entities/printer.entity.js.map +1 -1
- package/dist/entities/settings.entity.js +3 -12
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/entities/{group.entity.js → tag.entity.js} +15 -8
- package/dist/entities/tag.entity.js.map +1 -0
- package/dist/handlers/logging/file-logging.transport.js.map +1 -1
- package/dist/handlers/logging/static.logger.js.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/authenticate.js +4 -4
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/database.js +1 -1
- package/dist/middleware/exception.filter.js +114 -90
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/middleware/global.middleware.js +10 -18
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/param-converter.middleware.js +5 -13
- package/dist/middleware/param-converter.middleware.js.map +1 -1
- package/dist/middleware/passport.js +2 -2
- package/dist/middleware/passport.js.map +1 -1
- package/dist/middleware/printer-resolver.js.map +1 -1
- package/dist/middleware/printer.js +3 -2
- package/dist/middleware/printer.js.map +1 -1
- package/dist/middleware/socketio.middleware.js.map +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
- package/dist/migrations/1766576698569-DropPermissions.js +28 -0
- package/dist/migrations/1766576698569-DropPermissions.js.map +1 -0
- package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +186 -0
- package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -0
- package/dist/migrations/1767279607392-DropCustomGcode.js +31 -0
- package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -0
- package/dist/migrations/1767291804417-DropPrintCompletions.js +37 -0
- package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -0
- package/dist/migrations/1767352862576-DropSettingsFileClean.js +88 -0
- package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -0
- package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +107 -0
- package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -0
- package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +62 -0
- package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -0
- package/dist/migrations/1767432108916-RenameGroupToTag.js +86 -0
- package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -0
- package/dist/migrations/1767451444137-AddPrintJob.js +207 -0
- package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -0
- package/dist/server.constants.js +9 -17
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +3 -7
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +4 -49
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +26 -44
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/jwt.service.js.map +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js +3 -3
- package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
- package/dist/services/bambu/bambu-mqtt.adapter.js +74 -77
- package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
- package/dist/services/bambu/bambu.client.js.map +1 -1
- package/dist/services/bambu.api.js +11 -0
- package/dist/services/bambu.api.js.map +1 -1
- package/dist/services/core/batch-call.service.js +0 -25
- package/dist/services/core/batch-call.service.js.map +1 -1
- package/dist/services/core/multer.service.js +5 -9
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +219 -187
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/file-analysis.service.js +146 -0
- package/dist/services/file-analysis.service.js.map +1 -0
- package/dist/services/file-storage.service.js +386 -0
- package/dist/services/file-storage.service.js.map +1 -0
- package/dist/services/interfaces/camera-stream.dto.js +2 -2
- package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
- package/dist/services/interfaces/floor.dto.js +3 -3
- package/dist/services/interfaces/floor.dto.js.map +1 -1
- package/dist/services/interfaces/{printer-group.dto.js → printer-tag.dto.js} +9 -8
- package/dist/services/interfaces/printer-tag.dto.js.map +1 -0
- package/dist/services/interfaces/{print-completion.interface.js → printer-tag.service.interface.js} +1 -1
- package/dist/services/interfaces/{printer-group.service.interface.js.map → printer-tag.service.interface.js.map} +1 -1
- package/dist/services/interfaces/printer.dto.js +2 -2
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
- package/dist/services/interfaces/role.dto.js.map +1 -1
- package/dist/services/interfaces/settings.dto.js +0 -1
- package/dist/services/interfaces/settings.dto.js.map +1 -1
- package/dist/services/interfaces/{group.dto.js → tag.dto.js} +1 -1
- package/dist/services/interfaces/tag.dto.js.map +1 -0
- package/dist/services/interfaces/user.dto.js.map +1 -1
- package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +3 -0
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +1 -0
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/octoprint-api.routes.js +0 -7
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +0 -4
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint.api.js +3 -0
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js.map +1 -1
- package/dist/services/orm/floor-position.service.js.map +1 -1
- package/dist/services/orm/floor.service.js +12 -19
- package/dist/services/orm/floor.service.js.map +1 -1
- package/dist/services/orm/permission.service.js +3 -54
- package/dist/services/orm/permission.service.js.map +1 -1
- package/dist/services/orm/print-job.service.js +539 -0
- package/dist/services/orm/print-job.service.js.map +1 -0
- package/dist/services/orm/printer-tag.service.js +120 -0
- package/dist/services/orm/printer-tag.service.js.map +1 -0
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/refresh-token.service.js.map +1 -1
- package/dist/services/orm/role.service.js +25 -39
- package/dist/services/orm/role.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +4 -15
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/orm/user.service.js +17 -13
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/print-file-downloader.service.js +169 -0
- package/dist/services/print-file-downloader.service.js.map +1 -0
- package/dist/services/print-queue.service.js +268 -0
- package/dist/services/print-queue.service.js.map +1 -0
- package/dist/services/printer-api.factory.js +1 -1
- package/dist/services/printer-api.factory.js.map +1 -1
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +1 -3
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
- package/dist/services/prusa-link/prusa-link.api.js +4 -1
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
- package/dist/services/validators/floor-service.validation.js +25 -31
- package/dist/services/validators/floor-service.validation.js.map +1 -1
- package/dist/services/validators/print-job.validation.js +31 -0
- package/dist/services/validators/print-job.validation.js.map +1 -0
- package/dist/services/validators/settings-service.validation.js +0 -22
- package/dist/services/validators/settings-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +15 -10
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +8 -14
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/dist/shared/load-controllers.js +2 -1
- package/dist/shared/load-controllers.js.map +1 -1
- package/dist/shared/runtime-settings.migration.js +1 -11
- package/dist/shared/runtime-settings.migration.js.map +1 -1
- package/dist/shared/websocket-rpc-extended.adapter.js +13 -4
- package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
- package/dist/shared/websocket.adapter.js.map +1 -1
- package/dist/state/file-upload-tracker.cache.js.map +1 -1
- package/dist/state/file.cache.js +6 -6
- package/dist/state/file.cache.js.map +1 -1
- package/dist/state/floor.store.js +3 -10
- package/dist/state/floor.store.js.map +1 -1
- package/dist/state/printer-events.cache.js +180 -20
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-files.store.js.map +1 -1
- package/dist/state/printer-socket.store.js +25 -20
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer-thumbnail.cache.js +98 -188
- package/dist/state/printer-thumbnail.cache.js.map +1 -1
- package/dist/state/printer.cache.js +3 -13
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +4 -42
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/socket-io.gateway.js +1 -1
- package/dist/state/socket-io.gateway.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +6 -3
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/dist/tasks/boot.task.js +11 -91
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/print-job-analysis.task.js +116 -0
- package/dist/tasks/print-job-analysis.task.js.map +1 -0
- package/dist/tasks/printer-files-load.task.js +29 -0
- package/dist/tasks/printer-files-load.task.js.map +1 -0
- package/dist/tasks/socketio.task.js +1 -1
- package/dist/tasks/socketio.task.js.map +1 -1
- package/dist/tasks.js +3 -2
- package/dist/tasks.js.map +1 -1
- package/dist/utils/cache/key-diff.cache.js +20 -61
- package/dist/utils/cache/key-diff.cache.js.map +1 -1
- package/dist/utils/parsers/3mf.parser.js +337 -0
- package/dist/utils/parsers/3mf.parser.js.map +1 -0
- package/dist/utils/parsers/bgcode.parser.js +223 -0
- package/dist/utils/parsers/bgcode.parser.js.map +1 -0
- package/dist/utils/parsers/gcode.parser.js +254 -0
- package/dist/utils/parsers/gcode.parser.js.map +1 -0
- package/dist/utils/swagger/decorators.js +39 -0
- package/dist/utils/swagger/decorators.js.map +1 -0
- package/dist/utils/swagger/generator.js +196 -0
- package/dist/utils/swagger/generator.js.map +1 -0
- package/dist/utils/swagger/swagger.js +93 -0
- package/dist/utils/swagger/swagger.js.map +1 -0
- package/package.json +24 -30
- package/dist/controllers/custom-gcode.controller.js +0 -150
- package/dist/controllers/custom-gcode.controller.js.map +0 -1
- package/dist/controllers/print-completion.controller.js +0 -118
- package/dist/controllers/print-completion.controller.js.map +0 -1
- package/dist/controllers/printer-group.controller.js.map +0 -1
- package/dist/entities/custom-gcode.entity.js +0 -49
- package/dist/entities/custom-gcode.entity.js.map +0 -1
- package/dist/entities/group.entity.js.map +0 -1
- package/dist/entities/permission.entity.js +0 -37
- package/dist/entities/permission.entity.js.map +0 -1
- package/dist/entities/print-completion.entity.js +0 -90
- package/dist/entities/print-completion.entity.js.map +0 -1
- package/dist/entities/printer-group.entity.js.map +0 -1
- package/dist/models/Auth/Permission.js +0 -20
- package/dist/models/Auth/Permission.js.map +0 -1
- package/dist/models/Auth/RefreshToken.js +0 -41
- package/dist/models/Auth/RefreshToken.js.map +0 -1
- package/dist/models/Auth/Role.js +0 -20
- package/dist/models/Auth/Role.js.map +0 -1
- package/dist/models/Auth/User.js +0 -49
- package/dist/models/Auth/User.js.map +0 -1
- package/dist/models/CameraStream.js +0 -49
- package/dist/models/CameraStream.js.map +0 -1
- package/dist/models/CustomGcode.js +0 -28
- package/dist/models/CustomGcode.js.map +0 -1
- package/dist/models/Floor.js +0 -33
- package/dist/models/Floor.js.map +0 -1
- package/dist/models/FloorPrinter.js +0 -38
- package/dist/models/FloorPrinter.js.map +0 -1
- package/dist/models/PrintCompletion.js +0 -40
- package/dist/models/PrintCompletion.js.map +0 -1
- package/dist/models/Printer.js +0 -78
- package/dist/models/Printer.js.map +0 -1
- package/dist/models/Settings.js +0 -150
- package/dist/models/Settings.js.map +0 -1
- package/dist/models/index.js +0 -54
- package/dist/models/index.js.map +0 -1
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -45
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +0 -1
- package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -35
- package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +0 -1
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -35
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +0 -1
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +0 -60
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +0 -1
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +0 -30
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +0 -1
- package/dist/mongo-migrations/20230716065316-user-remove-name.js +0 -30
- package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +0 -1
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js +0 -35
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +0 -1
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js +0 -41
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +0 -1
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +0 -41
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +0 -1
- package/dist/services/interfaces/custom-gcode.dto.js +0 -18
- package/dist/services/interfaces/custom-gcode.dto.js.map +0 -1
- package/dist/services/interfaces/custom-gcode.service.interface.js +0 -6
- package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -1
- package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -1
- package/dist/services/interfaces/group.dto.js.map +0 -1
- package/dist/services/interfaces/permission.dto.js +0 -16
- package/dist/services/interfaces/permission.dto.js.map +0 -1
- package/dist/services/interfaces/print-completion-context.dto.js +0 -6
- package/dist/services/interfaces/print-completion-context.dto.js.map +0 -1
- package/dist/services/interfaces/print-completion.dto.js +0 -38
- package/dist/services/interfaces/print-completion.dto.js.map +0 -1
- package/dist/services/interfaces/print-completion.interface.js.map +0 -1
- package/dist/services/interfaces/printer-group.dto.js.map +0 -1
- package/dist/services/interfaces/printer-group.service.interface.js +0 -6
- package/dist/services/mongoose/camera-stream.service.js +0 -67
- package/dist/services/mongoose/camera-stream.service.js.map +0 -1
- package/dist/services/mongoose/custom-gcode.service.js +0 -50
- package/dist/services/mongoose/custom-gcode.service.js.map +0 -1
- package/dist/services/mongoose/floor.service.js +0 -139
- package/dist/services/mongoose/floor.service.js.map +0 -1
- package/dist/services/mongoose/permission.service.js +0 -73
- package/dist/services/mongoose/permission.service.js.map +0 -1
- package/dist/services/mongoose/print-completion.service.js +0 -134
- package/dist/services/mongoose/print-completion.service.js.map +0 -1
- package/dist/services/mongoose/print-completion.shared.js +0 -59
- package/dist/services/mongoose/print-completion.shared.js.map +0 -1
- package/dist/services/mongoose/printer.service.js +0 -216
- package/dist/services/mongoose/printer.service.js.map +0 -1
- package/dist/services/mongoose/refresh-token.service.js +0 -104
- package/dist/services/mongoose/refresh-token.service.js.map +0 -1
- package/dist/services/mongoose/role.service.js +0 -132
- package/dist/services/mongoose/role.service.js.map +0 -1
- package/dist/services/mongoose/settings.service.js +0 -124
- package/dist/services/mongoose/settings.service.js.map +0 -1
- package/dist/services/mongoose/user.service.js +0 -180
- package/dist/services/mongoose/user.service.js.map +0 -1
- package/dist/services/orm/custom-gcode.service.js +0 -42
- package/dist/services/orm/custom-gcode.service.js.map +0 -1
- package/dist/services/orm/print-completion.service.js +0 -87
- package/dist/services/orm/print-completion.service.js.map +0 -1
- package/dist/services/orm/printer-group.service.js +0 -109
- package/dist/services/orm/printer-group.service.js.map +0 -1
- package/dist/services/validators/camera-service.validation.js +0 -19
- package/dist/services/validators/camera-service.validation.js.map +0 -1
- package/dist/services/validators/print-completion-service.validation.js +0 -33
- package/dist/services/validators/print-completion-service.validation.js.map +0 -1
- package/dist/shared.constants.js +0 -15
- package/dist/shared.constants.js.map +0 -1
- package/dist/tasks/print-completion.socketio.task.js +0 -91
- package/dist/tasks/print-completion.socketio.task.js.map +0 -1
- package/dist/tasks/printer-file-clean.task.js +0 -74
- package/dist/tasks/printer-file-clean.task.js.map +0 -1
- package/migrate-mongo-config.js +0 -45
- /package/dist/services/{interfaces → octoprint/dto/files}/gcode-analysis.dto.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/core/yaml.service.ts"],"names":["YamlService","logger","loggerFactory","printerGroupService","printerService","printerCache","floorStore","floorService","userService","roleService","settingsStore","isTypeormMode","name","importYaml","yamlBuffer","importSpec","load","databaseTypeSqlite","databaseType","exportPrinters","exportFloorGrid","exportSettings","exportUsers","config","wizardCompleted","getWizardSettings","hasSystemData","validateSystemTablesEmpty","printer","printers","printerName","settingsAppearance","id","Number","parseInt","OctoprintType","MoonrakerType","includes","printerType","floor","floors","printerId","importData","validateInput","importPrintersFloorsYamlSchema","length","importPrinterPositionsSchema","log","updateByPropertyPrinters","insertPrinters","analysePrintersUpsert","printerComparisonStrategiesByPriority","updateByPropertyFloors","insertFloors","analyseFloorsUpsert","floorComparisonStrategiesByPriority","updateByNameGroups","insertGroups","analyseUpsertGroups","groups","printerIdMap","newPrinter","state","create","Error","JSON","stringify","updatePrinterSpec","updateId","updatedPrinter","value","originalPrinterId","update","floorIdMap","newFloor","originalFloorId","knownPrinterPositions","floorPosition","knownPrinterId","floorId","push","createdFloor","updateFloorSpec","updatedFloor","knownPrinters","loadStore","group","createdGroup","createGroup","addPrinterToGroup","updateGroupSpec","existingGroup","getGroupWithPrinters","groupId","existingPrinterIds","map","p","wantedTargetPrinterIds","filter","unwantedId","eid","removePrinterFromGroup","nonExistingNewId","settings","importSettings","users","importUsers","server","updateServerSettings","timeout","updateTimeoutSettings","frontend","updateFrontendSettings","printerFileClean","updateFileCleanSettings","wizard","importedWizardVersion","wizardVersion","setWizardCompleted","allRoles","roles","user","roleIds","roleNameOrId","role","find","r","undefined","register","username","password","isRootUser","isDemoUser","isVerified","needsPasswordChange","updatePasswordHashUnsafeByUsername","passwordHash","errors","existingSettings","getSettings","Object","keys","existingUsers","listUsers","join","upsertPrinters","comparisonStrategies","existingPrinters","list","names","toLowerCase","urls","printerURL","ids","toString","strategy","comparedName","foundIndex","findIndex","n","upsertFloors","comparisonStrategy","existingFloors","floorLevels","comparedProperty","upsertGroups","existingGroups","listGroups","exportYaml","options","input","exportPrintersFloorsYamlSchema","exportGroups","exportFloors","dumpedObject","version","process","env","npm_package_version","exportedAt","Date","user_roles","apiKey","getLoginDto","disabledReason","enabled","dateAdded","listCache","f","dumpedFloor","fPrinterId","x","y","g","u","userDto","toDto","userObj","createdAt","roleId","dump"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/services/core/yaml.service.ts"],"names":["YamlService","logger","loggerFactory","printerTagService","printerService","printerCache","floorStore","floorService","userService","roleService","settingsStore","name","importYaml","yamlBuffer","importSpec","load","databaseTypeSqlite","databaseType","exportPrinters","exportFloorGrid","exportSettings","exportUsers","config","normalizeYamlData","importData","validateInput","importPrintersFloorsYamlSchema","hasSystemData","validateSystemTablesEmpty","settings","log","importSettings","users","length","importUsers","floors","floor","importPrinterPositionsSchema","updateByPropertyPrinters","insertPrinters","analysePrintersUpsert","printers","printerComparisonStrategiesByPriority","updateByPropertyFloors","insertFloors","analyseFloorsUpsert","floorComparisonStrategiesByPriority","updateByNameTags","insertTags","analyseUpsertTags","tags","printerIdMap","newPrinter","state","create","id","Error","JSON","stringify","error","updatePrinterSpec","updateId","printerId","updatedPrinter","value","originalPrinterId","update","floorIdMap","newFloor","originalFloorId","knownPrinterPositions","floorPosition","knownPrinterId","floorId","push","createdFloor","updateFloorSpec","updatedFloor","knownPrinters","loadStore","tag","createdTag","createTag","color","printer","addPrinterToTag","updateTagSpec","existingTag","getPrintersByTag","tagId","existingPrinterIds","map","p","wantedTargetPrinterIds","filter","unwantedId","eid","includes","removePrinterFromTag","nonExistingNewId","server","updateServerSettings","timeout","updateTimeoutSettings","frontend","updateFrontendSettings","wizard","wizardCompleted","importedWizardVersion","wizardVersion","setWizardCompleted","loadSettings","allRoles","roles","user","Number","parseInt","roleNames","roleName","some","r","register","username","password","isRootUser","isDemoUser","isVerified","needsPasswordChange","updatePasswordHashUnsafeByUsername","passwordHash","errors","getWizardSettings","existingSettings","getSettings","Object","keys","existingUsers","listUsers","join","upsertPrinters","comparisonStrategies","existingPrinters","list","names","toLowerCase","urls","printerURL","ids","toString","strategy","comparedName","foundIndex","findIndex","n","upsertFloors","comparisonStrategy","existingFloors","floorLevels","order","comparedProperty","upsertTags","existingTags","listTags","exportYaml","options","input","exportPrintersFloorsYamlSchema","exportFloors","exportTags","dumpedObject","version","process","env","npm_package_version","exportedAt","Date","undefined","user_roles","apiKey","getLoginDto","disabledReason","enabled","printerType","dateAdded","listCache","f","dumpedFloor","fPrinterId","x","y","t","u","userDto","toDto","createdAt","dump","printerName","settingsAppearance","OctoprintType","MoonrakerType","PrusaLinkType","BambuType","groups","exportGroups"],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "FileAnalysisService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return FileAnalysisService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _gcodeparser = require("../utils/parsers/gcode.parser");
|
|
12
|
+
const _3mfparser = require("../utils/parsers/3mf.parser");
|
|
13
|
+
const _bgcodeparser = require("../utils/parsers/bgcode.parser");
|
|
14
|
+
const _nodepath = require("node:path");
|
|
15
|
+
const _promises = require("node:fs/promises");
|
|
16
|
+
class FileAnalysisService {
|
|
17
|
+
logger;
|
|
18
|
+
FILE_FORMATS = {
|
|
19
|
+
GCODE: "gcode",
|
|
20
|
+
THREE_MF: "3mf",
|
|
21
|
+
BGCODE: "bgcode"
|
|
22
|
+
};
|
|
23
|
+
EXTENSIONS = {
|
|
24
|
+
THREE_MF: ".3mf",
|
|
25
|
+
BGCODE: ".bgcode",
|
|
26
|
+
GCODE: ".gcode",
|
|
27
|
+
GCODE_SHORT: ".g",
|
|
28
|
+
GCODE_ALT: ".gco",
|
|
29
|
+
GCODE_THREE_MF: ".gcode.3mf"
|
|
30
|
+
};
|
|
31
|
+
gcodeParser;
|
|
32
|
+
threemfParser;
|
|
33
|
+
bgcodeParser;
|
|
34
|
+
constructor(loggerFactory){
|
|
35
|
+
this.logger = loggerFactory(FileAnalysisService.name);
|
|
36
|
+
this.gcodeParser = new _gcodeparser.GCodeParser();
|
|
37
|
+
this.threemfParser = new _3mfparser.ThreeMFParser();
|
|
38
|
+
this.bgcodeParser = new _bgcodeparser.BGCodeParser();
|
|
39
|
+
this.logger.log("File analysis service initialized with all parsers");
|
|
40
|
+
}
|
|
41
|
+
async analyzeFile(filePath) {
|
|
42
|
+
const ext = (0, _nodepath.extname)(filePath).toLowerCase();
|
|
43
|
+
const fileFormat = this.getFileFormat(ext, filePath);
|
|
44
|
+
this.logger.log(`Analyzing file: ${(0, _nodepath.basename)(filePath)} (format: ${fileFormat}, ext: ${ext})`);
|
|
45
|
+
let result;
|
|
46
|
+
try {
|
|
47
|
+
switch(fileFormat){
|
|
48
|
+
case this.FILE_FORMATS.GCODE:
|
|
49
|
+
result = await this.analyzeGCode(filePath);
|
|
50
|
+
break;
|
|
51
|
+
case this.FILE_FORMATS.THREE_MF:
|
|
52
|
+
result = await this.analyze3MF(filePath);
|
|
53
|
+
break;
|
|
54
|
+
case this.FILE_FORMATS.BGCODE:
|
|
55
|
+
result = await this.analyzeBGCode(filePath);
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
throw new Error(`Unsupported file format: ${fileFormat}`);
|
|
59
|
+
}
|
|
60
|
+
const thumbnails = this.extractThumbnails(result);
|
|
61
|
+
return {
|
|
62
|
+
metadata: result.normalized,
|
|
63
|
+
thumbnails
|
|
64
|
+
};
|
|
65
|
+
} catch (error) {
|
|
66
|
+
this.logger.error(`Failed to analyze file ${filePath} (ext: "${ext}"): ${error}`);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async analyzeMultiPlate3MF(filePath) {
|
|
71
|
+
const result = await this.analyze3MF(filePath);
|
|
72
|
+
if (!result.normalized.isMultiPlate || !result.plates) {
|
|
73
|
+
return [
|
|
74
|
+
{
|
|
75
|
+
metadata: result.normalized,
|
|
76
|
+
thumbnails: this.extractThumbnails(result)
|
|
77
|
+
}
|
|
78
|
+
];
|
|
79
|
+
}
|
|
80
|
+
return result.plates.map((plate)=>({
|
|
81
|
+
metadata: {
|
|
82
|
+
...result.normalized,
|
|
83
|
+
plateNumber: plate.plateNumber,
|
|
84
|
+
gcodePrintTimeSeconds: plate.gcodePrintTimeSeconds,
|
|
85
|
+
filamentUsedGrams: plate.filamentUsedGrams,
|
|
86
|
+
totalLayers: plate.totalLayers
|
|
87
|
+
},
|
|
88
|
+
thumbnails: plate.thumbnails?.map((t)=>({
|
|
89
|
+
width: t.width || 0,
|
|
90
|
+
height: t.height || 0,
|
|
91
|
+
format: t.type || t.format || "PNG"
|
|
92
|
+
})) || []
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
async analyzeGCode(filePath) {
|
|
96
|
+
return await this.gcodeParser.parse(filePath);
|
|
97
|
+
}
|
|
98
|
+
async analyze3MF(filePath) {
|
|
99
|
+
return await this.threemfParser.parse(filePath);
|
|
100
|
+
}
|
|
101
|
+
async analyzeBGCode(filePath) {
|
|
102
|
+
return await this.bgcodeParser.parse(filePath);
|
|
103
|
+
}
|
|
104
|
+
extractThumbnails(result) {
|
|
105
|
+
const thumbnails = [];
|
|
106
|
+
if (result.raw._thumbnails) {
|
|
107
|
+
for (const thumb of result.raw._thumbnails){
|
|
108
|
+
thumbnails.push({
|
|
109
|
+
width: thumb.width,
|
|
110
|
+
height: thumb.height,
|
|
111
|
+
format: thumb.format,
|
|
112
|
+
data: thumb.data
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return thumbnails;
|
|
117
|
+
}
|
|
118
|
+
getFileFormat(ext, filePath) {
|
|
119
|
+
const lowerPath = filePath.toLowerCase();
|
|
120
|
+
if (lowerPath.endsWith(this.EXTENSIONS.GCODE_THREE_MF) || lowerPath.endsWith(this.EXTENSIONS.THREE_MF)) {
|
|
121
|
+
return this.FILE_FORMATS.THREE_MF;
|
|
122
|
+
}
|
|
123
|
+
if (lowerPath.endsWith(this.EXTENSIONS.BGCODE)) {
|
|
124
|
+
return this.FILE_FORMATS.BGCODE;
|
|
125
|
+
}
|
|
126
|
+
if (lowerPath.endsWith(this.EXTENSIONS.GCODE) || lowerPath.endsWith(this.EXTENSIONS.GCODE_SHORT) || lowerPath.endsWith(this.EXTENSIONS.GCODE_ALT)) {
|
|
127
|
+
return this.FILE_FORMATS.GCODE;
|
|
128
|
+
}
|
|
129
|
+
if (ext === this.EXTENSIONS.THREE_MF) return this.FILE_FORMATS.THREE_MF;
|
|
130
|
+
if (ext === this.EXTENSIONS.BGCODE) return this.FILE_FORMATS.BGCODE;
|
|
131
|
+
if (ext === this.EXTENSIONS.GCODE || ext === this.EXTENSIONS.GCODE_SHORT || ext === this.EXTENSIONS.GCODE_ALT) {
|
|
132
|
+
return this.FILE_FORMATS.GCODE;
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`Unknown file extension: "${ext}" (path: "${filePath}")`);
|
|
135
|
+
}
|
|
136
|
+
async needsAnalysis(filePath) {
|
|
137
|
+
try {
|
|
138
|
+
await (0, _promises.access)(filePath);
|
|
139
|
+
return true;
|
|
140
|
+
} catch {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
//# sourceMappingURL=file-analysis.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/file-analysis.service.ts"],"names":["FileAnalysisService","logger","FILE_FORMATS","GCODE","THREE_MF","BGCODE","EXTENSIONS","GCODE_SHORT","GCODE_ALT","GCODE_THREE_MF","gcodeParser","threemfParser","bgcodeParser","loggerFactory","name","GCodeParser","ThreeMFParser","BGCodeParser","log","analyzeFile","filePath","ext","extname","toLowerCase","fileFormat","getFileFormat","basename","result","analyzeGCode","analyze3MF","analyzeBGCode","Error","thumbnails","extractThumbnails","metadata","normalized","error","analyzeMultiPlate3MF","isMultiPlate","plates","map","plate","plateNumber","gcodePrintTimeSeconds","filamentUsedGrams","totalLayers","t","width","height","format","type","parse","raw","_thumbnails","thumb","push","data","lowerPath","endsWith","needsAnalysis","access"],"mappings":"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"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "FileStorageService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return FileStorageService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _printjobentity = require("../entities/print-job.entity");
|
|
12
|
+
const _serverconstants = require("../server.constants");
|
|
13
|
+
const _fsutils = require("../utils/fs.utils");
|
|
14
|
+
const _nodepath = /*#__PURE__*/ _interop_require_wildcard(require("node:path"));
|
|
15
|
+
const _promises = require("node:fs/promises");
|
|
16
|
+
const _nodecrypto = require("node:crypto");
|
|
17
|
+
const _nodefs = require("node:fs");
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
19
|
+
if (typeof WeakMap !== "function") return null;
|
|
20
|
+
var cacheBabelInterop = new WeakMap();
|
|
21
|
+
var cacheNodeInterop = new WeakMap();
|
|
22
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
23
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
24
|
+
})(nodeInterop);
|
|
25
|
+
}
|
|
26
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
27
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
28
|
+
return obj;
|
|
29
|
+
}
|
|
30
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
31
|
+
return {
|
|
32
|
+
default: obj
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
36
|
+
if (cache && cache.has(obj)) {
|
|
37
|
+
return cache.get(obj);
|
|
38
|
+
}
|
|
39
|
+
var newObj = {
|
|
40
|
+
__proto__: null
|
|
41
|
+
};
|
|
42
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
|
+
for(var key in obj){
|
|
44
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
45
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
46
|
+
if (desc && (desc.get || desc.set)) {
|
|
47
|
+
Object.defineProperty(newObj, key, desc);
|
|
48
|
+
} else {
|
|
49
|
+
newObj[key] = obj[key];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
newObj.default = obj;
|
|
54
|
+
if (cache) {
|
|
55
|
+
cache.set(obj, newObj);
|
|
56
|
+
}
|
|
57
|
+
return newObj;
|
|
58
|
+
}
|
|
59
|
+
class FileStorageService {
|
|
60
|
+
printJobRepository;
|
|
61
|
+
logger;
|
|
62
|
+
storageBasePath;
|
|
63
|
+
STORAGE_SUBDIRS = [
|
|
64
|
+
"gcode",
|
|
65
|
+
"3mf",
|
|
66
|
+
"bgcode"
|
|
67
|
+
];
|
|
68
|
+
constructor(loggerFactory, typeormService){
|
|
69
|
+
this.printJobRepository = typeormService.getDataSource().getRepository(_printjobentity.PrintJob);
|
|
70
|
+
this.logger = loggerFactory(FileStorageService.name);
|
|
71
|
+
this.storageBasePath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultPrintFilesStorage);
|
|
72
|
+
}
|
|
73
|
+
async ensureStorageDirectories() {
|
|
74
|
+
try {
|
|
75
|
+
await (0, _promises.mkdir)(this.storageBasePath, {
|
|
76
|
+
recursive: true
|
|
77
|
+
});
|
|
78
|
+
for (const subdir of this.STORAGE_SUBDIRS){
|
|
79
|
+
await (0, _promises.mkdir)((0, _nodepath.join)(this.storageBasePath, subdir), {
|
|
80
|
+
recursive: true
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
} catch (error) {
|
|
84
|
+
this.logger.error("Failed to create storage directories", error);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
readFile(fileStorageId) {
|
|
88
|
+
const filePath = this.getFilePath(fileStorageId);
|
|
89
|
+
return (0, _nodefs.readFileSync)(filePath);
|
|
90
|
+
}
|
|
91
|
+
async saveFile(file, fileHash) {
|
|
92
|
+
const fileExt = (0, _nodepath.extname)(file.originalname).toLowerCase();
|
|
93
|
+
let fileId;
|
|
94
|
+
if (fileHash) {
|
|
95
|
+
const nameHash = (0, _nodecrypto.createHash)('sha256').update(fileHash + file.originalname).digest('hex').substring(0, 32);
|
|
96
|
+
fileId = `${nameHash.substring(0, 8)}-${nameHash.substring(8, 12)}-${nameHash.substring(12, 16)}-${nameHash.substring(16, 20)}-${nameHash.substring(20, 32)}`;
|
|
97
|
+
} else {
|
|
98
|
+
fileId = crypto.randomUUID();
|
|
99
|
+
}
|
|
100
|
+
let subdir = "gcode";
|
|
101
|
+
if (fileExt === ".3mf" || file.originalname.includes(".gcode.3mf")) {
|
|
102
|
+
subdir = "3mf";
|
|
103
|
+
} else if (fileExt === ".bgcode") {
|
|
104
|
+
subdir = "bgcode";
|
|
105
|
+
}
|
|
106
|
+
const targetDir = (0, _nodepath.join)(this.storageBasePath, subdir);
|
|
107
|
+
const targetPath = (0, _nodepath.join)(targetDir, `${fileId}${fileExt}`);
|
|
108
|
+
if (file.path) {
|
|
109
|
+
await (0, _promises.rename)(file.path, targetPath);
|
|
110
|
+
} else if (file.buffer) {
|
|
111
|
+
await (0, _promises.writeFile)(targetPath, file.buffer);
|
|
112
|
+
} else {
|
|
113
|
+
throw new Error("File has no path or buffer");
|
|
114
|
+
}
|
|
115
|
+
this.logger.log(`Saved file ${file.originalname} as ${fileId}`);
|
|
116
|
+
return fileId;
|
|
117
|
+
}
|
|
118
|
+
async getFile(fileStorageId) {
|
|
119
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
120
|
+
if (!filePath) {
|
|
121
|
+
throw new Error(`File ${fileStorageId} not found in storage`);
|
|
122
|
+
}
|
|
123
|
+
return (0, _promises.readFile)(filePath);
|
|
124
|
+
}
|
|
125
|
+
async deleteFile(fileStorageId) {
|
|
126
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
127
|
+
if (!filePath) {
|
|
128
|
+
this.logger.warn(`File ${fileStorageId} not found, cannot delete`);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
await (0, _promises.unlink)(filePath);
|
|
132
|
+
const metadataPath = filePath + ".json";
|
|
133
|
+
try {
|
|
134
|
+
await (0, _promises.unlink)(metadataPath);
|
|
135
|
+
this.logger.debug(`Deleted metadata JSON for ${fileStorageId}`);
|
|
136
|
+
} catch {}
|
|
137
|
+
const thumbnailDir = filePath.replace(/\.(gcode|3mf|bgcode)$/i, '_thumbnails');
|
|
138
|
+
try {
|
|
139
|
+
await (0, _promises.rm)(thumbnailDir, {
|
|
140
|
+
recursive: true,
|
|
141
|
+
force: true
|
|
142
|
+
});
|
|
143
|
+
this.logger.debug(`Deleted thumbnails for ${fileStorageId}`);
|
|
144
|
+
} catch {}
|
|
145
|
+
this.logger.log(`Deleted file ${fileStorageId}`);
|
|
146
|
+
}
|
|
147
|
+
getFilePath(fileStorageId) {
|
|
148
|
+
for (const subdir of this.STORAGE_SUBDIRS){
|
|
149
|
+
for (const ext of [
|
|
150
|
+
".gcode",
|
|
151
|
+
".3mf",
|
|
152
|
+
".bgcode",
|
|
153
|
+
""
|
|
154
|
+
]){
|
|
155
|
+
const fullPath = (0, _nodepath.join)(this.storageBasePath, subdir, fileStorageId + ext);
|
|
156
|
+
if ((0, _nodefs.existsSync)(fullPath)) {
|
|
157
|
+
return fullPath;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return (0, _nodepath.join)(this.storageBasePath, "gcode", fileStorageId);
|
|
162
|
+
}
|
|
163
|
+
async calculateFileHash(filePath) {
|
|
164
|
+
const fileBuffer = await (0, _promises.readFile)(filePath);
|
|
165
|
+
const hashSum = (0, _nodecrypto.createHash)("sha256");
|
|
166
|
+
hashSum.update(fileBuffer);
|
|
167
|
+
return hashSum.digest("hex");
|
|
168
|
+
}
|
|
169
|
+
getDeterministicId(fileHash, fileName) {
|
|
170
|
+
const nameHash = (0, _nodecrypto.createHash)('sha256').update(fileHash + fileName).digest('hex').substring(0, 32);
|
|
171
|
+
return `${nameHash.substring(0, 8)}-${nameHash.substring(8, 12)}-${nameHash.substring(12, 16)}-${nameHash.substring(16, 20)}-${nameHash.substring(20, 32)}`;
|
|
172
|
+
}
|
|
173
|
+
async findFilePath(fileStorageId) {
|
|
174
|
+
for (const subdir of this.STORAGE_SUBDIRS){
|
|
175
|
+
const dirPath = (0, _nodepath.join)(this.storageBasePath, subdir);
|
|
176
|
+
try {
|
|
177
|
+
const files = await (0, _promises.readdir)(dirPath);
|
|
178
|
+
const matchingFile = files.find((f)=>f.startsWith(fileStorageId));
|
|
179
|
+
if (matchingFile) {
|
|
180
|
+
return (0, _nodepath.join)(dirPath, matchingFile);
|
|
181
|
+
}
|
|
182
|
+
} catch {}
|
|
183
|
+
}
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
async fileExists(fileStorageId) {
|
|
187
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
188
|
+
return filePath !== null;
|
|
189
|
+
}
|
|
190
|
+
async findDuplicateByHash(fileHash) {
|
|
191
|
+
return this.printJobRepository.findOne({
|
|
192
|
+
where: {
|
|
193
|
+
fileHash
|
|
194
|
+
},
|
|
195
|
+
order: {
|
|
196
|
+
createdAt: "DESC"
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
async saveMetadata(fileStorageId, metadata, fileHash, originalFileName, thumbnailMetadata) {
|
|
201
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
202
|
+
if (!filePath) {
|
|
203
|
+
this.logger.warn(`Cannot save metadata - file ${fileStorageId} not found`);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const metadataPath = filePath + ".json";
|
|
207
|
+
let existingOriginalFileName = originalFileName;
|
|
208
|
+
let existingThumbnails = thumbnailMetadata;
|
|
209
|
+
try {
|
|
210
|
+
const existingContent = await (0, _promises.readFile)(metadataPath, "utf8");
|
|
211
|
+
const existing = JSON.parse(existingContent);
|
|
212
|
+
if (existing._originalFileName && !originalFileName) {
|
|
213
|
+
existingOriginalFileName = existing._originalFileName;
|
|
214
|
+
}
|
|
215
|
+
if (existing._thumbnails && !thumbnailMetadata) {
|
|
216
|
+
existingThumbnails = existing._thumbnails;
|
|
217
|
+
}
|
|
218
|
+
} catch {}
|
|
219
|
+
const metadataWithMeta = {
|
|
220
|
+
...metadata,
|
|
221
|
+
_fileHash: fileHash || null,
|
|
222
|
+
_analyzedAt: new Date().toISOString(),
|
|
223
|
+
_fileStorageId: fileStorageId,
|
|
224
|
+
_originalFileName: existingOriginalFileName || metadata.fileName || null,
|
|
225
|
+
_thumbnails: existingThumbnails || []
|
|
226
|
+
};
|
|
227
|
+
await (0, _promises.writeFile)(metadataPath, JSON.stringify(metadataWithMeta, null, 2), "utf8");
|
|
228
|
+
const thumbnailMeta = thumbnailMetadata ? ` with ${thumbnailMetadata.length} thumbnail(s)` : '';
|
|
229
|
+
this.logger.debug(`Saved metadata for ${fileStorageId}${thumbnailMeta}`);
|
|
230
|
+
}
|
|
231
|
+
async loadMetadata(fileStorageId) {
|
|
232
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
233
|
+
if (!filePath) {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
const metadataPath = filePath + ".json";
|
|
237
|
+
try {
|
|
238
|
+
const content = await (0, _promises.readFile)(metadataPath, "utf8");
|
|
239
|
+
return JSON.parse(content);
|
|
240
|
+
} catch (error) {
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
async hasMetadata(fileStorageId) {
|
|
245
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
246
|
+
if (!filePath) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
const metadataPath = filePath + ".json";
|
|
250
|
+
try {
|
|
251
|
+
await (0, _promises.access)(metadataPath);
|
|
252
|
+
return true;
|
|
253
|
+
} catch {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
async saveThumbnails(fileStorageId, thumbnails) {
|
|
258
|
+
const savedThumbnails = [];
|
|
259
|
+
if (!thumbnails || thumbnails.length === 0) {
|
|
260
|
+
return savedThumbnails;
|
|
261
|
+
}
|
|
262
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
263
|
+
if (!filePath) {
|
|
264
|
+
this.logger.warn(`Cannot save thumbnails - file ${fileStorageId} not found`);
|
|
265
|
+
return savedThumbnails;
|
|
266
|
+
}
|
|
267
|
+
const thumbnailDir = filePath.replace(/\.(gcode|3mf|bgcode)$/i, '_thumbnails');
|
|
268
|
+
try {
|
|
269
|
+
await (0, _promises.rm)(thumbnailDir, {
|
|
270
|
+
recursive: true,
|
|
271
|
+
force: true
|
|
272
|
+
});
|
|
273
|
+
this.logger.debug(`Cleared old thumbnails for ${fileStorageId}`);
|
|
274
|
+
} catch {}
|
|
275
|
+
await (0, _promises.mkdir)(thumbnailDir, {
|
|
276
|
+
recursive: true
|
|
277
|
+
});
|
|
278
|
+
for(let i = 0; i < thumbnails.length; i++){
|
|
279
|
+
const thumb = thumbnails[i];
|
|
280
|
+
if (!thumb.data) continue;
|
|
281
|
+
const ext = thumb.format?.toLowerCase() || 'png';
|
|
282
|
+
const filename = `thumb_${i}.${ext}`;
|
|
283
|
+
const thumbPath = (0, _nodepath.join)(thumbnailDir, filename);
|
|
284
|
+
try {
|
|
285
|
+
const buffer = Buffer.from(thumb.data, 'base64');
|
|
286
|
+
await (0, _promises.writeFile)(thumbPath, buffer);
|
|
287
|
+
savedThumbnails.push({
|
|
288
|
+
index: i,
|
|
289
|
+
path: thumbPath,
|
|
290
|
+
filename,
|
|
291
|
+
width: thumb.width || 0,
|
|
292
|
+
height: thumb.height || 0,
|
|
293
|
+
format: ext,
|
|
294
|
+
size: buffer.length
|
|
295
|
+
});
|
|
296
|
+
this.logger.debug(`Saved thumbnail ${i} for ${fileStorageId} (${thumb.width}x${thumb.height}, ${buffer.length} bytes)`);
|
|
297
|
+
} catch (error) {
|
|
298
|
+
this.logger.warn(`Failed to save thumbnail ${i} for ${fileStorageId}: ${error}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return savedThumbnails;
|
|
302
|
+
}
|
|
303
|
+
async getThumbnail(fileStorageId, index) {
|
|
304
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
305
|
+
if (!filePath) return null;
|
|
306
|
+
const thumbnailDir = filePath.replace(/\.(gcode|3mf|bgcode)$/i, '_thumbnails');
|
|
307
|
+
for (const ext of [
|
|
308
|
+
'png',
|
|
309
|
+
'jpg',
|
|
310
|
+
'jpeg',
|
|
311
|
+
'qoi'
|
|
312
|
+
]){
|
|
313
|
+
const thumbPath = (0, _nodepath.join)(thumbnailDir, `thumb_${index}.${ext}`);
|
|
314
|
+
try {
|
|
315
|
+
return await (0, _promises.readFile)(thumbPath);
|
|
316
|
+
} catch {}
|
|
317
|
+
}
|
|
318
|
+
return null;
|
|
319
|
+
}
|
|
320
|
+
async listThumbnails(fileStorageId) {
|
|
321
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
322
|
+
if (!filePath) return [];
|
|
323
|
+
const thumbnailDir = filePath.replace(/\.(gcode|3mf|bgcode)$/i, '_thumbnails');
|
|
324
|
+
try {
|
|
325
|
+
const files = await (0, _promises.readdir)(thumbnailDir);
|
|
326
|
+
return files.filter((f)=>f.startsWith('thumb_')).sort((a, b)=>a.localeCompare(b));
|
|
327
|
+
} catch {
|
|
328
|
+
return [];
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
async listAllFiles() {
|
|
332
|
+
const files = [];
|
|
333
|
+
for (const subdir of this.STORAGE_SUBDIRS){
|
|
334
|
+
const dirPath = (0, _nodepath.join)(this.storageBasePath, subdir);
|
|
335
|
+
try {
|
|
336
|
+
const dirFiles = await (0, _promises.readdir)(dirPath);
|
|
337
|
+
for (const file of dirFiles){
|
|
338
|
+
if (file.endsWith('_thumbnails') || file.endsWith('.json')) continue;
|
|
339
|
+
const fileId = _nodepath.default.parse(file).name;
|
|
340
|
+
const filePath = (0, _nodepath.join)(dirPath, file);
|
|
341
|
+
const stats = await (0, _promises.stat)(filePath);
|
|
342
|
+
const metadata = await this.loadMetadata(fileId);
|
|
343
|
+
const thumbnails = await this.listThumbnails(fileId);
|
|
344
|
+
files.push({
|
|
345
|
+
fileStorageId: fileId,
|
|
346
|
+
fileName: metadata?._fileName || file,
|
|
347
|
+
fileFormat: subdir,
|
|
348
|
+
fileSize: stats.size,
|
|
349
|
+
fileHash: metadata?._fileHash || '',
|
|
350
|
+
createdAt: stats.birthtime,
|
|
351
|
+
thumbnailCount: thumbnails.length,
|
|
352
|
+
metadata: metadata
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
} catch (error) {
|
|
356
|
+
this.logger.error(`Error listing files in ${subdir}`, error);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return files.sort((a, b)=>b.createdAt.getTime() - a.createdAt.getTime());
|
|
360
|
+
}
|
|
361
|
+
async getFileInfo(fileStorageId) {
|
|
362
|
+
const filePath = await this.findFilePath(fileStorageId);
|
|
363
|
+
if (!filePath) return null;
|
|
364
|
+
try {
|
|
365
|
+
const stats = await (0, _promises.stat)(filePath);
|
|
366
|
+
const metadata = await this.loadMetadata(fileStorageId);
|
|
367
|
+
const thumbnails = await this.listThumbnails(fileStorageId);
|
|
368
|
+
const ext = (0, _nodepath.extname)(filePath).substring(1);
|
|
369
|
+
return {
|
|
370
|
+
fileStorageId,
|
|
371
|
+
fileName: metadata?._fileName || (0, _nodepath.basename)(filePath),
|
|
372
|
+
fileFormat: ext,
|
|
373
|
+
fileSize: stats.size,
|
|
374
|
+
fileHash: metadata?._fileHash || '',
|
|
375
|
+
createdAt: stats.birthtime,
|
|
376
|
+
thumbnailCount: thumbnails.length,
|
|
377
|
+
metadata: metadata
|
|
378
|
+
};
|
|
379
|
+
} catch (error) {
|
|
380
|
+
this.logger.error(`Error getting file info for ${fileStorageId}`, error);
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
//# sourceMappingURL=file-storage.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/file-storage.service.ts"],"names":["FileStorageService","printJobRepository","logger","storageBasePath","STORAGE_SUBDIRS","loggerFactory","typeormService","getDataSource","getRepository","PrintJob","name","join","superRootPath","AppConstants","defaultPrintFilesStorage","ensureStorageDirectories","mkdir","recursive","subdir","error","readFile","fileStorageId","filePath","getFilePath","readFileSync","saveFile","file","fileHash","fileExt","extname","originalname","toLowerCase","fileId","nameHash","createHash","update","digest","substring","crypto","randomUUID","includes","targetDir","targetPath","path","rename","buffer","writeFile","Error","log","getFile","findFilePath","deleteFile","warn","unlink","metadataPath","debug","thumbnailDir","replace","rm","force","ext","fullPath","existsSync","calculateFileHash","fileBuffer","hashSum","getDeterministicId","fileName","dirPath","files","readdir","matchingFile","find","f","startsWith","fileExists","findDuplicateByHash","findOne","where","order","createdAt","saveMetadata","metadata","originalFileName","thumbnailMetadata","existingOriginalFileName","existingThumbnails","existingContent","existing","JSON","parse","_originalFileName","_thumbnails","metadataWithMeta","_fileHash","_analyzedAt","Date","toISOString","_fileStorageId","stringify","thumbnailMeta","length","loadMetadata","content","hasMetadata","access","saveThumbnails","thumbnails","savedThumbnails","i","thumb","data","format","filename","thumbPath","Buffer","from","push","index","width","height","size","getThumbnail","listThumbnails","filter","sort","a","b","localeCompare","listAllFiles","dirFiles","endsWith","stats","stat","_fileName","fileFormat","fileSize","birthtime","thumbnailCount","getTime","getFileInfo","basename"],"mappings":"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"}
|