@fdm-monster/server 1.8.3 → 1.9.0-rc1
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 +5 -3
- package/.gitattributes +4 -2
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.9.1.cjs +948 -0
- package/.yarnrc.yml +1 -1
- package/README.md +25 -26
- package/RELEASE_NOTES.MD +50 -1
- package/biome.json +33 -0
- package/dist/consoles/download-github-releases.js.map +1 -1
- package/dist/consoles/launch-http-servers.js +31 -0
- package/dist/consoles/launch-http-servers.js.map +1 -0
- package/dist/consoles/mock-octoprint.server.js +291 -0
- package/dist/consoles/mock-octoprint.server.js.map +1 -0
- package/dist/consoles/mock-prusalink.server.js +57 -0
- package/dist/consoles/mock-prusalink.server.js.map +1 -0
- package/dist/consoles/utils/api-messages.js +856 -0
- package/dist/consoles/utils/api-messages.js.map +1 -0
- package/dist/consoles/utils/delayed-memory.storage.js +42 -0
- package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
- package/dist/consoles/utils/ws-messages.js +88 -0
- package/dist/consoles/utils/ws-messages.js.map +1 -0
- package/dist/constants/event.constants.js +5 -21
- package/dist/constants/event.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +6 -11
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/container.js +13 -14
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +3 -4
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/auth.controller.js +114 -24
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +95 -24
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/camera-stream.controller.js +16 -12
- package/dist/controllers/camera-stream.controller.js.map +1 -1
- package/dist/controllers/custom-gcode.controller.js +116 -40
- package/dist/controllers/custom-gcode.controller.js.map +1 -1
- package/dist/controllers/dto/update-client-dist.dto.js +0 -21
- package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
- package/dist/controllers/first-time-setup.controller.js +54 -18
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/floor.controller.js +154 -43
- package/dist/controllers/floor.controller.js.map +1 -1
- package/dist/controllers/metrics.controller.js +56 -0
- package/dist/controllers/metrics.controller.js.map +1 -0
- package/dist/controllers/print-completion.controller.js +81 -18
- package/dist/controllers/print-completion.controller.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +42 -28
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer-group.controller.js +123 -33
- package/dist/controllers/printer-group.controller.js.map +1 -1
- package/dist/controllers/printer-settings.controller.js +73 -26
- package/dist/controllers/printer-settings.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +57 -198
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-private.controller.js +153 -39
- package/dist/controllers/server-private.controller.js.map +1 -1
- package/dist/controllers/server-public.controller.js +79 -84
- package/dist/controllers/server-public.controller.js.map +1 -1
- package/dist/controllers/settings.controller.js +222 -79
- package/dist/controllers/settings.controller.js.map +1 -1
- package/dist/controllers/user.controller.js +67 -57
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/auth-controller.validation.js +6 -5
- package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +17 -18
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/controllers/validation/generic.validation.js +8 -3
- package/dist/controllers/validation/generic.validation.js.map +1 -1
- package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
- package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
- package/dist/controllers/validation/printer-controller.validation.js +31 -50
- package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-files-controller.validation.js +16 -15
- package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
- package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
- package/dist/controllers/validation/server-private.validation.js +17 -0
- package/dist/controllers/validation/server-private.validation.js.map +1 -0
- package/dist/controllers/validation/setting.validation.js +28 -10
- package/dist/controllers/validation/setting.validation.js.map +1 -1
- package/dist/controllers/validation/user-controller.validation.js +44 -13
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/data-source.js +10 -6
- package/dist/data-source.js.map +1 -1
- package/dist/entities/camera-stream.entity.js +2 -3
- package/dist/entities/camera-stream.entity.js.map +1 -1
- package/dist/entities/custom-gcode.entity.js +1 -2
- package/dist/entities/custom-gcode.entity.js.map +1 -1
- package/dist/entities/floor-position.entity.js.map +1 -1
- package/dist/entities/floor.entity.js +1 -2
- package/dist/entities/floor.entity.js.map +1 -1
- package/dist/entities/group.entity.js +6 -2
- package/dist/entities/group.entity.js.map +1 -1
- package/dist/entities/permission.entity.js +1 -2
- package/dist/entities/permission.entity.js.map +1 -1
- package/dist/entities/print-completion.entity.js +1 -2
- package/dist/entities/print-completion.entity.js.map +1 -1
- package/dist/entities/printer-group.entity.js +6 -2
- package/dist/entities/printer-group.entity.js.map +1 -1
- package/dist/entities/printer.entity.js +22 -4
- package/dist/entities/printer.entity.js.map +1 -1
- package/dist/entities/refresh-token.entity.js +1 -2
- package/dist/entities/refresh-token.entity.js.map +1 -1
- package/dist/entities/role.entity.js +1 -2
- package/dist/entities/role.entity.js.map +1 -1
- package/dist/entities/settings.entity.js +1 -2
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/entities/user-role.entity.js +1 -2
- package/dist/entities/user-role.entity.js.map +1 -1
- package/dist/entities/user.entity.js +1 -2
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/exceptions/runtime.exceptions.js.map +1 -1
- package/dist/handlers/logger.js +131 -36
- package/dist/handlers/logger.js.map +1 -1
- package/dist/handlers/validators.js +7 -116
- package/dist/handlers/validators.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/authenticate.js +11 -22
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/database.js.map +1 -1
- package/dist/middleware/demo.middleware.js +4 -17
- package/dist/middleware/demo.middleware.js.map +1 -1
- package/dist/middleware/exception.filter.js +23 -23
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/middleware/global.middleware.js +4 -4
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/param-converter.middleware.js +81 -0
- package/dist/middleware/param-converter.middleware.js.map +1 -0
- package/dist/middleware/passport.js +3 -5
- package/dist/middleware/passport.js.map +1 -1
- package/dist/middleware/printer-resolver.js +37 -0
- package/dist/middleware/printer-resolver.js.map +1 -0
- package/dist/middleware/printer.js +22 -10
- package/dist/middleware/printer.js.map +1 -1
- package/dist/middleware/socketio.middleware.js +27 -0
- package/dist/middleware/socketio.middleware.js.map +1 -0
- package/dist/migrations/1706829146617-InitSqlite.js +1 -1
- package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
- package/dist/models/Auth/Permission.js.map +1 -1
- package/dist/models/Auth/RefreshToken.js +1 -1
- package/dist/models/Auth/RefreshToken.js.map +1 -1
- package/dist/models/Auth/Role.js.map +1 -1
- package/dist/models/Auth/User.js.map +1 -1
- package/dist/models/CameraStream.js +20 -0
- package/dist/models/CameraStream.js.map +1 -1
- package/dist/models/CustomGcode.js.map +1 -1
- package/dist/models/Floor.js.map +1 -1
- package/dist/models/FloorPrinter.js +10 -1
- package/dist/models/FloorPrinter.js.map +1 -1
- package/dist/models/PrintCompletion.js.map +1 -1
- package/dist/models/Printer.js +12 -5
- package/dist/models/Printer.js.map +1 -1
- package/dist/models/Settings.js +5 -42
- package/dist/models/Settings.js.map +1 -1
- package/dist/models/index.js +0 -4
- package/dist/models/index.js.map +1 -1
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
- package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
- package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
- package/dist/server.constants.js +7 -4
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +29 -2
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +13 -8
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +24 -33
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js +15 -20
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/jwt.service.js +1 -1
- package/dist/services/authentication/jwt.service.js.map +1 -1
- package/dist/services/core/batch-call.service.js +23 -25
- package/dist/services/core/batch-call.service.js.map +1 -1
- package/dist/services/core/client-bundle.service.js +78 -136
- package/dist/services/core/client-bundle.service.js.map +1 -1
- package/dist/services/core/config.service.js.map +1 -1
- package/dist/services/core/cradle.service.js +21 -0
- package/dist/services/core/cradle.service.js.map +1 -0
- package/dist/services/core/github.service.js +2 -2
- package/dist/services/core/github.service.js.map +1 -1
- package/dist/services/core/http-client.factory.js +1 -1
- package/dist/services/core/http-client.factory.js.map +1 -1
- package/dist/services/core/logs-manager.service.js +3 -3
- package/dist/services/core/logs-manager.service.js.map +1 -1
- package/dist/services/core/monsterpi.service.js +1 -1
- package/dist/services/core/monsterpi.service.js.map +1 -1
- package/dist/services/core/multer.service.js +8 -7
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/server-release.service.js +14 -8
- package/dist/services/core/server-release.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +16 -17
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/interfaces/camera-stream.dto.js +4 -34
- package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
- package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
- package/dist/services/interfaces/floor.dto.js +5 -47
- package/dist/services/interfaces/floor.dto.js.map +1 -1
- package/dist/services/interfaces/login.dto.js +2 -0
- package/dist/services/interfaces/login.dto.js.map +1 -1
- package/dist/services/interfaces/print-completion.dto.js.map +1 -1
- package/dist/services/interfaces/printer-group.dto.js +0 -14
- package/dist/services/interfaces/printer-group.dto.js.map +1 -1
- package/dist/services/interfaces/printer.dto.js +11 -11
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/interfaces/settings.dto.js.map +1 -1
- package/dist/services/interfaces/task.interfaces.js +6 -0
- package/dist/services/interfaces/task.interfaces.js.map +1 -0
- package/dist/services/mongoose/camera-stream.service.js +17 -15
- package/dist/services/mongoose/camera-stream.service.js.map +1 -1
- package/dist/services/mongoose/custom-gcode.service.js +4 -2
- package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
- package/dist/services/mongoose/floor.service.js +37 -30
- package/dist/services/mongoose/floor.service.js.map +1 -1
- package/dist/services/mongoose/permission.service.js +1 -1
- package/dist/services/mongoose/permission.service.js.map +1 -1
- package/dist/services/mongoose/print-completion.service.js +2 -2
- package/dist/services/mongoose/print-completion.service.js.map +1 -1
- package/dist/services/mongoose/print-completion.shared.js +2 -2
- package/dist/services/mongoose/print-completion.shared.js.map +1 -1
- package/dist/services/mongoose/printer.service.js +33 -45
- package/dist/services/mongoose/printer.service.js.map +1 -1
- package/dist/services/mongoose/refresh-token.service.js +5 -8
- package/dist/services/mongoose/refresh-token.service.js.map +1 -1
- package/dist/services/mongoose/role.service.js +14 -5
- package/dist/services/mongoose/role.service.js.map +1 -1
- package/dist/services/mongoose/settings.service.js +35 -62
- package/dist/services/mongoose/settings.service.js.map +1 -1
- package/dist/services/mongoose/user.service.js +8 -7
- package/dist/services/mongoose/user.service.js.map +1 -1
- package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
- package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
- package/dist/services/moonraker/moonraker-websocket.adapter.js +102 -94
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +19 -14
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +3 -5
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
- package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/octoprint-api.routes.js +0 -37
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js +66 -72
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +12 -185
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
- package/dist/services/octoprint.api.js +8 -14
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/base.service.js +11 -12
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js +5 -1
- package/dist/services/orm/camera-stream.service.js.map +1 -1
- package/dist/services/orm/custom-gcode.service.js +2 -2
- package/dist/services/orm/custom-gcode.service.js.map +1 -1
- package/dist/services/orm/floor-position.service.js +0 -5
- package/dist/services/orm/floor-position.service.js.map +1 -1
- package/dist/services/orm/floor.service.js +43 -39
- package/dist/services/orm/floor.service.js.map +1 -1
- package/dist/services/orm/permission.service.js +3 -4
- package/dist/services/orm/permission.service.js.map +1 -1
- package/dist/services/orm/print-completion.service.js +2 -4
- package/dist/services/orm/print-completion.service.js.map +1 -1
- package/dist/services/orm/printer-group.service.js +2 -7
- package/dist/services/orm/printer-group.service.js.map +1 -1
- package/dist/services/orm/printer.service.js +21 -36
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/refresh-token.service.js +5 -11
- package/dist/services/orm/refresh-token.service.js.map +1 -1
- package/dist/services/orm/role.service.js +11 -10
- package/dist/services/orm/role.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +37 -133
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/orm/user.service.js +13 -15
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/printer-api.factory.js +9 -6
- package/dist/services/printer-api.factory.js.map +1 -1
- package/dist/services/printer-api.interface.js +13 -6
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
- package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
- package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
- package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
- package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
- package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
- package/dist/services/{octoprint/dto/plugin.dto.js → prusa-link/dto/file.dto.js} +1 -1
- package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
- package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
- package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/status.dto.js +6 -0
- package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/version.dto.js +6 -0
- package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
- package/dist/services/prusa-link/prusa-link.api.js +233 -0
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
- package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
- package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
- package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
- package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
- package/dist/services/socket.factory.js +9 -6
- package/dist/services/socket.factory.js.map +1 -1
- package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
- package/dist/services/task-manager.service.js.map +1 -0
- package/dist/services/validators/camera-service.validation.js +19 -0
- package/dist/services/validators/camera-service.validation.js.map +1 -0
- package/dist/services/validators/floor-service.validation.js +47 -36
- package/dist/services/validators/floor-service.validation.js.map +1 -1
- package/dist/services/validators/print-completion-service.validation.js +22 -9
- package/dist/services/validators/print-completion-service.validation.js.map +1 -1
- package/dist/services/validators/printer-service.validation.js +112 -29
- package/dist/services/validators/printer-service.validation.js.map +1 -1
- package/dist/services/validators/settings-service.validation.js +78 -66
- package/dist/services/validators/settings-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +17 -16
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +94 -51
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/dist/shared/default-http-client.builder.js.map +1 -1
- package/dist/shared/load-controllers.js +20 -0
- package/dist/shared/load-controllers.js.map +1 -0
- package/dist/shared/runtime-settings.migration.js +46 -0
- package/dist/shared/runtime-settings.migration.js.map +1 -0
- package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
- package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
- package/dist/shared/websocket.adapter.js +4 -5
- package/dist/shared/websocket.adapter.js.map +1 -1
- package/dist/state/file-upload-tracker.cache.js +5 -4
- package/dist/state/file-upload-tracker.cache.js.map +1 -1
- package/dist/state/file.cache.js +1 -1
- package/dist/state/file.cache.js.map +1 -1
- package/dist/state/floor.store.js +6 -6
- package/dist/state/floor.store.js.map +1 -1
- package/dist/state/printer-events.cache.js +21 -22
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-files.store.js +6 -8
- package/dist/state/printer-files.store.js.map +1 -1
- package/dist/state/printer-socket.store.js +27 -50
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer-thumbnail.cache.js +5 -9
- package/dist/state/printer-thumbnail.cache.js.map +1 -1
- package/dist/state/printer.cache.js +14 -12
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +74 -50
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/socket-io.gateway.js +39 -36
- package/dist/state/socket-io.gateway.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +20 -15
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/dist/state/validation/create-test-printer.validation.js +13 -11
- package/dist/state/validation/create-test-printer.validation.js.map +1 -1
- package/dist/task.presets.js.map +1 -1
- package/dist/tasks/boot.task.js +14 -19
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/client-bundle.task.js +1 -3
- package/dist/tasks/client-bundle.task.js.map +1 -1
- package/dist/tasks/print-completion.socketio.task.js +27 -28
- package/dist/tasks/print-completion.socketio.task.js.map +1 -1
- package/dist/tasks/printer-file-clean.task.js +6 -10
- package/dist/tasks/printer-file-clean.task.js.map +1 -1
- package/dist/tasks/printer-websocket-restore.task.js +3 -14
- package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
- package/dist/tasks/printer-websocket.task.js +2 -14
- package/dist/tasks/printer-websocket.task.js.map +1 -1
- package/dist/tasks/socketio.task.js +6 -33
- package/dist/tasks/socketio.task.js.map +1 -1
- package/dist/tasks/software-update.task.js +1 -1
- package/dist/tasks/software-update.task.js.map +1 -1
- package/dist/tasks.js +3 -3
- package/dist/tasks.js.map +1 -1
- package/dist/utils/array.util.js.map +1 -1
- package/dist/utils/cache/key-diff.cache.js.map +1 -1
- package/dist/utils/env.utils.js +0 -2
- package/dist/utils/env.utils.js.map +1 -1
- package/dist/utils/normalize-url.js +3 -2
- package/dist/utils/normalize-url.js.map +1 -1
- package/dist/utils/printer-type.utils.js.map +1 -1
- package/dist/utils/time.utils.js +7 -17
- package/dist/utils/time.utils.js.map +1 -1
- package/dist/utils/url.utils.js +3 -4
- package/dist/utils/url.utils.js.map +1 -1
- package/package.json +44 -47
- package/tsconfig.json +2 -1
- package/.yarn/releases/yarn-4.7.0.cjs +0 -935
- package/dist/consoles/check-ports.js +0 -170
- package/dist/consoles/check-ports.js.map +0 -1
- package/dist/consoles/http-file-receiver.console.js +0 -81
- package/dist/consoles/http-file-receiver.console.js.map +0 -1
- package/dist/consoles/sqlite-torm.js +0 -31
- package/dist/consoles/sqlite-torm.js.map +0 -1
- package/dist/consoles/upload-test.js +0 -52
- package/dist/consoles/upload-test.js.map +0 -1
- package/dist/controllers/plugin-firmware-update.controller.js +0 -234
- package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
- package/dist/entities/base.entity.js +0 -29
- package/dist/entities/base.entity.js.map +0 -1
- package/dist/entities/printer-file.entity.js +0 -140
- package/dist/entities/printer-file.entity.js.map +0 -1
- package/dist/handlers/cache-manager.js +0 -18
- package/dist/handlers/cache-manager.js.map +0 -1
- package/dist/models/PrinterFile.js +0 -44
- package/dist/models/PrinterFile.js.map +0 -1
- package/dist/services/core/task-manager.service.js.map +0 -1
- package/dist/services/octoprint/dto/plugin.dto.js.map +0 -1
- package/dist/services/octoprint/plugin-base.service.js +0 -101
- package/dist/services/octoprint/plugin-base.service.js.map +0 -1
- package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
- package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
- package/dist/services/octoprint/plugin-repository.cache.js +0 -46
- package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
- package/dist/utils/benchmark.util.js +0 -39
- package/dist/utils/benchmark.util.js.map +0 -1
- package/dist/utils/is-docker.js +0 -40
- package/dist/utils/is-docker.js.map +0 -1
- package/dist/utils/metric.utils.js +0 -35
- package/dist/utils/metric.utils.js.map +0 -1
|
@@ -13,27 +13,25 @@ const _errorutils = require("../utils/error.utils");
|
|
|
13
13
|
const _eventconstants = require("../constants/event.constants");
|
|
14
14
|
const _printerapiinterface = require("../services/printer-api.interface");
|
|
15
15
|
class PrinterSocketStore {
|
|
16
|
-
socketIoGateway;
|
|
17
16
|
socketFactory;
|
|
18
17
|
eventEmitter2;
|
|
19
18
|
printerCache;
|
|
20
|
-
printerSocketAdaptersById
|
|
19
|
+
printerSocketAdaptersById;
|
|
21
20
|
logger;
|
|
22
|
-
|
|
23
|
-
settingsStore;
|
|
24
|
-
constructor({ socketFactory, socketIoGateway, settingsStore, eventEmitter2, printerCache, loggerFactory, configService }){
|
|
25
|
-
this.printerCache = printerCache;
|
|
26
|
-
this.socketIoGateway = socketIoGateway;
|
|
21
|
+
constructor(loggerFactory, socketFactory, eventEmitter2, printerCache){
|
|
27
22
|
this.socketFactory = socketFactory;
|
|
28
23
|
this.eventEmitter2 = eventEmitter2;
|
|
29
|
-
this.
|
|
24
|
+
this.printerCache = printerCache;
|
|
25
|
+
this.printerSocketAdaptersById = {};
|
|
30
26
|
this.logger = loggerFactory(PrinterSocketStore.name);
|
|
31
|
-
this.configService = configService;
|
|
32
27
|
this.subscribeToEvents();
|
|
33
28
|
}
|
|
34
29
|
getSocketStatesById() {
|
|
35
30
|
const socketStatesById = {};
|
|
36
31
|
Object.values(this.printerSocketAdaptersById).forEach((s)=>{
|
|
32
|
+
if (!s.printerId) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
37
35
|
socketStatesById[s.printerId] = {
|
|
38
36
|
printerId: s.printerId,
|
|
39
37
|
printerType: s.printerType,
|
|
@@ -45,24 +43,24 @@ class PrinterSocketStore {
|
|
|
45
43
|
}
|
|
46
44
|
async loadPrinterSockets() {
|
|
47
45
|
await this.printerCache.loadCache();
|
|
48
|
-
const
|
|
46
|
+
const printerDtoList = await this.printerCache.listCachedPrinters(false);
|
|
49
47
|
this.printerSocketAdaptersById = {};
|
|
50
|
-
for (const
|
|
48
|
+
for (const printerDto of printerDtoList){
|
|
51
49
|
try {
|
|
52
|
-
|
|
53
|
-
printer:
|
|
50
|
+
this.handlePrinterCreated({
|
|
51
|
+
printer: printerDto
|
|
54
52
|
});
|
|
55
53
|
} catch (e) {
|
|
56
54
|
(0, _node.captureException)(e);
|
|
57
|
-
this.logger.error("PrinterSocketStore failed to construct new
|
|
55
|
+
this.logger.error("PrinterSocketStore failed to construct new socket.", (0, _errorutils.errorSummary)(e));
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
|
-
this.logger.log(`Loaded ${Object.keys(this.printerSocketAdaptersById).length} printer
|
|
58
|
+
this.logger.log(`Loaded ${Object.keys(this.printerSocketAdaptersById).length} printer sockets`);
|
|
61
59
|
}
|
|
62
60
|
listPrinterSockets() {
|
|
63
61
|
return Object.values(this.printerSocketAdaptersById);
|
|
64
62
|
}
|
|
65
|
-
|
|
63
|
+
reconnectPrinterAdapter(id) {
|
|
66
64
|
const socket = this.getPrinterSocket(id);
|
|
67
65
|
if (!socket) return;
|
|
68
66
|
socket.close();
|
|
@@ -77,44 +75,29 @@ class PrinterSocketStore {
|
|
|
77
75
|
const socketStates = {};
|
|
78
76
|
const apiStates = {};
|
|
79
77
|
const promisesReauth = [];
|
|
80
|
-
const failedSocketsReauth = [];
|
|
81
78
|
for (const socket of Object.values(this.printerSocketAdaptersById)){
|
|
82
79
|
try {
|
|
83
80
|
if (socket.printerType === _printerapiinterface.OctoprintType && socket.needsReauth()) {
|
|
84
81
|
reauthRequested++;
|
|
85
|
-
const promise = socket.reauthSession().catch(
|
|
86
|
-
failedSocketsReauth.push(socket.printerId);
|
|
87
|
-
});
|
|
82
|
+
const promise = socket.reauthSession().catch();
|
|
88
83
|
promisesReauth.push(promise);
|
|
89
84
|
}
|
|
90
85
|
} catch (e) {
|
|
91
|
-
if (this.settingsStore.getDebugSettingsSensitive()?.debugSocketSetup) {
|
|
92
|
-
this.logger.log("Failed to reauth printer socket", (0, _errorutils.errorSummary)(e));
|
|
93
|
-
}
|
|
94
86
|
(0, _node.captureException)(e);
|
|
95
87
|
}
|
|
96
88
|
}
|
|
97
89
|
await Promise.all(promisesReauth);
|
|
98
90
|
const promisesOpenSocket = [];
|
|
99
|
-
const failedSocketReopened = [];
|
|
100
91
|
for (const socket of Object.values(this.printerSocketAdaptersById)){
|
|
101
92
|
try {
|
|
102
93
|
if (socket.needsSetup() || socket.needsReopen()) {
|
|
103
|
-
if (this.settingsStore.getDebugSettingsSensitive()?.debugSocketSetup) {
|
|
104
|
-
this.logger.log(`Reopening socket for printerId '${socket.printerId}' (setup: ${socket.needsSetup()}, reopen: ${socket.needsReopen()})`);
|
|
105
|
-
}
|
|
106
94
|
socketSetupRequested++;
|
|
107
95
|
const promise = socket.setupSocketSession().then(()=>{
|
|
108
96
|
socket.open();
|
|
109
|
-
}).catch(
|
|
110
|
-
failedSocketReopened.push(socket.printerId);
|
|
111
|
-
});
|
|
97
|
+
}).catch();
|
|
112
98
|
promisesOpenSocket.push(promise);
|
|
113
99
|
}
|
|
114
100
|
} catch (e) {
|
|
115
|
-
if (this.settingsStore.getDebugSettingsSensitive()?.debugSocketSetup) {
|
|
116
|
-
this.logger.log(`Failed to setup printer socket ${(0, _errorutils.errorSummary)(e)}`);
|
|
117
|
-
}
|
|
118
101
|
(0, _node.captureException)(e);
|
|
119
102
|
}
|
|
120
103
|
const keySocket = socket.socketState;
|
|
@@ -125,14 +108,6 @@ class PrinterSocketStore {
|
|
|
125
108
|
apiStates[keyApi] = valApi ? valApi + 1 : 1;
|
|
126
109
|
}
|
|
127
110
|
await Promise.all(promisesOpenSocket);
|
|
128
|
-
return {
|
|
129
|
-
reauth: reauthRequested,
|
|
130
|
-
failedSocketReopened,
|
|
131
|
-
failedSocketsReauth,
|
|
132
|
-
socketSetup: socketSetupRequested,
|
|
133
|
-
socket: socketStates,
|
|
134
|
-
api: apiStates
|
|
135
|
-
};
|
|
136
111
|
}
|
|
137
112
|
createOrUpdateSocket(printer) {
|
|
138
113
|
const { enabled, id } = printer;
|
|
@@ -153,28 +128,30 @@ class PrinterSocketStore {
|
|
|
153
128
|
printerId: printer.id.toString(),
|
|
154
129
|
loginDto: {
|
|
155
130
|
apiKey: printer.apiKey,
|
|
131
|
+
username: printer.username,
|
|
132
|
+
password: printer.password,
|
|
156
133
|
printerURL: printer.printerURL,
|
|
157
134
|
printerType: printer.printerType
|
|
158
135
|
}
|
|
159
136
|
});
|
|
160
137
|
foundAdapter.resetSocketState();
|
|
161
138
|
}
|
|
162
|
-
handleBatchPrinterCreated(
|
|
163
|
-
for (const
|
|
139
|
+
handleBatchPrinterCreated(event) {
|
|
140
|
+
for (const printer of event.printers){
|
|
164
141
|
this.handlePrinterCreated({
|
|
165
|
-
printer
|
|
142
|
+
printer
|
|
166
143
|
});
|
|
167
144
|
}
|
|
168
145
|
}
|
|
169
|
-
handlePrinterCreated(
|
|
170
|
-
this.createOrUpdateSocket(printer);
|
|
146
|
+
handlePrinterCreated(event) {
|
|
147
|
+
this.createOrUpdateSocket(event.printer);
|
|
171
148
|
}
|
|
172
|
-
handlePrinterUpdated(
|
|
149
|
+
handlePrinterUpdated(event) {
|
|
173
150
|
this.logger.log(`Printer updated. Updating socket`);
|
|
174
|
-
this.createOrUpdateSocket(printer);
|
|
151
|
+
this.createOrUpdateSocket(event.printer);
|
|
175
152
|
}
|
|
176
|
-
handlePrintersDeleted(
|
|
177
|
-
printerIds.forEach((id)=>{
|
|
153
|
+
handlePrintersDeleted(event) {
|
|
154
|
+
event.printerIds.forEach((id)=>{
|
|
178
155
|
this.deleteSocket(id);
|
|
179
156
|
});
|
|
180
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/printer-socket.store.ts"],"names":["PrinterSocketStore","
|
|
1
|
+
{"version":3,"sources":["../../src/state/printer-socket.store.ts"],"names":["PrinterSocketStore","printerSocketAdaptersById","logger","constructor","loggerFactory","socketFactory","eventEmitter2","printerCache","name","subscribeToEvents","getSocketStatesById","socketStatesById","Object","values","forEach","s","printerId","printerType","socket","socketState","api","apiState","loadPrinterSockets","loadCache","printerDtoList","listCachedPrinters","printerDto","handlePrinterCreated","printer","e","captureException","error","errorSummary","log","keys","length","listPrinterSockets","reconnectPrinterAdapter","id","getPrinterSocket","close","resetSocketState","reconnectPrinterSockets","reauthRequested","socketSetupRequested","socketStates","apiStates","promisesReauth","OctoprintType","needsReauth","promise","reauthSession","catch","push","Promise","all","promisesOpenSocket","needsSetup","needsReopen","setupSocketSession","then","open","keySocket","valSocket","keyApi","valApi","createOrUpdateSocket","enabled","foundAdapter","toString","deleteSocket","createInstance","registerCredentials","loginDto","apiKey","username","password","printerURL","handleBatchPrinterCreated","event","printers","handlePrinterUpdated","handlePrintersDeleted","printerIds","on","printerEvents","printerCreated","bind","printersDeleted","printerUpdated","batchPrinterCreated","disallowEmittingEvents"],"mappings":"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"}
|
|
@@ -31,16 +31,12 @@ const gcodeMaxLinesToRead = 10000;
|
|
|
31
31
|
class PrinterThumbnailCache extends _keydiffcache.KeyDiffCache {
|
|
32
32
|
printerCache;
|
|
33
33
|
printerApiFactory;
|
|
34
|
-
logger;
|
|
35
34
|
eventEmitter2;
|
|
36
35
|
settingsStore;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.printerCache = printerCache;
|
|
40
|
-
this.printerApiFactory = printerApiFactory;
|
|
36
|
+
logger;
|
|
37
|
+
constructor(loggerFactory, printerCache, printerApiFactory, eventEmitter2, settingsStore){
|
|
38
|
+
super(), this.printerCache = printerCache, this.printerApiFactory = printerApiFactory, this.eventEmitter2 = eventEmitter2, this.settingsStore = settingsStore;
|
|
41
39
|
this.logger = loggerFactory(PrinterThumbnailCache.name);
|
|
42
|
-
this.eventEmitter2 = eventEmitter2;
|
|
43
|
-
this.settingsStore = settingsStore;
|
|
44
40
|
this.eventEmitter2.on(_eventconstants.printerEvents.printersDeleted, this.handlePrintersDeleted.bind(this));
|
|
45
41
|
}
|
|
46
42
|
async resetCache() {
|
|
@@ -64,9 +60,9 @@ class PrinterThumbnailCache extends _keydiffcache.KeyDiffCache {
|
|
|
64
60
|
}
|
|
65
61
|
}
|
|
66
62
|
}
|
|
67
|
-
async handlePrintersDeleted(
|
|
63
|
+
async handlePrintersDeleted(event) {
|
|
68
64
|
if (!this.settingsStore.isThumbnailSupportEnabled()) return;
|
|
69
|
-
for (const printerId of printerIds){
|
|
65
|
+
for (const printerId of event.printerIds){
|
|
70
66
|
await this.removeThumbnailFile(printerId);
|
|
71
67
|
await this.unsetPrinterThumbnail(printerId);
|
|
72
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/printer-thumbnail.cache.ts"],"names":["PrinterThumbnailCache","gcodeMaxLinesToRead","KeyDiffCache","
|
|
1
|
+
{"version":3,"sources":["../../src/state/printer-thumbnail.cache.ts"],"names":["PrinterThumbnailCache","gcodeMaxLinesToRead","KeyDiffCache","logger","constructor","loggerFactory","printerCache","printerApiFactory","eventEmitter2","settingsStore","name","on","printerEvents","printersDeleted","handlePrintersDeleted","bind","resetCache","keys","Object","keyValueStore","deleteKeysBatch","loadCache","isThumbnailSupportEnabled","printers","listCachedPrinters","baseFolder","join","superRootPath","AppConstants","defaultPrinterThumbnailsStorage","resetDiffs","forEach","key","printer","printerIdStr","id","toString","thumbnailFile","existsSync","data","readFileSync","setPrinterThumbnail","event","printerId","printerIds","removeThumbnailFile","unsetPrinterThumbnail","imageData","setKeyValue","thumbnailBase64","deleteKeyValue","loadPrinterThumbnailRemote","login","file","thumbnailData","extractRemoteThumbnailBase64","writeThumbnailFile","e","error","captureException","loadPrinterThumbnailLocal","extractThumbnailBase64","length","thumbnailPath","ensureDirExists","writeFile","rmSync","lines","readRemoteGcodeLines","Error","collecting","currentThumbnailBase64","index","line","startsWith","includes","trim","replace","numberOfLines","fromEnd","endCondition","getScopedPrinter","fileData","getFile","fileSize","size","position","iterationsLeft","bytesToRead","Math","min","gcodeScanningChunkSize","start","end","remoteChunk","getFileChunk","chunkLines","split","concat","endIndex","findIndex","slice","gcodePath","fileStream","createReadStream","rl","createInterface","input","crlfDelay","Infinity","close","Buffer","from"],"mappings":"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"}
|
|
@@ -14,10 +14,8 @@ const _runtimeexceptions = require("../exceptions/runtime.exceptions");
|
|
|
14
14
|
class PrinterCache extends _keydiffcache.KeyDiffCache {
|
|
15
15
|
printerService;
|
|
16
16
|
eventEmitter2;
|
|
17
|
-
constructor(
|
|
18
|
-
super();
|
|
19
|
-
this.printerService = printerService;
|
|
20
|
-
this.eventEmitter2 = eventEmitter2;
|
|
17
|
+
constructor(printerService, eventEmitter2){
|
|
18
|
+
super(), this.printerService = printerService, this.eventEmitter2 = eventEmitter2;
|
|
21
19
|
this.eventEmitter2.on(_eventconstants.printerEvents.batchPrinterCreated, this.handleBatchPrinterCreated.bind(this));
|
|
22
20
|
this.eventEmitter2.on(_eventconstants.printerEvents.printerCreated, this.handlePrinterCreatedOrUpdated.bind(this));
|
|
23
21
|
this.eventEmitter2.on(_eventconstants.printerEvents.printerUpdated, this.handlePrinterCreatedOrUpdated.bind(this));
|
|
@@ -70,6 +68,8 @@ class PrinterCache extends _keydiffcache.KeyDiffCache {
|
|
|
70
68
|
return {
|
|
71
69
|
printerURL: printer.printerURL,
|
|
72
70
|
apiKey: printer.apiKey,
|
|
71
|
+
username: printer.username,
|
|
72
|
+
password: printer.password,
|
|
73
73
|
printerType: printer.printerType
|
|
74
74
|
};
|
|
75
75
|
}
|
|
@@ -78,23 +78,25 @@ class PrinterCache extends _keydiffcache.KeyDiffCache {
|
|
|
78
78
|
return {
|
|
79
79
|
printerURL: printer.printerURL,
|
|
80
80
|
apiKey: printer.apiKey,
|
|
81
|
-
printerType: printer.printerType
|
|
81
|
+
printerType: printer.printerType,
|
|
82
|
+
username: printer.username,
|
|
83
|
+
password: printer.password
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
|
-
async handleBatchPrinterCreated(
|
|
85
|
-
const mappedPrinters = this.mapArray(printers);
|
|
86
|
+
async handleBatchPrinterCreated(event) {
|
|
87
|
+
const mappedPrinters = this.mapArray(event.printers);
|
|
86
88
|
const keyValues = mappedPrinters.map((p)=>({
|
|
87
89
|
key: this.getId(p),
|
|
88
90
|
value: p
|
|
89
91
|
}));
|
|
90
92
|
await this.setKeyValuesBatch(keyValues, true);
|
|
91
93
|
}
|
|
92
|
-
async handlePrinterCreatedOrUpdated(
|
|
93
|
-
const printerDto = this.map(printer);
|
|
94
|
+
async handlePrinterCreatedOrUpdated(event) {
|
|
95
|
+
const printerDto = this.map(event.printer);
|
|
94
96
|
await this.setKeyValue(printerDto.id, printerDto, true);
|
|
95
97
|
}
|
|
96
|
-
async handlePrintersDeleted(
|
|
97
|
-
await this.deleteKeysBatch(printerIds, true);
|
|
98
|
+
async handlePrintersDeleted(event) {
|
|
99
|
+
await this.deleteKeysBatch(event.printerIds, true);
|
|
98
100
|
}
|
|
99
101
|
getId(value) {
|
|
100
102
|
return value.id.toString();
|
|
@@ -105,7 +107,7 @@ class PrinterCache extends _keydiffcache.KeyDiffCache {
|
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
map(entity) {
|
|
108
|
-
return this.printerService.
|
|
110
|
+
return this.printerService.toDto(entity);
|
|
109
111
|
}
|
|
110
112
|
}
|
|
111
113
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/printer.cache.ts"],"names":["PrinterCache","KeyDiffCache","
|
|
1
|
+
{"version":3,"sources":["../../src/state/printer.cache.ts"],"names":["PrinterCache","KeyDiffCache","constructor","printerService","eventEmitter2","on","printerEvents","batchPrinterCreated","handleBatchPrinterCreated","bind","printerCreated","handlePrinterCreatedOrUpdated","printerUpdated","printersDeleted","handlePrintersDeleted","loadCache","printerDocs","list","dtos","mapArray","keyValues","map","p","key","getId","value","setKeyValuesBatch","countDisabledPrinters","getAllValues","filter","enabled","length","listCachedPrinters","includeDisabled","printers","getCachedPrinterOrThrowAsync","id","printer","getValue","NotFoundException","getCachedPrinterOrThrow","keyValueStore","getNameAsync","name","getName","getLoginDtoAsync","printerURL","apiKey","username","password","printerType","getLoginDto","event","mappedPrinters","printerDto","setKeyValue","deleteKeysBatch","printerIds","toString","entities","entity","toDto"],"mappings":"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"}
|
|
@@ -14,25 +14,27 @@ const _node = require("@sentry/node");
|
|
|
14
14
|
const _envutils = require("../utils/env.utils");
|
|
15
15
|
const _serverconstants = require("../server.constants");
|
|
16
16
|
class SettingsStore {
|
|
17
|
-
isTypeOrmMode;
|
|
18
17
|
settingsService;
|
|
18
|
+
isTypeormMode;
|
|
19
19
|
logger;
|
|
20
|
-
settings
|
|
21
|
-
constructor(
|
|
20
|
+
settings;
|
|
21
|
+
constructor(loggerFactory, settingsService, isTypeormMode){
|
|
22
22
|
this.settingsService = settingsService;
|
|
23
|
+
this.isTypeormMode = isTypeormMode;
|
|
24
|
+
this.settings = null;
|
|
23
25
|
this.logger = loggerFactory(SettingsStore.name);
|
|
24
|
-
this.isTypeOrmMode = isTypeormMode;
|
|
25
26
|
}
|
|
26
27
|
getSettings() {
|
|
28
|
+
this.throwIfSettingsUnset();
|
|
27
29
|
const settings = this.settings;
|
|
28
|
-
if (!settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded");
|
|
29
30
|
return Object.freeze({
|
|
30
31
|
[_serversettingsconstants.serverSettingsKey]: {
|
|
31
32
|
loginRequired: settings[_serversettingsconstants.serverSettingsKey].loginRequired,
|
|
32
33
|
registration: settings[_serversettingsconstants.serverSettingsKey].registration,
|
|
33
34
|
sentryDiagnosticsEnabled: settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled,
|
|
34
35
|
experimentalMoonrakerSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport,
|
|
35
|
-
|
|
36
|
+
experimentalPrusaLinkSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalPrusaLinkSupport,
|
|
37
|
+
experimentalTypeormSupport: this.isTypeormMode,
|
|
36
38
|
experimentalClientSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalClientSupport,
|
|
37
39
|
experimentalThumbnailSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport
|
|
38
40
|
},
|
|
@@ -43,8 +45,8 @@ class SettingsStore {
|
|
|
43
45
|
});
|
|
44
46
|
}
|
|
45
47
|
getSettingsSensitive() {
|
|
48
|
+
this.throwIfSettingsUnset();
|
|
46
49
|
const settings = this.settings;
|
|
47
|
-
if (!settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded");
|
|
48
50
|
return Object.freeze({
|
|
49
51
|
[_serversettingsconstants.credentialSettingsKey]: {
|
|
50
52
|
jwtExpiresIn: settings[_serversettingsconstants.credentialSettingsKey].jwtExpiresIn,
|
|
@@ -52,58 +54,66 @@ class SettingsStore {
|
|
|
52
54
|
refreshTokenExpiry: settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry
|
|
53
55
|
},
|
|
54
56
|
[_serversettingsconstants.serverSettingsKey]: {
|
|
55
|
-
debugSettings: settings[_serversettingsconstants.serverSettingsKey].debugSettings,
|
|
56
57
|
experimentalMoonrakerSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport,
|
|
57
|
-
experimentalTypeormSupport: this.
|
|
58
|
+
experimentalTypeormSupport: this.isTypeormMode,
|
|
58
59
|
experimentalClientSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalClientSupport,
|
|
59
60
|
experimentalThumbnailSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport
|
|
60
61
|
}
|
|
61
62
|
});
|
|
62
63
|
}
|
|
63
|
-
getDebugSettingsSensitive() {
|
|
64
|
-
return this.getSettingsSensitive()[_serversettingsconstants.serverSettingsKey].debugSettings;
|
|
65
|
-
}
|
|
66
64
|
async loadSettings() {
|
|
67
65
|
this.settings = await this.settingsService.getOrCreate();
|
|
68
66
|
await this.processSentryEnabled();
|
|
69
67
|
}
|
|
70
68
|
async getCredentialSettings() {
|
|
69
|
+
this.throwIfSettingsUnset();
|
|
71
70
|
return this.settings[_serversettingsconstants.credentialSettingsKey];
|
|
72
71
|
}
|
|
73
72
|
async getAnonymousDiagnosticsEnabled() {
|
|
73
|
+
this.throwIfSettingsUnset();
|
|
74
74
|
return this.settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled;
|
|
75
75
|
}
|
|
76
76
|
async persistOptionalCredentialSettings(overrideJwtSecret, overrideJwtExpiresIn) {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
this.throwIfSettingsUnset();
|
|
78
|
+
const credentialSettings = await this.getCredentialSettings();
|
|
79
|
+
if (overrideJwtSecret?.length) {
|
|
80
|
+
await this.settingsService.updateJwtSecretCredentialSetting({
|
|
79
81
|
jwtSecret: overrideJwtSecret
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
|
-
if (overrideJwtExpiresIn) {
|
|
84
|
+
if (overrideJwtExpiresIn?.length) {
|
|
83
85
|
await this.updateCredentialSettings({
|
|
86
|
+
refreshTokenExpiry: credentialSettings.refreshTokenExpiry,
|
|
87
|
+
refreshTokenAttempts: credentialSettings.refreshTokenAttempts,
|
|
84
88
|
jwtExpiresIn: parseInt(overrideJwtExpiresIn)
|
|
85
89
|
});
|
|
86
90
|
}
|
|
91
|
+
this.settings[_serversettingsconstants.credentialSettingsKey] = await this.getCredentialSettings();
|
|
87
92
|
}
|
|
88
93
|
getWizardState() {
|
|
94
|
+
this.throwIfSettingsUnset();
|
|
95
|
+
const settings = this.settings;
|
|
89
96
|
return {
|
|
90
|
-
wizardCompleted:
|
|
91
|
-
wizardVersion:
|
|
97
|
+
wizardCompleted: settings[_serversettingsconstants.wizardSettingKey].wizardCompleted,
|
|
98
|
+
wizardVersion: settings[_serversettingsconstants.wizardSettingKey].wizardVersion,
|
|
92
99
|
latestWizardVersion: _serverconstants.AppConstants.currentWizardVersion
|
|
93
100
|
};
|
|
94
101
|
}
|
|
95
102
|
isWizardCompleted() {
|
|
96
|
-
|
|
103
|
+
this.throwIfSettingsUnset();
|
|
104
|
+
const settings = this.settings;
|
|
105
|
+
return settings[_serversettingsconstants.wizardSettingKey].wizardCompleted && settings[_serversettingsconstants.wizardSettingKey].wizardVersion === _serverconstants.AppConstants.currentWizardVersion;
|
|
97
106
|
}
|
|
98
107
|
getWizardSettings() {
|
|
108
|
+
this.throwIfSettingsUnset();
|
|
99
109
|
return this.settings[_serversettingsconstants.wizardSettingKey];
|
|
100
110
|
}
|
|
101
111
|
isRegistrationEnabled() {
|
|
102
|
-
|
|
112
|
+
this.throwIfSettingsUnset();
|
|
103
113
|
return this.settings[_serversettingsconstants.serverSettingsKey].registration;
|
|
104
114
|
}
|
|
105
115
|
isThumbnailSupportEnabled() {
|
|
106
|
-
|
|
116
|
+
this.throwIfSettingsUnset();
|
|
107
117
|
return this.settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport;
|
|
108
118
|
}
|
|
109
119
|
getServerSettings() {
|
|
@@ -122,73 +132,87 @@ class SettingsStore {
|
|
|
122
132
|
return this.getSettings()[_serversettingsconstants.printerFileCleanSettingKey]?.autoRemoveOldFilesBeforeUpload;
|
|
123
133
|
}
|
|
124
134
|
async setWizardCompleted(version) {
|
|
125
|
-
this.settings = await this.settingsService.
|
|
135
|
+
this.settings = await this.settingsService.updateWizardSettings({
|
|
126
136
|
wizardCompleted: true,
|
|
127
137
|
wizardCompletedAt: new Date(),
|
|
128
138
|
wizardVersion: version
|
|
129
139
|
});
|
|
130
140
|
return this.getSettings();
|
|
131
141
|
}
|
|
132
|
-
async setRegistrationEnabled(registration = true) {
|
|
133
|
-
this.settings = await this.settingsService.patchServerSettings({
|
|
134
|
-
registration
|
|
135
|
-
});
|
|
136
|
-
return this.getSettings();
|
|
137
|
-
}
|
|
138
142
|
async getLoginRequired() {
|
|
139
143
|
return this.getServerSettings().loginRequired;
|
|
140
144
|
}
|
|
141
145
|
async setLoginRequired(loginRequired = true) {
|
|
142
|
-
this.
|
|
143
|
-
|
|
144
|
-
|
|
146
|
+
this.throwIfSettingsUnset();
|
|
147
|
+
this.settings[_serversettingsconstants.serverSettingsKey].loginRequired = loginRequired;
|
|
148
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
149
|
+
return this.getSettings();
|
|
150
|
+
}
|
|
151
|
+
async setRegistrationEnabled(registration = true) {
|
|
152
|
+
this.throwIfSettingsUnset();
|
|
153
|
+
this.settings[_serversettingsconstants.serverSettingsKey].registration = registration;
|
|
154
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
145
155
|
return this.getSettings();
|
|
146
156
|
}
|
|
147
157
|
async updateServerSettings(serverSettings) {
|
|
148
|
-
this.settings = await this.settingsService.
|
|
158
|
+
this.settings = await this.settingsService.updateServerSettings(serverSettings);
|
|
149
159
|
return this.getSettings();
|
|
150
160
|
}
|
|
151
161
|
async updateTimeoutSettings(timeoutSettings) {
|
|
152
162
|
this.settings = await this.settingsService.updateTimeoutSettings(timeoutSettings);
|
|
153
163
|
return this.getSettings();
|
|
154
164
|
}
|
|
155
|
-
async
|
|
156
|
-
this.settings = await this.settingsService.
|
|
165
|
+
async updateFileCleanSettings(fileClean) {
|
|
166
|
+
this.settings = await this.settingsService.updateFileCleanSettings(fileClean);
|
|
157
167
|
return this.getSettings();
|
|
158
168
|
}
|
|
159
169
|
async updateCredentialSettings(credentialSettings) {
|
|
160
|
-
this.settings = await this.settingsService.
|
|
161
|
-
|
|
170
|
+
this.settings = await this.settingsService.updateCredentialSettings(credentialSettings);
|
|
171
|
+
}
|
|
172
|
+
async setRefreshTokenSettings({ refreshTokenAttempts, refreshTokenExpiry }) {
|
|
173
|
+
this.throwIfSettingsUnset();
|
|
174
|
+
this.settings[_serversettingsconstants.credentialSettingsKey].refreshTokenAttempts = refreshTokenAttempts;
|
|
175
|
+
this.settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry = refreshTokenExpiry;
|
|
176
|
+
await this.updateCredentialSettings(this.settings[_serversettingsconstants.credentialSettingsKey]);
|
|
162
177
|
}
|
|
163
178
|
async setSentryDiagnosticsEnabled(sentryDiagnosticsEnabled) {
|
|
164
|
-
this.
|
|
165
|
-
|
|
166
|
-
|
|
179
|
+
this.throwIfSettingsUnset();
|
|
180
|
+
this.settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled = sentryDiagnosticsEnabled;
|
|
181
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
167
182
|
await this.processSentryEnabled();
|
|
168
183
|
return this.getSettings();
|
|
169
184
|
}
|
|
170
|
-
async setExperimentalMoonrakerSupport(
|
|
171
|
-
this.
|
|
172
|
-
|
|
173
|
-
|
|
185
|
+
async setExperimentalMoonrakerSupport(experimentalMoonrakerSupport) {
|
|
186
|
+
this.throwIfSettingsUnset();
|
|
187
|
+
this.settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport = experimentalMoonrakerSupport;
|
|
188
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
174
189
|
return this.getSettings();
|
|
175
190
|
}
|
|
176
|
-
async setExperimentalThumbnailSupport(
|
|
177
|
-
this.
|
|
178
|
-
|
|
179
|
-
|
|
191
|
+
async setExperimentalThumbnailSupport(experimentalThumbnailSupport) {
|
|
192
|
+
this.throwIfSettingsUnset();
|
|
193
|
+
this.settings[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport = experimentalThumbnailSupport;
|
|
194
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
180
195
|
return this.getSettings();
|
|
181
196
|
}
|
|
182
|
-
async
|
|
183
|
-
this.
|
|
184
|
-
|
|
185
|
-
|
|
197
|
+
async setExperimentalPrusaLinkSupport(experimentalPrusaLinkSupport) {
|
|
198
|
+
this.throwIfSettingsUnset();
|
|
199
|
+
this.settings[_serversettingsconstants.serverSettingsKey].experimentalPrusaLinkSupport = experimentalPrusaLinkSupport;
|
|
200
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
201
|
+
return this.getSettings();
|
|
202
|
+
}
|
|
203
|
+
async setExperimentalClientSupport(experimentalClientSupport) {
|
|
204
|
+
this.throwIfSettingsUnset();
|
|
205
|
+
this.settings[_serversettingsconstants.serverSettingsKey].experimentalClientSupport = experimentalClientSupport;
|
|
206
|
+
this.settings = await this.settingsService.updateServerSettings(this.settings[_serversettingsconstants.serverSettingsKey]);
|
|
186
207
|
return this.getSettings();
|
|
187
208
|
}
|
|
188
209
|
async updateFrontendSettings(frontendSettings) {
|
|
189
210
|
this.settings = await this.settingsService.updateFrontendSettings(frontendSettings);
|
|
190
211
|
return this.getSettings();
|
|
191
212
|
}
|
|
213
|
+
throwIfSettingsUnset() {
|
|
214
|
+
if (!this.settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded)");
|
|
215
|
+
}
|
|
192
216
|
async processSentryEnabled() {
|
|
193
217
|
const sentryEnabled = await this.getAnonymousDiagnosticsEnabled();
|
|
194
218
|
if (sentryEnabled) {
|