@fdm-monster/server 1.8.2 → 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 +69 -7
- 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 +11 -19
- 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 +15 -24
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +4 -5
- 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 +61 -50
- 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 +76 -29
- package/dist/controllers/printer-settings.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +62 -197
- 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 -113
- 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 -31
- 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 +40 -0
- package/dist/services/core/http-client.factory.js.map +1 -0
- package/dist/services/core/logs-manager.service.js +7 -6
- 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 +79 -28
- 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/file-upload-tracker.interface.js +6 -0
- package/dist/services/interfaces/file-upload-tracker.interface.js.map +1 -0
- 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 -5
- 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 +40 -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 +108 -96
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +212 -167
- 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 -98
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js +72 -72
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +87 -343
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js +31 -0
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -0
- package/dist/services/octoprint.api.js +14 -18
- 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 +29 -39
- 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/prusa-link/dto/file.dto.js +6 -0
- 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 +94 -0
- package/dist/shared/default-http-client.builder.js.map +1 -0
- 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 +33 -42
- 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 +78 -51
- 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 -10
- 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 +4 -15
- 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 +8 -35
- 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 +6 -3
- package/dist/utils/normalize-url.js.map +1 -1
- package/dist/utils/pretty-print.utils.js +1 -1
- package/dist/utils/pretty-print.utils.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 +11 -14
- package/dist/utils/url.utils.js.map +1 -1
- package/package.json +53 -55
- package/tsconfig.json +2 -1
- package/.yarn/releases/yarn-4.6.0.cjs +0 -934
- package/dist/consoles/check-ports.js +0 -170
- package/dist/consoles/check-ports.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 -236
- 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/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 -45
- 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
- package/requests/moonraker/api_job.http +0 -5
- package/requests/moonraker/api_printer.http +0 -5
- package/requests/moonraker/api_settings.http +0 -5
- package/requests/moonraker/printer_info.http +0 -5
- package/requests/moonraker/printer_objects_list.http +0 -6
- package/requests/moonraker/printer_objects_pause_resume.http +0 -6
- package/requests/moonraker/printer_objects_print_stats.http +0 -6
- package/requests/moonraker/printer_objects_webhooks.http +0 -6
- package/requests/moonraker/server_info.http +0 -5
- package/requests/octoprint/octoprint-api-printer-current.http +0 -7
- package/requests/octoprint/octoprint-pluginmanager-plugins.http +0 -7
- package/requests/printer-file/get-partial-file-moonraker.http +0 -5
- package/requests/printer-file/get-thumbnails.http +0 -5
- package/requests/printer-file/reload-printer-thumbnails.http +0 -10
- package/requests/printer-file/testfile.gcode +0 -5665
- package/requests/printer-file/upload-file.http +0 -11
- package/requests/printer-file/upload-slicer-file.http +0 -11
- package/requests/printers/list.http +0 -5
|
@@ -18,15 +18,10 @@ const _userservicevalidation = require("../validators/user-service.validation");
|
|
|
18
18
|
const _cryptoutils = require("../../utils/crypto.utils");
|
|
19
19
|
const _authorizationconstants = require("../../constants/authorization.constants");
|
|
20
20
|
class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto.UserDto) {
|
|
21
|
-
typeormService;
|
|
22
21
|
userRoleService;
|
|
23
22
|
roleService;
|
|
24
|
-
constructor(
|
|
25
|
-
super(
|
|
26
|
-
typeormService
|
|
27
|
-
});
|
|
28
|
-
this.userRoleService = userRoleService;
|
|
29
|
-
this.roleService = roleService;
|
|
23
|
+
constructor(typeormService, userRoleService, roleService){
|
|
24
|
+
super(typeormService), this.userRoleService = userRoleService, this.roleService = roleService;
|
|
30
25
|
}
|
|
31
26
|
toDto(user) {
|
|
32
27
|
return {
|
|
@@ -37,7 +32,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
37
32
|
isRootUser: user.isRootUser,
|
|
38
33
|
username: user.username,
|
|
39
34
|
needsPasswordChange: user.needsPasswordChange,
|
|
40
|
-
roles: user.roles
|
|
35
|
+
roles: (user.roles ?? []).map((r)=>r.roleId)
|
|
41
36
|
};
|
|
42
37
|
}
|
|
43
38
|
listUsers(limit) {
|
|
@@ -45,8 +40,8 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
45
40
|
take: limit
|
|
46
41
|
});
|
|
47
42
|
}
|
|
48
|
-
getUser(userId) {
|
|
49
|
-
return this.get(userId
|
|
43
|
+
async getUser(userId) {
|
|
44
|
+
return this.get(userId);
|
|
50
45
|
}
|
|
51
46
|
async getUserRoleIds(userId) {
|
|
52
47
|
const userRoles = await this.userRoleService.listUserRoles(userId);
|
|
@@ -78,6 +73,9 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
78
73
|
if (user.isRootUser) {
|
|
79
74
|
throw new _runtimeexceptions.InternalServerException("Cannot delete a root user");
|
|
80
75
|
}
|
|
76
|
+
if (!user.roles?.length) {
|
|
77
|
+
throw new _runtimeexceptions.InternalServerException("User:roles relation not loaded, cannot perform deletion role check");
|
|
78
|
+
}
|
|
81
79
|
const role = this.roleService.getRoleByName(_authorizationconstants.ROLES.ADMIN);
|
|
82
80
|
if (user.roles.find((r)=>r.roleId == role.id)) {
|
|
83
81
|
const administrators = await this.findUsersByRoleId(role.id);
|
|
@@ -85,7 +83,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
85
83
|
throw new _runtimeexceptions.InternalServerException("Cannot delete the last user with ADMIN role");
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
|
-
|
|
86
|
+
await this.delete(userId);
|
|
89
87
|
}
|
|
90
88
|
findRawByUsername(username) {
|
|
91
89
|
return this.repository.findOneBy({
|
|
@@ -112,7 +110,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
112
110
|
}
|
|
113
111
|
async setUserRoleIds(userId, roleIds) {
|
|
114
112
|
await this.userRoleService.setUserRoles(userId, roleIds);
|
|
115
|
-
return await this.get(userId
|
|
113
|
+
return await this.get(userId);
|
|
116
114
|
}
|
|
117
115
|
async setVerifiedById(userId, isVerified) {
|
|
118
116
|
const user = await this.getUser(userId);
|
|
@@ -138,7 +136,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
138
136
|
}
|
|
139
137
|
const { password } = await (0, _validators.validateInput)({
|
|
140
138
|
password: newPassword
|
|
141
|
-
}, _userservicevalidation.
|
|
139
|
+
}, _userservicevalidation.newPasswordSchema);
|
|
142
140
|
const passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
143
141
|
return await this.update(userId, {
|
|
144
142
|
passwordHash,
|
|
@@ -148,7 +146,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
148
146
|
async updatePasswordUnsafeByUsername(username, newPassword) {
|
|
149
147
|
const { password } = await (0, _validators.validateInput)({
|
|
150
148
|
password: newPassword
|
|
151
|
-
}, _userservicevalidation.
|
|
149
|
+
}, _userservicevalidation.newPasswordSchema);
|
|
152
150
|
const passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
153
151
|
const user = await this.findRawByUsername(username);
|
|
154
152
|
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
@@ -163,7 +161,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
163
161
|
});
|
|
164
162
|
}
|
|
165
163
|
async register(input) {
|
|
166
|
-
const { username, password, roles, isDemoUser, isRootUser, needsPasswordChange, isVerified } = await (0, _validators.validateInput)(input, (0, _userservicevalidation.
|
|
164
|
+
const { username, password, roles, isDemoUser, isRootUser, needsPasswordChange, isVerified } = await (0, _validators.validateInput)(input, (0, _userservicevalidation.registerUserSchema)(true));
|
|
167
165
|
const passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
168
166
|
const result = await this.create({
|
|
169
167
|
username,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","roleService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","constructor","typeormService","userRoleService","roleService","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","roleId","listUsers","limit","list","take","getUser","userId","get","getUserRoleIds","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findUsersByRoleId","listByRoleId","ids","u","In","findVerifiedUsers","isUserRootUser","entity","deleteUser","InternalServerException","length","role","getRoleByName","ROLES","ADMIN","find","administrators","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","NotFoundException","rootUsers","update","setUserRoleIds","roleIds","setUserRoles","setVerifiedById","verifiedUsers","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordSchema","hashPassword","updatePasswordUnsafeByUsername","updateUsernameById","newUsername","register","input","registerUserSchema","result","create"],"mappings":"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"}
|
|
@@ -11,20 +11,23 @@ Object.defineProperty(exports, "PrinterApiFactory", {
|
|
|
11
11
|
const _printerapiinterface = require("./printer-api.interface");
|
|
12
12
|
const _containertokens = require("../container.tokens");
|
|
13
13
|
class PrinterApiFactory {
|
|
14
|
-
|
|
15
|
-
constructor(
|
|
16
|
-
this.
|
|
14
|
+
cradleService;
|
|
15
|
+
constructor(cradleService){
|
|
16
|
+
this.cradleService = cradleService;
|
|
17
17
|
}
|
|
18
18
|
getById(id) {
|
|
19
|
-
const
|
|
19
|
+
const printerCache = this.cradleService.resolve(_containertokens.DITokens.printerCache);
|
|
20
|
+
const login = printerCache.getLoginDto(id);
|
|
20
21
|
return this.getScopedPrinter(login);
|
|
21
22
|
}
|
|
22
23
|
getScopedPrinter(login) {
|
|
23
24
|
let printerApi;
|
|
24
25
|
if (login.printerType === _printerapiinterface.OctoprintType) {
|
|
25
|
-
printerApi = this.
|
|
26
|
+
printerApi = this.cradleService.resolve(_containertokens.DITokens.octoprintApi);
|
|
26
27
|
} else if (login.printerType === _printerapiinterface.MoonrakerType) {
|
|
27
|
-
printerApi = this.
|
|
28
|
+
printerApi = this.cradleService.resolve(_containertokens.DITokens.moonrakerApi);
|
|
29
|
+
} else if (login.printerType === _printerapiinterface.PrusaLinkType) {
|
|
30
|
+
printerApi = this.cradleService.resolve(_containertokens.DITokens.prusaLinkApi);
|
|
28
31
|
} else {
|
|
29
32
|
throw new Error("PrinterType is unknown, cant pick the right socket adapter");
|
|
30
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/printer-api.factory.ts"],"names":["PrinterApiFactory","
|
|
1
|
+
{"version":3,"sources":["../../src/services/printer-api.factory.ts"],"names":["PrinterApiFactory","constructor","cradleService","getById","id","printerCache","resolve","DITokens","login","getLoginDto","getScopedPrinter","printerApi","printerType","OctoprintType","octoprintApi","MoonrakerType","moonrakerApi","PrusaLinkType","prusaLinkApi","Error"],"mappings":";;;;+BAOaA;;;eAAAA;;;qCAP4D;iCAChD;AAMlB,MAAMA;;IACXC,YACE,AAAiBC,aAA4B,CAC7C;aADiBA,gBAAAA;IAEnB;IAEAC,QAAQC,EAAU,EAAe;QAC/B,MAAMC,eAAe,IAAI,CAACH,aAAa,CAACI,OAAO,CAAeC,yBAAQ,CAACF,YAAY;QACnF,MAAMG,QAAQH,aAAaI,WAAW,CAACL;QACvC,OAAO,IAAI,CAACM,gBAAgB,CAACF;IAC/B;IAEAE,iBAAiBF,KAAe,EAAe;QAC7C,IAAIG;QACJ,IAAIH,MAAMI,WAAW,KAAKC,kCAAa,EAAE;YACvCF,aAAa,IAAI,CAACT,aAAa,CAACI,OAAO,CAAcC,yBAAQ,CAACO,YAAY;QAC5E,OAAO,IAAIN,MAAMI,WAAW,KAAKG,kCAAa,EAAE;YAC9CJ,aAAa,IAAI,CAACT,aAAa,CAACI,OAAO,CAAcC,yBAAQ,CAACS,YAAY;QAC5E,OAAO,IAAIR,MAAMI,WAAW,KAAKK,kCAAa,EAAE;YAC9CN,aAAa,IAAI,CAACT,aAAa,CAACI,OAAO,CAAcC,yBAAQ,CAACW,YAAY;QAC5E,OAAO;YACL,MAAM,IAAIC,MAAM;QAClB;QAEAR,WAAWH,KAAK,GAAGA;QACnB,OAAOG;IACT;AACF"}
|
|
@@ -15,18 +15,25 @@ _export(exports, {
|
|
|
15
15
|
OctoprintType: function() {
|
|
16
16
|
return OctoprintType;
|
|
17
17
|
},
|
|
18
|
+
PrinterTypesEnum: function() {
|
|
19
|
+
return PrinterTypesEnum;
|
|
20
|
+
},
|
|
21
|
+
PrusaLinkType: function() {
|
|
22
|
+
return PrusaLinkType;
|
|
23
|
+
},
|
|
18
24
|
ReprintState: function() {
|
|
19
25
|
return ReprintState;
|
|
20
|
-
},
|
|
21
|
-
capabilities: function() {
|
|
22
|
-
return capabilities;
|
|
23
26
|
}
|
|
24
27
|
});
|
|
25
28
|
const OctoprintType = 0;
|
|
26
29
|
const MoonrakerType = 1;
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
const PrusaLinkType = 2;
|
|
31
|
+
var PrinterTypesEnum = /*#__PURE__*/ function(PrinterTypesEnum) {
|
|
32
|
+
PrinterTypesEnum[PrinterTypesEnum["Octoprint"] = 0] = "Octoprint";
|
|
33
|
+
PrinterTypesEnum[PrinterTypesEnum["Moonraker"] = 1] = "Moonraker";
|
|
34
|
+
PrinterTypesEnum[PrinterTypesEnum["PrusaLink"] = 2] = "PrusaLink";
|
|
35
|
+
return PrinterTypesEnum;
|
|
36
|
+
}({});
|
|
30
37
|
var ReprintState = /*#__PURE__*/ function(ReprintState) {
|
|
31
38
|
ReprintState[ReprintState["PrinterNotAvailable"] = 0] = "PrinterNotAvailable";
|
|
32
39
|
ReprintState[ReprintState["NoLastPrint"] = 1] = "NoLastPrint";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/printer-api.interface.ts"],"names":["MoonrakerType","OctoprintType","
|
|
1
|
+
{"version":3,"sources":["../../src/services/printer-api.interface.ts"],"names":["MoonrakerType","OctoprintType","PrinterTypesEnum","PrusaLinkType","ReprintState"],"mappings":";;;;;;;;;;;IASaA,aAAa;eAAbA;;IADAC,aAAa;eAAbA;;IAIDC,gBAAgB;eAAhBA;;IAFCC,aAAa;eAAbA;;IA2CDC,YAAY;eAAZA;;;AA7CL,MAAMH,gBAAgB;AACtB,MAAMD,gBAAgB;AACtB,MAAMG,gBAAgB;AAEtB,IAAA,AAAKD,0CAAAA;;;;WAAAA;;AAyCL,IAAA,AAAKE,sCAAAA;;;;WAAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "PrusaLinkEventDto", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return PrusaLinkEventDto;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
class PrusaLinkEventDto {
|
|
12
|
+
event;
|
|
13
|
+
payload;
|
|
14
|
+
printerId;
|
|
15
|
+
printerType;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=prusalink-event.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/constants/prusalink-event.dto.ts"],"names":["PrusaLinkEventDto","event","payload","printerId","printerType"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,MAAS;IACTC,QAAW;IACXC,UAAa;IACbC,YAAe;AACjB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "prusaLinkEvent", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return prusaLinkEvent;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const prusaLinkEvent = (event)=>`prusalink.${event}`;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=prusalink.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/constants/prusalink.constants.ts"],"names":["prusaLinkEvent","event"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,iBAAiB,CAACC,QAAkB,CAAC,UAAU,EAAEA,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/dto/file-response.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/dto/file.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/dto/job-state.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/dto/printer-state.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/dto/status.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/prusa-link/dto/version.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "PrusaLinkHttpPollingAdapter", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return PrusaLinkHttpPollingAdapter;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _printerapiinterface = require("../printer-api.interface");
|
|
12
|
+
const _errorutils = require("../../utils/error.utils");
|
|
13
|
+
const _prusalinkconstants = require("./constants/prusalink.constants");
|
|
14
|
+
const defaultLog = {
|
|
15
|
+
adapter: "prusa-link"
|
|
16
|
+
};
|
|
17
|
+
class PrusaLinkHttpPollingAdapter {
|
|
18
|
+
prusaLinkApi;
|
|
19
|
+
eventEmitter2;
|
|
20
|
+
configService;
|
|
21
|
+
printerType;
|
|
22
|
+
printerId;
|
|
23
|
+
login;
|
|
24
|
+
socketState;
|
|
25
|
+
apiState;
|
|
26
|
+
lastMessageReceivedTimestamp;
|
|
27
|
+
refreshPrinterCurrentInterval;
|
|
28
|
+
eventEmittingAllowed;
|
|
29
|
+
constructor(loggerFactory, prusaLinkApi, eventEmitter2, configService){
|
|
30
|
+
this.prusaLinkApi = prusaLinkApi;
|
|
31
|
+
this.eventEmitter2 = eventEmitter2;
|
|
32
|
+
this.configService = configService;
|
|
33
|
+
this.printerType = _printerapiinterface.PrusaLinkType;
|
|
34
|
+
this.eventEmittingAllowed = true;
|
|
35
|
+
this.logger = loggerFactory(PrusaLinkHttpPollingAdapter.name);
|
|
36
|
+
}
|
|
37
|
+
allowEmittingEvents() {
|
|
38
|
+
this.eventEmittingAllowed = true;
|
|
39
|
+
}
|
|
40
|
+
disallowEmittingEvents() {
|
|
41
|
+
this.eventEmittingAllowed = false;
|
|
42
|
+
}
|
|
43
|
+
needsReopen() {
|
|
44
|
+
return !this.refreshPrinterCurrentInterval;
|
|
45
|
+
}
|
|
46
|
+
needsSetup() {
|
|
47
|
+
return !this.refreshPrinterCurrentInterval;
|
|
48
|
+
}
|
|
49
|
+
needsReauth() {
|
|
50
|
+
throw new Error("Method not implemented.");
|
|
51
|
+
}
|
|
52
|
+
isClosedOrAborted() {
|
|
53
|
+
throw new Error("Method not implemented.");
|
|
54
|
+
}
|
|
55
|
+
reauthSession() {
|
|
56
|
+
throw new Error("Method not implemented.");
|
|
57
|
+
}
|
|
58
|
+
registerCredentials(socketLogin) {
|
|
59
|
+
this.login = socketLogin.loginDto;
|
|
60
|
+
this.printerId = socketLogin.printerId;
|
|
61
|
+
}
|
|
62
|
+
open() {
|
|
63
|
+
this.startPolling();
|
|
64
|
+
}
|
|
65
|
+
close() {
|
|
66
|
+
this.logger.debug("Polling adapter attempting stoppage.", this.logMeta());
|
|
67
|
+
this.stopPolling();
|
|
68
|
+
}
|
|
69
|
+
setupSocketSession() {
|
|
70
|
+
this.logger.warn("SetupSocketSession", defaultLog);
|
|
71
|
+
return Promise.resolve();
|
|
72
|
+
}
|
|
73
|
+
resetSocketState() {
|
|
74
|
+
this.logger.warn("ResetSocketState", defaultLog);
|
|
75
|
+
}
|
|
76
|
+
startPolling() {
|
|
77
|
+
this.stopPolling();
|
|
78
|
+
this.logger.debug("Polling adapter starting, setting interval.", this.logMeta());
|
|
79
|
+
this.refreshPrinterCurrentInterval = setInterval(async ()=>{
|
|
80
|
+
if (!this.printerId) {
|
|
81
|
+
this.logger.warn("Printer ID is not set, skipping status check.", this.logMeta());
|
|
82
|
+
this.stopPolling();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this.socketState = "opening";
|
|
86
|
+
try {
|
|
87
|
+
this.prusaLinkApi.login = {
|
|
88
|
+
printerURL: this.login.printerURL,
|
|
89
|
+
username: this.login.username,
|
|
90
|
+
password: this.login.password,
|
|
91
|
+
apiKey: "",
|
|
92
|
+
printerType: _printerapiinterface.PrusaLinkType
|
|
93
|
+
};
|
|
94
|
+
this.socketState = "authenticating";
|
|
95
|
+
const printerState = await this.prusaLinkApi.getPrinterState();
|
|
96
|
+
if (printerState.state.flags?.link_state && printerState.state.flags?.link_state !== "PRINTING") {
|
|
97
|
+
printerState.state.text = printerState.state.flags.link_state;
|
|
98
|
+
}
|
|
99
|
+
const jobState = await this.prusaLinkApi.getJobState();
|
|
100
|
+
this.socketState = "authenticated";
|
|
101
|
+
this.apiState = "responding";
|
|
102
|
+
await this.emitEvent("current", {
|
|
103
|
+
...printerState,
|
|
104
|
+
job: jobState.job,
|
|
105
|
+
progress: {
|
|
106
|
+
printTime: jobState.progress?.printTime,
|
|
107
|
+
printTimeLeft: jobState.progress?.printTimeLeft,
|
|
108
|
+
completion: jobState.progress?.completion * 100
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
} catch (error) {
|
|
112
|
+
this.socketState = "error";
|
|
113
|
+
this.logger.error(`Failed to fetch PrusaLink status ${(0, _errorutils.errorSummary)(error)}`, this.logMeta());
|
|
114
|
+
}
|
|
115
|
+
}, 5000);
|
|
116
|
+
}
|
|
117
|
+
stopPolling() {
|
|
118
|
+
if (this.refreshPrinterCurrentInterval) {
|
|
119
|
+
this.logger.debug("Polling adapter stopping, clearing interval.", this.logMeta());
|
|
120
|
+
clearInterval(this.refreshPrinterCurrentInterval);
|
|
121
|
+
this.refreshPrinterCurrentInterval = undefined;
|
|
122
|
+
this.socketState = "closed";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async emitEvent(event, payload) {
|
|
126
|
+
if (!this.eventEmittingAllowed) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
this.logger.debug(`Emitting event ${(0, _prusalinkconstants.prusaLinkEvent)(event)}`, this.logMeta());
|
|
130
|
+
await this.eventEmitter2.emitAsync((0, _prusalinkconstants.prusaLinkEvent)(event), {
|
|
131
|
+
event,
|
|
132
|
+
payload,
|
|
133
|
+
printerId: this.printerId,
|
|
134
|
+
printerType: _printerapiinterface.PrusaLinkType
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
logMeta() {
|
|
138
|
+
return defaultLog;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//# sourceMappingURL=prusa-link-http-polling.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/prusa-link/prusa-link-http-polling.adapter.ts"],"names":["PrusaLinkHttpPollingAdapter","defaultLog","adapter","printerType","printerId","login","socketState","apiState","lastMessageReceivedTimestamp","refreshPrinterCurrentInterval","eventEmittingAllowed","constructor","loggerFactory","prusaLinkApi","eventEmitter2","configService","PrusaLinkType","logger","name","allowEmittingEvents","disallowEmittingEvents","needsReopen","needsSetup","needsReauth","Error","isClosedOrAborted","reauthSession","registerCredentials","socketLogin","loginDto","open","startPolling","close","debug","logMeta","stopPolling","setupSocketSession","warn","Promise","resolve","resetSocketState","setInterval","printerURL","username","password","apiKey","printerState","getPrinterState","state","flags","link_state","text","jobState","getJobState","emitEvent","job","progress","printTime","printTimeLeft","completion","error","errorSummary","clearInterval","undefined","event","payload","prusaLinkEvent","emitAsync"],"mappings":"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"}
|