@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
|
@@ -12,11 +12,8 @@ const _models = require("../../models");
|
|
|
12
12
|
const _serversettingsconstants = require("../../constants/server-settings.constants");
|
|
13
13
|
const _validators = require("../../handlers/validators");
|
|
14
14
|
const _settingsservicevalidation = require("../validators/settings-service.validation");
|
|
15
|
+
const _runtimesettingsmigration = require("../../shared/runtime-settings.migration");
|
|
15
16
|
class SettingsService {
|
|
16
|
-
configService;
|
|
17
|
-
constructor({ configService }){
|
|
18
|
-
this.configService = configService;
|
|
19
|
-
}
|
|
20
17
|
toDto(entity) {
|
|
21
18
|
return {
|
|
22
19
|
[_serversettingsconstants.serverSettingsKey]: {
|
|
@@ -30,122 +27,98 @@ class SettingsService {
|
|
|
30
27
|
};
|
|
31
28
|
}
|
|
32
29
|
async getOrCreate() {
|
|
33
|
-
let settings = await
|
|
30
|
+
let settings = await this.getOptional();
|
|
34
31
|
if (!settings) {
|
|
35
32
|
const defaultSettings = new _models.Settings((0, _serversettingsconstants.getDefaultSettings)());
|
|
36
33
|
await defaultSettings.save();
|
|
37
34
|
return defaultSettings;
|
|
38
35
|
} else {
|
|
39
|
-
settings =
|
|
40
|
-
return _models.Settings.findOneAndUpdate({
|
|
36
|
+
settings = (0, _runtimesettingsmigration.migrateSettingsRuntime)(settings);
|
|
37
|
+
return await _models.Settings.findOneAndUpdate({
|
|
41
38
|
_id: settings.id
|
|
42
39
|
}, settings, {
|
|
43
40
|
new: true
|
|
44
41
|
});
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
if (!doc[_serversettingsconstants.printerFileCleanSettingKey]) {
|
|
50
|
-
doc[_serversettingsconstants.printerFileCleanSettingKey] = (0, _serversettingsconstants.getDefaultFileCleanSettings)();
|
|
51
|
-
} else {
|
|
52
|
-
doc[_serversettingsconstants.printerFileCleanSettingKey] = {
|
|
53
|
-
autoRemoveOldFilesBeforeUpload: doc[_serversettingsconstants.printerFileCleanSettingKey].autoRemoveOldFilesBeforeUpload,
|
|
54
|
-
autoRemoveOldFilesAtBoot: doc[_serversettingsconstants.printerFileCleanSettingKey].autoRemoveOldFilesBeforeUpload,
|
|
55
|
-
autoRemoveOldFilesCriteriumDays: doc[_serversettingsconstants.printerFileCleanSettingKey].autoRemoveOldFilesCriteriumDays
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
if (!doc[_serversettingsconstants.wizardSettingKey]) {
|
|
59
|
-
doc[_serversettingsconstants.wizardSettingKey] = (0, _serversettingsconstants.getDefaultWizardSettings)();
|
|
60
|
-
}
|
|
61
|
-
if (!doc[_serversettingsconstants.timeoutSettingKey]) {
|
|
62
|
-
doc[_serversettingsconstants.timeoutSettingKey] = (0, _serversettingsconstants.getDefaultTimeout)();
|
|
63
|
-
}
|
|
64
|
-
if (!doc[_serversettingsconstants.serverSettingsKey]) {
|
|
65
|
-
doc[_serversettingsconstants.serverSettingsKey] = (0, _serversettingsconstants.getDefaultServerSettings)();
|
|
66
|
-
} else {
|
|
67
|
-
doc[_serversettingsconstants.serverSettingsKey] = {
|
|
68
|
-
debugSettings: doc[_serversettingsconstants.serverSettingsKey].debugSettings,
|
|
69
|
-
loginRequired: doc[_serversettingsconstants.serverSettingsKey].loginRequired,
|
|
70
|
-
registration: doc[_serversettingsconstants.serverSettingsKey].registration,
|
|
71
|
-
experimentalClientSupport: doc[_serversettingsconstants.serverSettingsKey].experimentalClientSupport,
|
|
72
|
-
experimentalMoonrakerSupport: doc[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport,
|
|
73
|
-
sentryDiagnosticsEnabled: doc[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled,
|
|
74
|
-
experimentalThumbnailSupport: doc[_serversettingsconstants.serverSettingsKey].experimentalThumbnailSupport
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (!doc[_serversettingsconstants.credentialSettingsKey]) {
|
|
78
|
-
doc[_serversettingsconstants.credentialSettingsKey] = (0, _serversettingsconstants.getDefaultCredentialSettings)();
|
|
79
|
-
}
|
|
80
|
-
if (!doc[_serversettingsconstants.frontendSettingKey]) {
|
|
81
|
-
doc[_serversettingsconstants.frontendSettingKey] = (0, _serversettingsconstants.getDefaultFrontendSettings)();
|
|
82
|
-
}
|
|
83
|
-
return knownSettings;
|
|
84
|
-
}
|
|
85
|
-
async patchFileCleanSettings(patchUpdate) {
|
|
86
|
-
const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.fileCleanSettingsUpdateRules);
|
|
44
|
+
async updateFileCleanSettings(update) {
|
|
45
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.fileCleanSettingsUpdateSchema);
|
|
87
46
|
const settingsDoc = await this.getOrCreate();
|
|
88
47
|
settingsDoc[_serversettingsconstants.printerFileCleanSettingKey] = Object.assign(settingsDoc[_serversettingsconstants.printerFileCleanSettingKey], validatedInput);
|
|
89
|
-
return _models.Settings.findOneAndUpdate({
|
|
48
|
+
return await _models.Settings.findOneAndUpdate({
|
|
90
49
|
_id: settingsDoc.id
|
|
91
50
|
}, settingsDoc, {
|
|
92
51
|
new: true
|
|
93
52
|
});
|
|
94
53
|
}
|
|
95
|
-
async
|
|
96
|
-
const validatedInput = await (0, _validators.validateInput)(
|
|
54
|
+
async updateWizardSettings(update) {
|
|
55
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.wizardUpdateSchema);
|
|
97
56
|
const settingsDoc = await this.getOrCreate();
|
|
98
57
|
settingsDoc[_serversettingsconstants.wizardSettingKey] = Object.assign(settingsDoc[_serversettingsconstants.wizardSettingKey], validatedInput);
|
|
99
|
-
return _models.Settings.findOneAndUpdate({
|
|
58
|
+
return await _models.Settings.findOneAndUpdate({
|
|
100
59
|
_id: settingsDoc.id
|
|
101
60
|
}, settingsDoc, {
|
|
102
61
|
new: true
|
|
103
62
|
});
|
|
104
63
|
}
|
|
105
|
-
async updateFrontendSettings(
|
|
106
|
-
const validatedInput = await (0, _validators.validateInput)(
|
|
64
|
+
async updateFrontendSettings(update) {
|
|
65
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.frontendSettingsUpdateSchema);
|
|
107
66
|
const settingsDoc = await this.getOrCreate();
|
|
108
67
|
const frontendSettings = settingsDoc[_serversettingsconstants.frontendSettingKey];
|
|
109
68
|
Object.assign(frontendSettings, validatedInput);
|
|
110
|
-
return _models.Settings.findOneAndUpdate({
|
|
69
|
+
return await _models.Settings.findOneAndUpdate({
|
|
111
70
|
_id: settingsDoc.id
|
|
112
71
|
}, settingsDoc, {
|
|
113
72
|
new: true
|
|
114
73
|
});
|
|
115
74
|
}
|
|
116
|
-
async
|
|
117
|
-
const validatedInput = await (0, _validators.validateInput)(
|
|
75
|
+
async updateJwtSecretCredentialSetting(update) {
|
|
76
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.jwtSecretCredentialSettingUpdateSchema);
|
|
118
77
|
const settingsDoc = await this.getOrCreate();
|
|
119
78
|
const credentialSettings = settingsDoc[_serversettingsconstants.credentialSettingsKey];
|
|
120
79
|
Object.assign(credentialSettings, validatedInput);
|
|
121
|
-
return _models.Settings.findOneAndUpdate({
|
|
80
|
+
return await _models.Settings.findOneAndUpdate({
|
|
122
81
|
_id: settingsDoc.id
|
|
123
82
|
}, settingsDoc, {
|
|
124
83
|
new: true
|
|
125
84
|
});
|
|
126
85
|
}
|
|
127
|
-
async
|
|
128
|
-
const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.
|
|
86
|
+
async updateCredentialSettings(patchUpdate) {
|
|
87
|
+
const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.credentialSettingUpdateSchema);
|
|
88
|
+
const settingsDoc = await this.getOrCreate();
|
|
89
|
+
const credentialSettings = settingsDoc[_serversettingsconstants.credentialSettingsKey];
|
|
90
|
+
Object.assign(credentialSettings, validatedInput);
|
|
91
|
+
return await _models.Settings.findOneAndUpdate({
|
|
92
|
+
_id: settingsDoc.id
|
|
93
|
+
}, settingsDoc, {
|
|
94
|
+
new: true
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
async updateServerSettings(update) {
|
|
98
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.serverSettingsUpdateSchema);
|
|
129
99
|
const settingsDoc = await this.getOrCreate();
|
|
130
100
|
const serverSettings = settingsDoc[_serversettingsconstants.serverSettingsKey];
|
|
131
101
|
Object.assign(serverSettings, validatedInput);
|
|
132
|
-
return _models.Settings.findOneAndUpdate({
|
|
102
|
+
return await _models.Settings.findOneAndUpdate({
|
|
133
103
|
_id: settingsDoc.id
|
|
134
104
|
}, settingsDoc, {
|
|
135
105
|
new: true
|
|
136
106
|
});
|
|
137
107
|
}
|
|
138
108
|
async updateTimeoutSettings(patchUpdate) {
|
|
139
|
-
const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.
|
|
109
|
+
const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.timeoutSettingsUpdateSchema);
|
|
140
110
|
const settingsDoc = await this.getOrCreate();
|
|
141
111
|
const timeoutSettings = settingsDoc[_serversettingsconstants.timeoutSettingKey];
|
|
142
112
|
Object.assign(timeoutSettings, validatedInput);
|
|
143
|
-
return _models.Settings.findOneAndUpdate({
|
|
113
|
+
return await _models.Settings.findOneAndUpdate({
|
|
144
114
|
_id: settingsDoc.id
|
|
145
115
|
}, settingsDoc, {
|
|
146
116
|
new: true
|
|
147
117
|
});
|
|
148
118
|
}
|
|
119
|
+
async getOptional() {
|
|
120
|
+
return _models.Settings.findOne();
|
|
121
|
+
}
|
|
149
122
|
}
|
|
150
123
|
|
|
151
124
|
//# sourceMappingURL=settings.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/settings.service.ts"],"names":["SettingsService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/settings.service.ts"],"names":["SettingsService","toDto","entity","serverSettingsKey","experimentalTypeormSupport","wizardSettingKey","frontendSettingKey","printerFileCleanSettingKey","timeoutSettingKey","getOrCreate","settings","getOptional","defaultSettings","Settings","getDefaultSettings","save","migrateSettingsRuntime","findOneAndUpdate","_id","id","new","updateFileCleanSettings","update","validatedInput","validateInput","fileCleanSettingsUpdateSchema","settingsDoc","Object","assign","updateWizardSettings","wizardUpdateSchema","updateFrontendSettings","frontendSettingsUpdateSchema","frontendSettings","updateJwtSecretCredentialSetting","jwtSecretCredentialSettingUpdateSchema","credentialSettings","credentialSettingsKey","updateCredentialSettings","patchUpdate","credentialSettingUpdateSchema","updateServerSettings","serverSettingsUpdateSchema","serverSettings","updateTimeoutSettings","timeoutSettingsUpdateSchema","timeoutSettings","findOne"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ const _authorizationconstants = require("../../constants/authorization.constants
|
|
|
16
16
|
const _cryptoutils = require("../../utils/crypto.utils");
|
|
17
17
|
class UserService {
|
|
18
18
|
roleService;
|
|
19
|
-
constructor(
|
|
19
|
+
constructor(roleService){
|
|
20
20
|
this.roleService = roleService;
|
|
21
21
|
}
|
|
22
22
|
toDto(user) {
|
|
@@ -49,7 +49,8 @@ class UserService {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
async isUserRootUser(userId) {
|
|
52
|
-
|
|
52
|
+
const entity = await this.getUser(userId);
|
|
53
|
+
return entity.isRootUser;
|
|
53
54
|
}
|
|
54
55
|
async findRootUsers() {
|
|
55
56
|
return _models.User.find({
|
|
@@ -66,9 +67,9 @@ class UserService {
|
|
|
66
67
|
username
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
|
-
async getUser(userId
|
|
70
|
+
async getUser(userId) {
|
|
70
71
|
const user = await _models.User.findById(userId);
|
|
71
|
-
if (!user
|
|
72
|
+
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
72
73
|
return user;
|
|
73
74
|
}
|
|
74
75
|
async getUserRoleIds(userId) {
|
|
@@ -111,7 +112,7 @@ class UserService {
|
|
|
111
112
|
}
|
|
112
113
|
const { password } = await (0, _validators.validateInput)({
|
|
113
114
|
password: newPassword
|
|
114
|
-
}, _userservicevalidation.
|
|
115
|
+
}, _userservicevalidation.newPasswordSchema);
|
|
115
116
|
user.passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
116
117
|
user.needsPasswordChange = false;
|
|
117
118
|
return await user.save();
|
|
@@ -119,7 +120,7 @@ class UserService {
|
|
|
119
120
|
async updatePasswordUnsafeByUsername(username, newPassword) {
|
|
120
121
|
const { password } = await (0, _validators.validateInput)({
|
|
121
122
|
password: newPassword
|
|
122
|
-
}, _userservicevalidation.
|
|
123
|
+
}, _userservicevalidation.newPasswordSchema);
|
|
123
124
|
const passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
124
125
|
const user = await this.findRawByUsername(username);
|
|
125
126
|
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
@@ -155,7 +156,7 @@ class UserService {
|
|
|
155
156
|
await user.save();
|
|
156
157
|
}
|
|
157
158
|
async register(input) {
|
|
158
|
-
const { username, password, roles, isDemoUser, isRootUser, needsPasswordChange, isVerified } = await (0, _validators.validateInput)(input, (0, _userservicevalidation.
|
|
159
|
+
const { username, password, roles, isDemoUser, isRootUser, needsPasswordChange, isVerified } = await (0, _validators.validateInput)(input, (0, _userservicevalidation.registerUserSchema)(false));
|
|
159
160
|
const passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
160
161
|
return await _models.User.create({
|
|
161
162
|
username,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/user.service.ts"],"names":["UserService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/user.service.ts"],"names":["UserService","constructor","roleService","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","toString","listUsers","limit","User","find","findUsersByRoleId","roleId","$in","findVerifiedUsers","isUserRootUser","userId","entity","getUser","findRootUsers","getDemoUserId","findOne","findRawByUsername","findById","NotFoundException","getUserRoleIds","setUserRoleIds","roleIds","getManyRoles","Array","from","Set","save","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","includes","administrators","length","findByIdAndDelete","updateUsernameById","newUsername","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordSchema","hashPassword","updatePasswordUnsafeByUsername","setIsRootUserById","rootUsers","setVerifiedById","verifiedUsers","register","input","registerUserSchema","create"],"mappings":"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"}
|
package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/services/moonraker/constants/
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/moonraker/constants/moonraker.constants.ts"],"names":["moonrakerEvent","event"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,iBAAiB,CAACC,QAAkB,CAAC,UAAU,EAAEA,OAAO"}
|
|
@@ -11,13 +11,13 @@ Object.defineProperty(exports, "MoonrakerWebsocketAdapter", {
|
|
|
11
11
|
const _serverconstants = require("../../server.constants");
|
|
12
12
|
const _urlutils = require("../../utils/url.utils");
|
|
13
13
|
const _octoprintwebsocketadapter = require("../octoprint/octoprint-websocket.adapter");
|
|
14
|
-
const
|
|
14
|
+
const _moonrakerconstants = require("./constants/moonraker.constants");
|
|
15
15
|
const _socketstatetype = require("../../shared/dtos/socket-state.type");
|
|
16
16
|
const _apistatetype = require("../../shared/dtos/api-state.type");
|
|
17
17
|
const _prettyprintutils = require("../../utils/pretty-print.utils");
|
|
18
18
|
const _lodash = /*#__PURE__*/ _interop_require_default(require("lodash"));
|
|
19
|
-
const _websocketrpcextendedadapter = require("../../shared/websocket-rpc-extended.adapter");
|
|
20
19
|
const _printerapiinterface = require("../printer-api.interface");
|
|
20
|
+
const _websocketrpcextendedadapter = require("../../shared/websocket-rpc-extended.adapter");
|
|
21
21
|
const _normalizeurl = require("../../utils/normalize-url");
|
|
22
22
|
function _interop_require_default(obj) {
|
|
23
23
|
return obj && obj.__esModule ? obj : {
|
|
@@ -25,22 +25,34 @@ function _interop_require_default(obj) {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRpcExtendedAdapter {
|
|
28
|
-
|
|
29
|
-
client;
|
|
30
|
-
eventEmitter;
|
|
28
|
+
eventEmitter2;
|
|
31
29
|
configService;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
serverVersion;
|
|
31
|
+
printerType;
|
|
32
|
+
socketState;
|
|
33
|
+
lastMessageReceivedTimestamp;
|
|
34
|
+
stateUpdated;
|
|
35
|
+
stateUpdateTimestamp;
|
|
36
|
+
apiStateUpdated;
|
|
37
|
+
apiStateUpdateTimestamp;
|
|
38
|
+
apiState;
|
|
39
39
|
login;
|
|
40
|
-
socketURL;
|
|
41
40
|
printerId;
|
|
42
|
-
serverVersion;
|
|
43
41
|
refreshPrinterObjectsInterval;
|
|
42
|
+
printerObjects;
|
|
43
|
+
client;
|
|
44
|
+
socketURL;
|
|
45
|
+
constructor(loggerFactory, moonrakerClient, eventEmitter2, configService, serverVersion){
|
|
46
|
+
super(loggerFactory), this.eventEmitter2 = eventEmitter2, this.configService = configService, this.serverVersion = serverVersion, this.printerType = 1, this.socketState = _socketstatetype.SOCKET_STATE.unopened, this.lastMessageReceivedTimestamp = null, this.stateUpdated = false, this.stateUpdateTimestamp = null, this.apiStateUpdated = false, this.apiStateUpdateTimestamp = null, this.apiState = _apistatetype.API_STATE.unset, this.printerObjects = {
|
|
47
|
+
eventtime: null,
|
|
48
|
+
status: null
|
|
49
|
+
};
|
|
50
|
+
this.logger = loggerFactory(MoonrakerWebsocketAdapter.name);
|
|
51
|
+
this.client = moonrakerClient;
|
|
52
|
+
}
|
|
53
|
+
get _debugMode() {
|
|
54
|
+
return this.configService.get(_serverconstants.AppConstants.debugSocketStatesKey, _serverconstants.AppConstants.defaultDebugSocketStates) === "true";
|
|
55
|
+
}
|
|
44
56
|
get subscriptionObjects() {
|
|
45
57
|
return {
|
|
46
58
|
pause_resume: [],
|
|
@@ -59,23 +71,6 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
59
71
|
system_stats: []
|
|
60
72
|
};
|
|
61
73
|
}
|
|
62
|
-
printerObjects = {
|
|
63
|
-
eventtime: null,
|
|
64
|
-
status: null
|
|
65
|
-
};
|
|
66
|
-
constructor({ moonrakerClient, loggerFactory, eventEmitter2, configService, serverVersion }){
|
|
67
|
-
super({
|
|
68
|
-
loggerFactory
|
|
69
|
-
});
|
|
70
|
-
this.client = moonrakerClient;
|
|
71
|
-
this.logger = loggerFactory(MoonrakerWebsocketAdapter.name);
|
|
72
|
-
this.eventEmitter = eventEmitter2;
|
|
73
|
-
this.configService = configService;
|
|
74
|
-
this.serverVersion = serverVersion;
|
|
75
|
-
}
|
|
76
|
-
get _debugMode() {
|
|
77
|
-
return this.configService.get(_serverconstants.AppConstants.debugSocketStatesKey, _serverconstants.AppConstants.defaultDebugSocketStates) === "true";
|
|
78
|
-
}
|
|
79
74
|
needsReopen() {
|
|
80
75
|
return false;
|
|
81
76
|
}
|
|
@@ -85,7 +80,7 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
85
80
|
needsReauth() {
|
|
86
81
|
return false;
|
|
87
82
|
}
|
|
88
|
-
reauthSession() {}
|
|
83
|
+
async reauthSession() {}
|
|
89
84
|
registerCredentials(socketLogin) {
|
|
90
85
|
const { printerId, loginDto } = socketLogin;
|
|
91
86
|
this.printerId = printerId;
|
|
@@ -118,28 +113,22 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
118
113
|
await this.updateCurrentStateSafely();
|
|
119
114
|
}, 15000);
|
|
120
115
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const objects = await this.client.getPrinterObjectsQuery(this.login, query);
|
|
125
|
-
this.printerObjects = objects.data.result;
|
|
126
|
-
this.setApiState(_apistatetype.API_STATE.responding);
|
|
127
|
-
return await this.emitCurrentEvent(this.printerObjects);
|
|
128
|
-
} catch (e) {
|
|
129
|
-
const castError = e;
|
|
130
|
-
if (castError.isAxiosError) {
|
|
131
|
-
if (castError?.response?.status == 503) {
|
|
132
|
-
this.printerObjects.status = {};
|
|
133
|
-
this.printerObjects.eventtime = Date.now();
|
|
134
|
-
return await this.emitCurrentEvent(this.printerObjects);
|
|
135
|
-
}
|
|
136
|
-
this.logger.error("Could not update Moonraker printer objects due to a request error");
|
|
137
|
-
this.setApiState(_apistatetype.API_STATE.noResponse);
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
this.logger.error(`Could not update Moonraker current due to an unknown error`);
|
|
141
|
-
this.setApiState(_apistatetype.API_STATE.noResponse);
|
|
116
|
+
emitEventSync(event, payload) {
|
|
117
|
+
if (!this.eventEmittingAllowed) {
|
|
118
|
+
return;
|
|
142
119
|
}
|
|
120
|
+
this.eventEmitter2.emit((0, _moonrakerconstants.moonrakerEvent)(event), {
|
|
121
|
+
event,
|
|
122
|
+
payload,
|
|
123
|
+
printerId: this.printerId
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
resetSocketState() {
|
|
127
|
+
this.setSocketState("unopened");
|
|
128
|
+
this.setApiState("unset");
|
|
129
|
+
}
|
|
130
|
+
isClosedOrAborted() {
|
|
131
|
+
return this.socketState === _socketstatetype.SOCKET_STATE.closed || this.socketState === _socketstatetype.SOCKET_STATE.aborted;
|
|
143
132
|
}
|
|
144
133
|
async afterOpened(_) {
|
|
145
134
|
this.setSocketState(_socketstatetype.SOCKET_STATE.opened);
|
|
@@ -162,9 +151,9 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
162
151
|
} catch (e) {
|
|
163
152
|
const ae = e;
|
|
164
153
|
if (ae.isAxiosError) {
|
|
165
|
-
if (ae.response
|
|
154
|
+
if (ae.response?.status === 503) {
|
|
166
155
|
this.logger.warn(`Klipper host issue ${(0, _prettyprintutils.PP)(ae.response.data?.error?.message)}`);
|
|
167
|
-
} else if (ae.response
|
|
156
|
+
} else if (ae.response?.status === 404) {
|
|
168
157
|
this.logger.error("Error while afterOpened (404) - usually this means Moonraker is still starting");
|
|
169
158
|
}
|
|
170
159
|
this.setApiState(_apistatetype.API_STATE.noResponse);
|
|
@@ -185,6 +174,10 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
185
174
|
}
|
|
186
175
|
const payload = event.params?.length ? event.params[0] : undefined;
|
|
187
176
|
if (eventName === "notify_service_state_changed") {
|
|
177
|
+
if (!event.params) {
|
|
178
|
+
this.logger.error("Received 'notify_service_state_changed' but service indicators params were undefined");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
188
181
|
const serviceChanged = event.params[0];
|
|
189
182
|
if (serviceChanged.klipper?.active_state || serviceChanged.klipper_mcu?.active_state || serviceChanged.moonraker?.active_state) {
|
|
190
183
|
this.logger.log("Received notify_service_state_changed, reloading Moonraker printer objects");
|
|
@@ -205,36 +198,23 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
205
198
|
return await this.setupSocketSession();
|
|
206
199
|
}
|
|
207
200
|
if (eventName === "notify_status_update") {
|
|
201
|
+
if (!event.params) {
|
|
202
|
+
this.logger.error("Received 'notify_status_update' but service indicators params were undefined");
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
208
205
|
const [data, eventtime] = event.params;
|
|
209
|
-
const
|
|
210
|
-
if (Object.keys(this.printerObjects.status).includes(
|
|
206
|
+
const subState = Object.keys(data)[0];
|
|
207
|
+
if (Object.keys(this.printerObjects.status).includes(subState)) {
|
|
211
208
|
this.printerObjects.status = _lodash.default.merge(this.printerObjects.status, data);
|
|
212
209
|
this.printerObjects.eventtime = eventtime;
|
|
213
210
|
await this.emitCurrentEvent(this.printerObjects);
|
|
214
211
|
} else {
|
|
215
|
-
this.logger.warn(`Substate ${
|
|
212
|
+
this.logger.warn(`Substate ${subState} unknown`);
|
|
216
213
|
}
|
|
217
214
|
return;
|
|
218
215
|
}
|
|
219
216
|
await this.emitEvent(eventName, payload);
|
|
220
217
|
}
|
|
221
|
-
emitEventSync(event, payload) {
|
|
222
|
-
if (!this.eventEmittingAllowed) {
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
this.eventEmitter.emit((0, _websocketconstants.moonrakerEvent)(event), {
|
|
226
|
-
event,
|
|
227
|
-
payload,
|
|
228
|
-
printerId: this.printerId
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
resetSocketState() {
|
|
232
|
-
this.setSocketState("unopened");
|
|
233
|
-
this.setApiState("unset");
|
|
234
|
-
}
|
|
235
|
-
isClosedOrAborted() {
|
|
236
|
-
return this.socketState === _socketstatetype.SOCKET_STATE.closed || this.socketState === _socketstatetype.SOCKET_STATE.aborted;
|
|
237
|
-
}
|
|
238
218
|
async afterClosed(event) {
|
|
239
219
|
this.setSocketState("closed");
|
|
240
220
|
delete this.socket;
|
|
@@ -244,6 +224,29 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
244
224
|
this.setSocketState("error");
|
|
245
225
|
await this.emitEvent(_octoprintwebsocketadapter.WsMessage.WS_ERROR, error?.length ? error : "connection error");
|
|
246
226
|
}
|
|
227
|
+
async updateCurrentStateSafely() {
|
|
228
|
+
try {
|
|
229
|
+
const query = this.subscriptionObjects;
|
|
230
|
+
const objects = await this.client.getPrinterObjectsQuery(this.login, query);
|
|
231
|
+
this.printerObjects = objects.data.result;
|
|
232
|
+
this.setApiState(_apistatetype.API_STATE.responding);
|
|
233
|
+
return await this.emitCurrentEvent(this.printerObjects);
|
|
234
|
+
} catch (e) {
|
|
235
|
+
const castError = e;
|
|
236
|
+
if (castError.isAxiosError) {
|
|
237
|
+
if (castError?.response?.status == 503) {
|
|
238
|
+
this.printerObjects.status = null;
|
|
239
|
+
this.printerObjects.eventtime = Date.now();
|
|
240
|
+
return await this.emitCurrentEvent(this.printerObjects);
|
|
241
|
+
}
|
|
242
|
+
this.logger.error("Could not update Moonraker printer objects due to a request error");
|
|
243
|
+
this.setApiState(_apistatetype.API_STATE.noResponse);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
this.logger.error(`Could not update Moonraker current due to an unknown error`);
|
|
247
|
+
this.setApiState(_apistatetype.API_STATE.noResponse);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
247
250
|
async emitCurrentEvent(printerObject) {
|
|
248
251
|
const originalKlipperObjects = printerObject.status;
|
|
249
252
|
const flags = {
|
|
@@ -261,29 +264,34 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
261
264
|
};
|
|
262
265
|
let filename = "";
|
|
263
266
|
let printTime = null;
|
|
264
|
-
let stateText =
|
|
267
|
+
let stateText = "Unset";
|
|
265
268
|
let error = "";
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
flags.
|
|
276
|
-
flags.
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
269
|
+
let completion = null;
|
|
270
|
+
if (originalKlipperObjects != null) {
|
|
271
|
+
stateText = originalKlipperObjects.display_status?.message;
|
|
272
|
+
if (originalKlipperObjects.print_stats?.state?.length) {
|
|
273
|
+
const systemState = originalKlipperObjects.webhooks;
|
|
274
|
+
const printState = originalKlipperObjects.print_stats.state;
|
|
275
|
+
const idleState = originalKlipperObjects.idle_timeout?.state;
|
|
276
|
+
filename = originalKlipperObjects.print_stats.filename;
|
|
277
|
+
printTime = originalKlipperObjects.print_stats.print_duration;
|
|
278
|
+
flags.operational = systemState.state === "ready";
|
|
279
|
+
if (flags.operational) {
|
|
280
|
+
flags.printing = printState === "printing";
|
|
281
|
+
flags.paused = printState === "paused";
|
|
282
|
+
flags.ready = printState === "standby" && idleState !== "Printing";
|
|
283
|
+
flags.sdReady = true;
|
|
284
|
+
} else {
|
|
285
|
+
flags.error = true;
|
|
286
|
+
stateText = "Klipper reports: " + (systemState.state ?? "unknown")?.toUpperCase();
|
|
287
|
+
}
|
|
281
288
|
}
|
|
289
|
+
completion = (originalKlipperObjects.display_status?.progress ?? 0) * 100.0;
|
|
282
290
|
}
|
|
283
291
|
const currentMessage = {
|
|
284
292
|
progress: {
|
|
285
|
-
printTime
|
|
286
|
-
completion
|
|
293
|
+
printTime,
|
|
294
|
+
completion
|
|
287
295
|
},
|
|
288
296
|
state: {
|
|
289
297
|
text: stateText,
|
|
@@ -304,7 +312,7 @@ class MoonrakerWebsocketAdapter extends _websocketrpcextendedadapter.WebsocketRp
|
|
|
304
312
|
if (!this.eventEmittingAllowed) {
|
|
305
313
|
return;
|
|
306
314
|
}
|
|
307
|
-
await this.
|
|
315
|
+
await this.eventEmitter2.emitAsync((0, _moonrakerconstants.moonrakerEvent)(event), {
|
|
308
316
|
event,
|
|
309
317
|
payload,
|
|
310
318
|
printerId: this.printerId,
|