@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
|
@@ -14,10 +14,8 @@ const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
|
14
14
|
const _floorservicevalidation = require("../validators/floor-service.validation");
|
|
15
15
|
class FloorService {
|
|
16
16
|
printerCache;
|
|
17
|
-
|
|
18
|
-
constructor({ printerCache, loggerFactory }){
|
|
17
|
+
constructor(printerCache){
|
|
19
18
|
this.printerCache = printerCache;
|
|
20
|
-
this.logger = loggerFactory(FloorService.name);
|
|
21
19
|
}
|
|
22
20
|
toDto(floor) {
|
|
23
21
|
return {
|
|
@@ -27,23 +25,19 @@ class FloorService {
|
|
|
27
25
|
printers: floor.printers?.map((p)=>({
|
|
28
26
|
x: p.x,
|
|
29
27
|
y: p.y,
|
|
30
|
-
printerId: p.printerId
|
|
28
|
+
printerId: p.printerId,
|
|
31
29
|
floorId: floor.id
|
|
32
30
|
}))
|
|
33
31
|
};
|
|
34
32
|
}
|
|
35
|
-
async list(
|
|
36
|
-
|
|
37
|
-
if (!patchPositions) {
|
|
38
|
-
return floors;
|
|
39
|
-
}
|
|
40
|
-
return floors;
|
|
33
|
+
async list() {
|
|
34
|
+
return _Floor.Floor.find({});
|
|
41
35
|
}
|
|
42
|
-
async get(floorId
|
|
36
|
+
async get(floorId) {
|
|
43
37
|
const floor = await _Floor.Floor.findOne({
|
|
44
38
|
_id: floorId
|
|
45
39
|
});
|
|
46
|
-
if (!floor
|
|
40
|
+
if (!floor) {
|
|
47
41
|
throw new _runtimeexceptions.NotFoundException(`Floor with provided id does not exist`);
|
|
48
42
|
}
|
|
49
43
|
return floor;
|
|
@@ -51,34 +45,46 @@ class FloorService {
|
|
|
51
45
|
async createDefaultFloor() {
|
|
52
46
|
return await this.create({
|
|
53
47
|
name: "Default Floor",
|
|
54
|
-
floor: 1
|
|
48
|
+
floor: 1,
|
|
49
|
+
printers: []
|
|
55
50
|
});
|
|
56
51
|
}
|
|
57
52
|
async create(floor) {
|
|
58
|
-
const validatedInput = await (0, _validators.validateInput)(floor, _floorservicevalidation.
|
|
53
|
+
const validatedInput = await (0, _validators.validateInput)(floor, (0, _floorservicevalidation.createOrUpdateFloorSchema)(false));
|
|
59
54
|
return _Floor.Floor.create(validatedInput);
|
|
60
55
|
}
|
|
61
|
-
async update(floorId,
|
|
56
|
+
async update(floorId, update) {
|
|
62
57
|
const existingFloor = await this.get(floorId);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
if (update.printers) {
|
|
59
|
+
for (const position of update.printers){
|
|
60
|
+
position.floorId = existingFloor.id;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const floorUpdate = {
|
|
64
|
+
...existingFloor,
|
|
65
|
+
name: update.name,
|
|
66
|
+
printers: update.printers,
|
|
67
|
+
floor: update.floor
|
|
68
|
+
};
|
|
69
|
+
const input = await (0, _validators.validateInput)(floorUpdate, (0, _floorservicevalidation.createOrUpdateFloorSchema)(false));
|
|
70
|
+
existingFloor.name = input.name;
|
|
71
|
+
existingFloor.floor = input.floor;
|
|
72
|
+
existingFloor.printers = input.printers;
|
|
67
73
|
return await existingFloor.save();
|
|
68
74
|
}
|
|
69
75
|
async updateName(floorId, floorName) {
|
|
70
|
-
const floor = await this.get(floorId);
|
|
71
76
|
const { name } = await (0, _validators.validateInput)({
|
|
72
77
|
name: floorName
|
|
73
|
-
}, _floorservicevalidation.
|
|
78
|
+
}, _floorservicevalidation.updateFloorNameSchema);
|
|
79
|
+
const floor = await this.get(floorId);
|
|
74
80
|
floor.name = name;
|
|
75
81
|
return await floor.save();
|
|
76
82
|
}
|
|
77
83
|
async updateLevel(floorId, level) {
|
|
78
|
-
const floor = await this.get(floorId);
|
|
79
84
|
const { floor: validLevel } = await (0, _validators.validateInput)({
|
|
80
85
|
floor: level
|
|
81
|
-
}, _floorservicevalidation.
|
|
86
|
+
}, _floorservicevalidation.updateFloorLevelSchema);
|
|
87
|
+
const floor = await this.get(floorId);
|
|
82
88
|
floor.floor = validLevel;
|
|
83
89
|
return await floor.save();
|
|
84
90
|
}
|
|
@@ -96,10 +102,11 @@ class FloorService {
|
|
|
96
102
|
});
|
|
97
103
|
}
|
|
98
104
|
async addOrUpdatePrinter(floorId, updatedPosition) {
|
|
99
|
-
const floor = await this.get(floorId
|
|
100
|
-
|
|
105
|
+
const floor = await this.get(floorId);
|
|
106
|
+
updatedPosition.floorId = floor.id;
|
|
107
|
+
const validInput = await (0, _validators.validateInput)(updatedPosition, (0, _floorservicevalidation.printerInFloorSchema)(false));
|
|
101
108
|
await this.printerCache.getCachedPrinterOrThrowAsync(validInput.printerId);
|
|
102
|
-
floor.printers = floor.printers.filter((position)=>!(position.x ===
|
|
109
|
+
floor.printers = floor.printers.filter((position)=>!(position.x === validInput.x && position.y === validInput.y));
|
|
103
110
|
const positionIndex = floor.printers.findIndex((position)=>position.printerId.toString() === validInput.printerId.toString());
|
|
104
111
|
if (positionIndex !== -1) {
|
|
105
112
|
floor.printers[positionIndex] = validInput;
|
|
@@ -110,19 +117,19 @@ class FloorService {
|
|
|
110
117
|
return floor;
|
|
111
118
|
}
|
|
112
119
|
async removePrinter(floorId, printerId) {
|
|
113
|
-
const floor = await this.get(floorId
|
|
120
|
+
const floor = await this.get(floorId);
|
|
114
121
|
const validInput = await (0, _validators.validateInput)({
|
|
115
122
|
printerId
|
|
116
|
-
}, (0, _floorservicevalidation.
|
|
123
|
+
}, (0, _floorservicevalidation.removePrinterInFloorSchema)(false));
|
|
117
124
|
await this.printerCache.getCachedPrinterOrThrowAsync(validInput.printerId);
|
|
118
|
-
const foundPrinterInFloorIndex = floor.printers.findIndex((pif)=>pif.printerId.toString() === validInput.printerId);
|
|
125
|
+
const foundPrinterInFloorIndex = floor.printers.findIndex((pif)=>pif.printerId.toString() === validInput.printerId.toString());
|
|
119
126
|
if (foundPrinterInFloorIndex === -1) return floor;
|
|
120
127
|
floor.printers.splice(foundPrinterInFloorIndex, 1);
|
|
121
128
|
await floor.save();
|
|
122
129
|
return floor;
|
|
123
130
|
}
|
|
124
131
|
async delete(floorId) {
|
|
125
|
-
await this.get(floorId
|
|
132
|
+
await this.get(floorId);
|
|
126
133
|
await _Floor.Floor.deleteOne({
|
|
127
134
|
_id: floorId
|
|
128
135
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/floor.service.ts"],"names":["FloorService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/floor.service.ts"],"names":["FloorService","constructor","printerCache","toDto","floor","id","name","printers","map","p","x","y","printerId","floorId","list","Floor","find","get","findOne","_id","NotFoundException","createDefaultFloor","create","validatedInput","validateInput","createOrUpdateFloorSchema","update","existingFloor","position","floorUpdate","input","save","updateName","floorName","updateFloorNameSchema","updateLevel","level","validLevel","updateFloorLevelSchema","deletePrinterFromAnyFloor","updateMany","$pull","$in","addOrUpdatePrinter","updatedPosition","validInput","printerInFloorSchema","getCachedPrinterOrThrowAsync","filter","positionIndex","findIndex","toString","push","removePrinter","removePrinterInFloorSchema","foundPrinterInFloorIndex","pif","splice","delete","deleteOne"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ const _authorizationconstants = require("../../constants/authorization.constants
|
|
|
13
13
|
const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
14
14
|
class PermissionService {
|
|
15
15
|
logger;
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(loggerFactory){
|
|
17
17
|
this.logger = loggerFactory(PermissionService.name);
|
|
18
18
|
}
|
|
19
19
|
_permissions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/permission.service.ts"],"names":["PermissionService","logger","constructor","loggerFactory","name","_permissions","permissions","toDto","permission","id","authorizePermission","requiredPermission","assignedPermissions","find","assignedPermission","normalizePermission","getPermissionByName","permissionName","r","NotFoundException","getPermission","permissionId","syncPermissions","permissionDefinition","flattenPermissionDefinition","storedPermission","Permission","findOne","newPermission","create","push","permissionInstance","warn"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATc;wCACiB;mCACV;AAO3B,MAAMA;
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/permission.service.ts"],"names":["PermissionService","logger","constructor","loggerFactory","name","_permissions","permissions","toDto","permission","id","authorizePermission","requiredPermission","assignedPermissions","find","assignedPermission","normalizePermission","getPermissionByName","permissionName","r","NotFoundException","getPermission","permissionId","syncPermissions","permissionDefinition","flattenPermissionDefinition","storedPermission","Permission","findOne","newPermission","create","push","permissionInstance","warn"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATc;wCACiB;mCACV;AAO3B,MAAMA;IACMC,OAAsB;IAEvCC,YAAYC,aAA6B,CAAE;QACzC,IAAI,CAACF,MAAM,GAAGE,cAAcH,kBAAkBI,IAAI;IACpD;IAEQC,eAA8B,EAAE,CAAC;IAEzC,IAAIC,cAAc;QAChB,OAAO,IAAI,CAACD,YAAY;IAC1B;IAEAE,MAAMC,UAAuB,EAAE;QAC7B,OAAO;YACLC,IAAID,WAAWC,EAAE;YACjBL,MAAMI,WAAWJ,IAAI;QACvB;IACF;IAEAM,oBAAoBC,kBAA0B,EAAEC,mBAA6B,EAAE;QAC7E,OAAO,CAAC,CAACA,oBAAoBC,IAAI,CAAC,CAACC;YACjC,MAAMC,sBAAsB,IAAI,CAACA,mBAAmB,CAACD;YACrD,IAAI,CAACC,qBAAqB,OAAO;YACjC,OAAOA,wBAAwBJ;QACjC;IACF;IAEA,MAAMK,oBAAoBC,cAAsB,EAAE;QAChD,MAAMT,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAEd,IAAI,KAAKa;QAC3D,IAAI,CAACT,YAAY,MAAM,IAAIW,oCAAiB,CAAC;QAC7C,OAAOX;IACT;IAEA,MAAMY,cAAcC,YAAyB,EAAE;QAC7C,MAAMb,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKY;QACzD,IAAI,CAACb,YAAY,MAAM,IAAIW,oCAAiB,CAAC,CAAC,mCAAmC,CAAC;QAElF,OAAOX;IACT;IAEA,MAAMc,kBAAkB;QACtB,IAAI,CAACjB,YAAY,GAAG,EAAE;QAEtB,MAAMkB,uBAAuBC,IAAAA,mDAA2B;QACxD,KAAK,IAAIhB,cAAce,qBAAsB;YAC3C,MAAME,mBAAmB,MAAMC,kBAAU,CAACC,OAAO,CAAC;gBAAEvB,MAAMI;YAAW;YACrE,IAAI,CAACiB,kBAAkB;gBACrB,MAAMG,gBAAgB,MAAMF,kBAAU,CAACG,MAAM,CAAC;oBAC5CzB,MAAMI;gBACR;gBACA,IAAI,CAACH,YAAY,CAACyB,IAAI,CAACF;YACzB,OAAO;gBACL,IAAI,CAACvB,YAAY,CAACyB,IAAI,CAACL;YACzB;QACF;IACF;IAEAV,oBAAoBD,kBAA0B,EAAE;QAC9C,MAAMiB,qBAAqB,IAAI,CAACzB,WAAW,CAACO,IAAI,CAC9C,CAACK,IAAMA,EAAET,EAAE,KAAKK,sBAAsBI,EAAEd,IAAI,KAAKU;QAEnD,IAAI,CAACiB,oBAAoB;YACvB,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC;YACjB;QACF;QACA,OAAOD,mBAAmB3B,IAAI;IAChC;AACF"}
|
|
@@ -15,7 +15,7 @@ const _octoprintwebsocketconstants = require("../octoprint/constants/octoprint-w
|
|
|
15
15
|
const _printcompletionshared = require("./print-completion.shared");
|
|
16
16
|
class PrintCompletionService {
|
|
17
17
|
logger;
|
|
18
|
-
constructor(
|
|
18
|
+
constructor(loggerFactory){
|
|
19
19
|
this.logger = loggerFactory(PrintCompletionService.name);
|
|
20
20
|
}
|
|
21
21
|
toDto(entity) {
|
|
@@ -30,7 +30,7 @@ class PrintCompletionService {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
async create(input) {
|
|
33
|
-
const { printerId, fileName, completionLog, status, context } = await (0, _validators.validateInput)(input, _printcompletionservicevalidation.
|
|
33
|
+
const { printerId, fileName, completionLog, status, context } = await (0, _validators.validateInput)(input, (0, _printcompletionservicevalidation.createPrintCompletionSchema)(false));
|
|
34
34
|
return _models.PrintCompletion.create({
|
|
35
35
|
printerId,
|
|
36
36
|
fileName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/print-completion.service.ts"],"names":["PrintCompletionService","logger","constructor","loggerFactory","name","toDto","entity","id","completionLog","context","fileName","createdAt","status","printerId","toString","create","input","validateInput","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/print-completion.service.ts"],"names":["PrintCompletionService","logger","constructor","loggerFactory","name","toDto","entity","id","completionLog","context","fileName","createdAt","status","printerId","toString","create","input","validateInput","createPrintCompletionSchema","PrintCompletion","Date","now","list","find","findPrintCompletion","correlationId","updateContext","length","warn","completionEntry","findOne","EVENT_TYPES","PrintStarted","save","loadPrintContexts","contexts","aggregate","$sort","$group","_id","$first","$match","$nin","PrintDone","PrintFailed","Object","fromEntries","map","c","listGroupByPrinterStatus","printCompletionsAggr","printEvents","$push","processCompletions"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ function processCompletions(completions) {
|
|
|
15
15
|
return completions.map((pc)=>{
|
|
16
16
|
pc.printerId = pc.printerId ?? pc._id;
|
|
17
17
|
delete pc._id;
|
|
18
|
-
const jobs = (0, _arrayutil.groupArrayBy)(pc.printEvents, (e)=>e.context?.correlationId);
|
|
18
|
+
const jobs = (0, _arrayutil.groupArrayBy)(pc.printEvents.filter((e)=>e.context?.correlationId), (e)=>e.context?.correlationId);
|
|
19
19
|
pc.printJobs = Object.entries(jobs).map(([id, events])=>{
|
|
20
20
|
const eventMap = events.map(({ status, createdAt, fileName, completionLog })=>({
|
|
21
21
|
status,
|
|
@@ -51,7 +51,7 @@ function processCompletions(completions) {
|
|
|
51
51
|
pc.successEventsLastWeek = successEvents.filter((e)=>e.createdAt > Date.now() - 7 * durationDayMSec)?.length;
|
|
52
52
|
pc.successEventsLast48H = successEvents.filter((e)=>e.createdAt > Date.now() - 2 * durationDayMSec)?.length;
|
|
53
53
|
pc.successEventsLast24H = successEvents.filter((e)=>e.createdAt > Date.now() - durationDayMSec)?.length;
|
|
54
|
-
|
|
54
|
+
pc.printEvents = [];
|
|
55
55
|
return pc;
|
|
56
56
|
});
|
|
57
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/print-completion.shared.ts"],"names":["processCompletions","durationDayMSec","completions","map","pc","printerId","_id","jobs","groupArrayBy","printEvents","e","context","correlationId","printJobs","Object","entries","id","events","eventMap","status","createdAt","fileName","completionLog","lastEvent","reduce","e1","e2","correlationIds","j","printCount","length","eventCount","mappedEvents","failureEvents","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/print-completion.shared.ts"],"names":["processCompletions","durationDayMSec","completions","map","pc","printerId","_id","jobs","groupArrayBy","printEvents","filter","e","context","correlationId","printJobs","Object","entries","id","events","eventMap","status","createdAt","fileName","completionLog","lastEvent","reduce","e1","e2","correlationIds","j","printCount","length","eventCount","mappedEvents","failureEvents","EVENT_TYPES","PrintFailed","failureCount","lastFailure","j1","j2","failureEventsLastWeek","Date","now","failureEventsLast48H","failureEventsLast24H","successEvents","PrintDone","successCount","lastSuccess","successEventsLastWeek","successEventsLast48H","successEventsLast24H"],"mappings":"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"}
|
|
@@ -18,25 +18,22 @@ const _urlutils = require("../../utils/url.utils");
|
|
|
18
18
|
class PrinterService {
|
|
19
19
|
eventEmitter2;
|
|
20
20
|
logger;
|
|
21
|
-
constructor(
|
|
21
|
+
constructor(eventEmitter2, loggerFactory){
|
|
22
22
|
this.eventEmitter2 = eventEmitter2;
|
|
23
23
|
this.logger = loggerFactory(PrinterService.name);
|
|
24
24
|
}
|
|
25
|
-
toUnsafeDto(entity) {
|
|
26
|
-
return {
|
|
27
|
-
...this.toDto(entity),
|
|
28
|
-
apiKey: entity.apiKey,
|
|
29
|
-
printerURL: entity.printerURL,
|
|
30
|
-
printerType: entity.printerType
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
25
|
toDto(entity) {
|
|
34
26
|
return {
|
|
35
27
|
id: entity.id,
|
|
36
28
|
name: entity.name,
|
|
37
29
|
enabled: entity.enabled,
|
|
38
30
|
disabledReason: entity.disabledReason,
|
|
39
|
-
dateAdded: entity.dateAdded
|
|
31
|
+
dateAdded: entity.dateAdded,
|
|
32
|
+
apiKey: entity.apiKey,
|
|
33
|
+
username: entity.username,
|
|
34
|
+
password: entity.password,
|
|
35
|
+
printerURL: entity.printerURL,
|
|
36
|
+
printerType: entity.printerType
|
|
40
37
|
};
|
|
41
38
|
}
|
|
42
39
|
async list() {
|
|
@@ -73,9 +70,11 @@ class PrinterService {
|
|
|
73
70
|
updateData.printerURL = (0, _normalizeurl.normalizeUrl)(updateData.printerURL, {
|
|
74
71
|
defaultProtocol: _urlutils.defaultHttpProtocol
|
|
75
72
|
});
|
|
76
|
-
const { printerURL, apiKey, enabled, name, printerType } = await (0, _validators.validateInput)(updateData, _printerservicevalidation.
|
|
73
|
+
const { printerURL, apiKey, username, password, enabled, name, printerType } = await (0, _validators.validateInput)(updateData, _printerservicevalidation.createPrinterSchema);
|
|
77
74
|
printer.printerURL = printerURL;
|
|
78
75
|
printer.apiKey = apiKey;
|
|
76
|
+
printer.username = username;
|
|
77
|
+
printer.password = password;
|
|
79
78
|
if (enabled !== undefined) {
|
|
80
79
|
printer.enabled = enabled;
|
|
81
80
|
}
|
|
@@ -138,9 +137,11 @@ class PrinterService {
|
|
|
138
137
|
new: true,
|
|
139
138
|
useFindAndModify: false
|
|
140
139
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
140
|
+
if (printer) {
|
|
141
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
142
|
+
printer
|
|
143
|
+
});
|
|
144
|
+
}
|
|
144
145
|
return printer;
|
|
145
146
|
}
|
|
146
147
|
async updateFeedRate(printerId, feedRate) {
|
|
@@ -152,28 +153,11 @@ class PrinterService {
|
|
|
152
153
|
new: true,
|
|
153
154
|
useFindAndModify: false
|
|
154
155
|
});
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
async updateConnectionSettings(printerId, { printerURL, apiKey, printerType }) {
|
|
161
|
-
const update = {
|
|
162
|
-
printerURL: (0, _normalizeurl.normalizeUrl)(printerURL, {
|
|
163
|
-
defaultProtocol: _urlutils.defaultHttpProtocol
|
|
164
|
-
}),
|
|
165
|
-
apiKey,
|
|
166
|
-
printerType
|
|
167
|
-
};
|
|
168
|
-
await (0, _validators.validateInput)(update, _printerservicevalidation.createMongoPrinterRules);
|
|
169
|
-
await this.get(printerId);
|
|
170
|
-
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
171
|
-
new: true,
|
|
172
|
-
useFindAndModify: false
|
|
173
|
-
});
|
|
174
|
-
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
175
|
-
printer
|
|
176
|
-
});
|
|
156
|
+
if (printer) {
|
|
157
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
158
|
+
printer
|
|
159
|
+
});
|
|
160
|
+
}
|
|
177
161
|
return printer;
|
|
178
162
|
}
|
|
179
163
|
async updateEnabled(printerId, enabled) {
|
|
@@ -183,15 +167,17 @@ class PrinterService {
|
|
|
183
167
|
} : {
|
|
184
168
|
enabled
|
|
185
169
|
};
|
|
186
|
-
await (0, _validators.validateInput)(update, _printerservicevalidation.
|
|
170
|
+
await (0, _validators.validateInput)(update, _printerservicevalidation.updatePrinterEnabledSchema);
|
|
187
171
|
await this.get(printerId);
|
|
188
172
|
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
189
173
|
new: true,
|
|
190
174
|
useFindAndModify: false
|
|
191
175
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
176
|
+
if (printer) {
|
|
177
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
178
|
+
printer
|
|
179
|
+
});
|
|
180
|
+
}
|
|
195
181
|
return printer;
|
|
196
182
|
}
|
|
197
183
|
async updateDisabledReason(printerId, disabledReason) {
|
|
@@ -200,15 +186,17 @@ class PrinterService {
|
|
|
200
186
|
disabledReason,
|
|
201
187
|
enabled
|
|
202
188
|
};
|
|
203
|
-
await (0, _validators.validateInput)(update, _printerservicevalidation.
|
|
189
|
+
await (0, _validators.validateInput)(update, _printerservicevalidation.updatePrinterDisabledReasonSchema);
|
|
204
190
|
await this.get(printerId);
|
|
205
191
|
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
206
192
|
new: true,
|
|
207
193
|
useFindAndModify: false
|
|
208
194
|
});
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
195
|
+
if (printer) {
|
|
196
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
197
|
+
printer
|
|
198
|
+
});
|
|
199
|
+
}
|
|
212
200
|
return printer;
|
|
213
201
|
}
|
|
214
202
|
async validateAndDefault(printer) {
|
|
@@ -221,7 +209,7 @@ class PrinterService {
|
|
|
221
209
|
defaultProtocol: _urlutils.defaultHttpProtocol
|
|
222
210
|
});
|
|
223
211
|
}
|
|
224
|
-
return await (0, _validators.validateInput)(mergedPrinter, _printerservicevalidation.
|
|
212
|
+
return await (0, _validators.validateInput)(mergedPrinter, _printerservicevalidation.createPrinterSchema);
|
|
225
213
|
}
|
|
226
214
|
}
|
|
227
215
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/printer.service.ts"],"names":["PrinterService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/printer.service.ts"],"names":["PrinterService","logger","constructor","eventEmitter2","loggerFactory","name","toDto","entity","id","enabled","disabledReason","dateAdded","apiKey","username","password","printerURL","printerType","list","Printer","find","sort","get","printerId","filter","_id","printer","findOne","NotFoundException","create","newPrinter","emitEvent","Error","mergedPrinter","validateAndDefault","Date","now","emit","printerEvents","printerCreated","update","updateData","normalizeUrl","defaultProtocol","defaultHttpProtocol","validateInput","createPrinterSchema","undefined","save","printerUpdated","deleteMany","printerIds","$in","printersDeleted","delete","findOneAndDelete","batchImport","printers","length","log","newPrinters","createdPrinter","push","batchPrinterCreated","updateFlowRate","flowRate","findByIdAndUpdate","new","useFindAndModify","updateFeedRate","feedRate","updateEnabled","updatePrinterEnabledSchema","updateDisabledReason","updatePrinterDisabledReasonSchema"],"mappings":"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"}
|
|
@@ -16,9 +16,9 @@ const _authorizationconstants = require("../../constants/authorization.constants
|
|
|
16
16
|
class RefreshTokenService {
|
|
17
17
|
settingsStore;
|
|
18
18
|
logger;
|
|
19
|
-
constructor(
|
|
20
|
-
this.logger = loggerFactory(RefreshTokenService.name);
|
|
19
|
+
constructor(loggerFactory, settingsStore){
|
|
21
20
|
this.settingsStore = settingsStore;
|
|
21
|
+
this.logger = loggerFactory(RefreshTokenService.name);
|
|
22
22
|
}
|
|
23
23
|
toDto(entity) {
|
|
24
24
|
return {
|
|
@@ -28,15 +28,12 @@ class RefreshTokenService {
|
|
|
28
28
|
refreshAttemptsUsed: entity.refreshAttemptsUsed
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
async getRefreshToken(refreshToken
|
|
31
|
+
async getRefreshToken(refreshToken) {
|
|
32
32
|
const userRefreshToken = await _models.RefreshToken.findOne({
|
|
33
33
|
refreshToken
|
|
34
34
|
});
|
|
35
35
|
if (!userRefreshToken) {
|
|
36
|
-
|
|
37
|
-
throw new _runtimeexceptions.AuthenticationError("The refresh token was not found", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
36
|
+
throw new _runtimeexceptions.AuthenticationError("The refresh token was not found", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
|
|
40
37
|
}
|
|
41
38
|
return userRefreshToken;
|
|
42
39
|
}
|
|
@@ -56,7 +53,7 @@ class RefreshTokenService {
|
|
|
56
53
|
return refreshToken;
|
|
57
54
|
}
|
|
58
55
|
async updateRefreshTokenAttempts(refreshToken, refreshAttemptsUsed) {
|
|
59
|
-
await this.getRefreshToken(refreshToken
|
|
56
|
+
await this.getRefreshToken(refreshToken);
|
|
60
57
|
await _models.RefreshToken.updateOne({
|
|
61
58
|
refreshToken
|
|
62
59
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/refresh-token.service.ts"],"names":["RefreshTokenService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/refresh-token.service.ts"],"names":["RefreshTokenService","logger","constructor","loggerFactory","settingsStore","name","toDto","entity","id","userId","toString","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","userRefreshToken","RefreshToken","findOne","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","updateOne","new","purgeOutdatedRefreshTokensByUserId","result","deleteMany","$lt","deletedCount","debug","purgeAllOutdatedRefreshTokens","deleteRefreshTokenByUserId","deleteRefreshToken","deleteOne"],"mappings":"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"}
|
|
@@ -13,15 +13,18 @@ const _authorizationconstants = require("../../constants/authorization.constants
|
|
|
13
13
|
const _models = require("../../models");
|
|
14
14
|
const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
15
15
|
class RoleService {
|
|
16
|
-
settingsStore;
|
|
17
16
|
appDefaultRole;
|
|
18
17
|
appDefaultRoleNoLogin;
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
settingsStore;
|
|
19
|
+
logger;
|
|
20
|
+
constructor(loggerFactory, appDefaultRole, appDefaultRoleNoLogin, settingsStore){
|
|
21
21
|
this.appDefaultRole = appDefaultRole;
|
|
22
22
|
this.appDefaultRoleNoLogin = appDefaultRoleNoLogin;
|
|
23
|
+
this.settingsStore = settingsStore;
|
|
24
|
+
this._roles = [];
|
|
25
|
+
this.logger = loggerFactory(RoleService.name);
|
|
23
26
|
}
|
|
24
|
-
_roles
|
|
27
|
+
_roles;
|
|
25
28
|
get roles() {
|
|
26
29
|
return this._roles;
|
|
27
30
|
}
|
|
@@ -48,7 +51,13 @@ class RoleService {
|
|
|
48
51
|
return permissions;
|
|
49
52
|
}
|
|
50
53
|
getRolePermissions(role) {
|
|
54
|
+
if (!role?.length) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
51
57
|
const normalizedRole = this.normalizeRoleIdOrName(role);
|
|
58
|
+
if (!normalizedRole?.length) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
52
61
|
return _authorizationconstants.ROLE_PERMS[normalizedRole];
|
|
53
62
|
}
|
|
54
63
|
async getAppDefaultRoleIds() {
|
|
@@ -114,7 +123,7 @@ class RoleService {
|
|
|
114
123
|
normalizeRoleIdOrName(assignedRole) {
|
|
115
124
|
const roleInstance = this.roles.find((r)=>r.id === assignedRole || r.name === assignedRole);
|
|
116
125
|
if (!roleInstance) {
|
|
117
|
-
|
|
126
|
+
this.logger.warn(`The role by provided id was not found. Skipping.`);
|
|
118
127
|
return;
|
|
119
128
|
}
|
|
120
129
|
return roleInstance.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/mongoose/role.service.ts"],"names":["RoleService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/role.service.ts"],"names":["RoleService","logger","constructor","loggerFactory","appDefaultRole","appDefaultRoleNoLogin","settingsStore","_roles","name","roles","toDto","role","id","getAppDefaultRole","getLoginRequired","getRolesPermissions","permissions","length","normalizedRole","normalizeRoleIdOrName","rolePermissions","getRolePermissions","union","ROLE_PERMS","getAppDefaultRoleIds","syncRoles","guestRole","getRoleByName","getSynchronizedRoleByName","roleName","authorizeRole","requiredRole","assignedRoles","find","ar","authorizeRoles","requiredRoles","subset","isAuthorized","forEach","rr","result","r","NotFoundException","getManyRoles","roleIds","map","roleId","getRole","Object","values","ROLES","storedRole","Role","findOne","newRole","create","push","assignedRole","roleInstance","warn"],"mappings":"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"}
|