@fdm-monster/server 1.8.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.template +6 -4
- 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 +27 -28
- package/RELEASE_NOTES.MD +69 -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 +8 -12
- 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 +45 -29
- 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 +87 -88
- 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 +25 -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-factory.js +2 -2
- package/dist/handlers/logger-factory.js.map +1 -1
- package/dist/handlers/logger.js +11 -58
- package/dist/handlers/logger.js.map +1 -1
- package/dist/handlers/logging/file-logging.transport.js +35 -0
- package/dist/handlers/logging/file-logging.transport.js.map +1 -0
- package/dist/handlers/logging/loki-logging.transport.js +55 -0
- package/dist/handlers/logging/loki-logging.transport.js.map +1 -0
- package/dist/handlers/logging/static.logger.js +134 -0
- package/dist/handlers/logging/static.logger.js.map +1 -0
- package/dist/handlers/validators.js +7 -116
- package/dist/handlers/validators.js.map +1 -1
- package/dist/index.js +13 -0
- 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 +35 -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 +11 -43
- 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 +8 -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 +22 -18
- 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 +109 -96
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +25 -16
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +5 -7
- 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 +1 -38
- 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 +19 -192
- 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 +10 -19
- 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 +235 -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 +79 -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 +53 -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 +46 -48
- 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
|
@@ -10,65 +10,28 @@ Object.defineProperty(exports, "TaskManagerService", {
|
|
|
10
10
|
});
|
|
11
11
|
const _toadscheduler = require("toad-scheduler");
|
|
12
12
|
const _awilix = require("awilix");
|
|
13
|
-
const _jobexceptions = require("
|
|
14
|
-
const
|
|
13
|
+
const _jobexceptions = require("../exceptions/job.exceptions");
|
|
14
|
+
const _errorutils = require("../utils/error.utils");
|
|
15
15
|
class TaskManagerService {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
cradleService;
|
|
17
|
+
toadScheduler;
|
|
18
|
+
taskStates;
|
|
19
19
|
logger;
|
|
20
|
-
constructor(
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
20
|
+
constructor(loggerFactory, cradleService, toadScheduler){
|
|
21
|
+
this.cradleService = cradleService;
|
|
22
|
+
this.toadScheduler = toadScheduler;
|
|
23
|
+
this.taskStates = {};
|
|
24
|
+
this.logger = loggerFactory(TaskManagerService.name);
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
throw new _jobexceptions.JobValidationException("Task ID was not provided. Cant register task or schedule job.", taskId);
|
|
28
|
-
}
|
|
29
|
-
const prefix = `Job '${workload?.name || "anonymous"}' with ID '${taskId}'`;
|
|
30
|
-
if (!!this.taskStates[taskId]) {
|
|
31
|
-
throw new _jobexceptions.JobValidationException(`${prefix} was already registered. Cant register a key twice.`, taskId);
|
|
32
|
-
}
|
|
33
|
-
if (typeof workload !== "function") {
|
|
34
|
-
if (typeof workload !== "string") {
|
|
35
|
-
throw new _jobexceptions.JobValidationException(`${prefix} is not a callable nor a string dependency to lookup. It can't be scheduled.`, taskId);
|
|
36
|
-
}
|
|
37
|
-
let resolvedService;
|
|
38
|
-
try {
|
|
39
|
-
resolvedService = this.cradle[workload];
|
|
40
|
-
} catch (e) {
|
|
41
|
-
if (e instanceof _awilix.AwilixResolutionError) {
|
|
42
|
-
throw new _jobexceptions.JobValidationException(`${prefix} had an awilix dependency resolution error. It can't be scheduled without fixing this problem. Inner error:\n` + e.stack, taskId);
|
|
43
|
-
} else {
|
|
44
|
-
throw new _jobexceptions.JobValidationException(`${prefix} is not a registered awilix dependency. It can't be scheduled. Error:\n` + e.stack, taskId);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (typeof resolvedService?.run !== "function") {
|
|
48
|
-
throw new _jobexceptions.JobValidationException(`${prefix} was resolved but it doesn't have a 'run(..)' method to call.`, taskId);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (!schedulerOptions?.periodic && !schedulerOptions?.runOnce && !schedulerOptions?.runDelayed) {
|
|
52
|
-
throw new _jobexceptions.JobValidationException(`Provide 'periodic' or 'runOnce' or 'runDelayed' option'.`, taskId);
|
|
53
|
-
}
|
|
54
|
-
if (!schedulerOptions?.periodic && !!schedulerOptions.disabled) {
|
|
55
|
-
throw new _jobexceptions.JobValidationException(`Only tasks of type 'periodic' can be disabled at boot.`, taskId);
|
|
56
|
-
}
|
|
57
|
-
if (schedulerOptions?.runDelayed && !schedulerOptions.milliseconds && !schedulerOptions.seconds) {
|
|
58
|
-
throw new _jobexceptions.JobValidationException(`Provide a delayed timing parameter (milliseconds|seconds)'`, taskId);
|
|
59
|
-
}
|
|
60
|
-
if (schedulerOptions?.periodic && !schedulerOptions.milliseconds && !schedulerOptions.seconds && !schedulerOptions.minutes && !schedulerOptions.hours && !schedulerOptions.days) {
|
|
61
|
-
throw new _jobexceptions.JobValidationException(`Provide a periodic timing parameter (milliseconds|seconds|minutes|hours|days)'`, taskId);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
registerJobOrTask({ id: taskId, task: asyncTaskCallbackOrToken, preset: schedulerOptions }) {
|
|
26
|
+
registerJobOrTask(registration) {
|
|
27
|
+
const { id: taskId, task: serviceIdentifier, preset: schedulerOptions } = registration;
|
|
65
28
|
try {
|
|
66
|
-
this.validateInput(taskId,
|
|
29
|
+
this.validateInput(taskId, serviceIdentifier, schedulerOptions);
|
|
67
30
|
} catch (e) {
|
|
68
|
-
this.logger.error(e
|
|
31
|
+
this.logger.error((0, _errorutils.errorSummary)(e), schedulerOptions);
|
|
69
32
|
return;
|
|
70
33
|
}
|
|
71
|
-
const timedTask = this.getSafeTimedTask(taskId,
|
|
34
|
+
const timedTask = this.getSafeTimedTask(taskId, serviceIdentifier);
|
|
72
35
|
this.taskStates[taskId] = {
|
|
73
36
|
options: schedulerOptions,
|
|
74
37
|
timedTask
|
|
@@ -76,10 +39,10 @@ class TaskManagerService {
|
|
|
76
39
|
if (schedulerOptions.runOnce) {
|
|
77
40
|
timedTask.execute();
|
|
78
41
|
} else if (schedulerOptions.runDelayed) {
|
|
79
|
-
const delay = (schedulerOptions.milliseconds
|
|
42
|
+
const delay = (schedulerOptions.milliseconds ?? 0) + (schedulerOptions.seconds ?? 0) * 1000;
|
|
80
43
|
this.runTimeoutTaskInstance(taskId, delay);
|
|
81
44
|
} else {
|
|
82
|
-
this
|
|
45
|
+
this.scheduleEnabledPeriodicJob(taskId);
|
|
83
46
|
}
|
|
84
47
|
}
|
|
85
48
|
scheduleDisabledJob(taskId, failIfEnabled = true) {
|
|
@@ -92,18 +55,18 @@ class TaskManagerService {
|
|
|
92
55
|
return;
|
|
93
56
|
}
|
|
94
57
|
taskState.options.disabled = false;
|
|
95
|
-
this
|
|
58
|
+
this.scheduleEnabledPeriodicJob(taskId);
|
|
96
59
|
}
|
|
97
60
|
disableJob(taskId, failIfDisabled = true) {
|
|
98
61
|
if (this.isTaskDisabled(taskId)) {
|
|
99
62
|
if (failIfDisabled) {
|
|
100
|
-
throw new _jobexceptions.JobValidationException("
|
|
63
|
+
throw new _jobexceptions.JobValidationException("Can't disable a job which is already disabled", taskId);
|
|
101
64
|
}
|
|
102
65
|
return;
|
|
103
66
|
}
|
|
104
67
|
const taskState = this.getTaskState(taskId);
|
|
105
68
|
taskState.options.disabled = true;
|
|
106
|
-
taskState.job
|
|
69
|
+
taskState.job?.stop();
|
|
107
70
|
}
|
|
108
71
|
isTaskDisabled(taskId) {
|
|
109
72
|
return !!this.getTaskState(taskId).options.disabled;
|
|
@@ -111,7 +74,7 @@ class TaskManagerService {
|
|
|
111
74
|
deregisterTask(taskId) {
|
|
112
75
|
this.getTaskState(taskId);
|
|
113
76
|
delete this.taskStates[taskId];
|
|
114
|
-
this.
|
|
77
|
+
this.toadScheduler.removeById(taskId);
|
|
115
78
|
}
|
|
116
79
|
getTaskState(taskId) {
|
|
117
80
|
const taskState = this.taskStates[taskId];
|
|
@@ -123,23 +86,57 @@ class TaskManagerService {
|
|
|
123
86
|
runTimeoutTaskInstance(taskId, timeoutMs) {
|
|
124
87
|
const taskState = this.getTaskState(taskId);
|
|
125
88
|
this.logger.log(`Running delayed task '${taskId}' in ${timeoutMs}ms`);
|
|
126
|
-
setTimeout(()=>taskState.timedTask.execute(), timeoutMs
|
|
89
|
+
setTimeout(()=>taskState.timedTask.execute(), timeoutMs);
|
|
127
90
|
}
|
|
128
|
-
|
|
91
|
+
stopSchedulerTasks() {
|
|
92
|
+
this.toadScheduler.stop();
|
|
93
|
+
}
|
|
94
|
+
validateInput(taskId, serviceIdentifier, schedulerOptions) {
|
|
95
|
+
if (!taskId) {
|
|
96
|
+
throw new _jobexceptions.JobValidationException("Task ID was not provided. Can't register task or schedule job.", taskId);
|
|
97
|
+
}
|
|
98
|
+
const serviceName = serviceIdentifier || "unknown";
|
|
99
|
+
const prefix = `Job '${schedulerOptions?.name ?? serviceName}' with ID '${taskId}'`;
|
|
100
|
+
if (this.taskStates[taskId]) {
|
|
101
|
+
throw new _jobexceptions.JobValidationException(`${prefix} was already registered. Can't register a key twice.`, taskId);
|
|
102
|
+
}
|
|
103
|
+
let resolvedService;
|
|
104
|
+
try {
|
|
105
|
+
resolvedService = this.cradleService.resolve(serviceIdentifier);
|
|
106
|
+
} catch (e) {
|
|
107
|
+
if (e instanceof _awilix.AwilixResolutionError) {
|
|
108
|
+
throw new _jobexceptions.JobValidationException(`${prefix} had an awilix dependency resolution error. It can't be scheduled without fixing this problem. Inner error:\n` + e.stack, taskId);
|
|
109
|
+
} else {
|
|
110
|
+
throw new _jobexceptions.JobValidationException(`${prefix} is not a registered awilix dependency. It can't be scheduled. Error:\n` + e.stack, taskId);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (typeof resolvedService?.run !== "function") {
|
|
114
|
+
throw new _jobexceptions.JobValidationException(`${prefix} was resolved but it doesn't have a 'run()' method to call.`, taskId);
|
|
115
|
+
}
|
|
116
|
+
if (!schedulerOptions?.periodic && !schedulerOptions?.runOnce && !schedulerOptions?.runDelayed) {
|
|
117
|
+
throw new _jobexceptions.JobValidationException(`${prefix} Provide 'periodic', 'runOnce', or 'runDelayed' option.`, taskId);
|
|
118
|
+
}
|
|
119
|
+
if (!schedulerOptions?.periodic && !!schedulerOptions.disabled) {
|
|
120
|
+
throw new _jobexceptions.JobValidationException(`${prefix} Only tasks of type 'periodic' can be disabled at boot.`, taskId);
|
|
121
|
+
}
|
|
122
|
+
if (schedulerOptions?.runDelayed && !schedulerOptions.milliseconds && !schedulerOptions.seconds) {
|
|
123
|
+
throw new _jobexceptions.JobValidationException(`${prefix} Provide a delayed timing parameter (milliseconds|seconds)`, taskId);
|
|
124
|
+
}
|
|
125
|
+
if (schedulerOptions?.periodic && !schedulerOptions.milliseconds && !schedulerOptions.seconds && !schedulerOptions.minutes && !schedulerOptions.hours && !schedulerOptions.days) {
|
|
126
|
+
throw new _jobexceptions.JobValidationException(`${prefix} Provide a periodic timing parameter (milliseconds|seconds|minutes|hours|days)`, taskId);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
getSafeTimedTask(taskId, serviceIdentifier) {
|
|
129
130
|
const asyncHandler = async ()=>{
|
|
130
|
-
await this.timeTask(taskId,
|
|
131
|
+
await this.timeTask(taskId, serviceIdentifier);
|
|
131
132
|
};
|
|
132
133
|
return new _toadscheduler.AsyncTask(taskId, asyncHandler, this.getErrorHandler(taskId));
|
|
133
134
|
}
|
|
134
|
-
async timeTask(taskId,
|
|
135
|
-
|
|
135
|
+
async timeTask(taskId, serviceIdentifier) {
|
|
136
|
+
const taskState = this.taskStates[taskId];
|
|
136
137
|
taskState.started = Date.now();
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
await taskService.run();
|
|
140
|
-
} else {
|
|
141
|
-
await handler();
|
|
142
|
-
}
|
|
138
|
+
const taskService = this.cradleService.resolve(serviceIdentifier);
|
|
139
|
+
await taskService.run();
|
|
143
140
|
taskState.duration = Date.now() - taskState.started;
|
|
144
141
|
if (taskState.options?.logFirstCompletion !== false && !taskState?.firstCompletion) {
|
|
145
142
|
this.logger.log(`Task '${taskId}' first completion. Duration ${taskState.duration}ms`);
|
|
@@ -148,23 +145,20 @@ class TaskManagerService {
|
|
|
148
145
|
}
|
|
149
146
|
getErrorHandler(taskId) {
|
|
150
147
|
return (error)=>{
|
|
151
|
-
const
|
|
152
|
-
|
|
148
|
+
const taskState = this.taskStates[taskId];
|
|
149
|
+
taskState.lastError ??= {
|
|
153
150
|
time: Date.now(),
|
|
154
151
|
error
|
|
155
152
|
};
|
|
156
|
-
this.logger.error(`Task '${taskId}' threw an exception
|
|
153
|
+
this.logger.error(`Task '${taskId}' threw an exception: ${error.stack}`);
|
|
157
154
|
};
|
|
158
155
|
}
|
|
159
|
-
|
|
160
|
-
this.jobScheduler.stop();
|
|
161
|
-
}
|
|
162
|
-
#scheduleEnabledPeriodicJob(taskId) {
|
|
156
|
+
scheduleEnabledPeriodicJob(taskId) {
|
|
163
157
|
const taskState = this.getTaskState(taskId);
|
|
164
158
|
if (!taskState?.timedTask || !taskState?.options) {
|
|
165
159
|
throw new _jobexceptions.JobValidationException(`The requested task with ID ${taskId} was not registered properly ('timedTask' or 'options' missing).`, taskId);
|
|
166
160
|
}
|
|
167
|
-
const schedulerOptions = taskState
|
|
161
|
+
const schedulerOptions = taskState.options;
|
|
168
162
|
const timedTask = taskState.timedTask;
|
|
169
163
|
if (!schedulerOptions?.periodic) {
|
|
170
164
|
throw new _jobexceptions.JobValidationException(`The requested task with ID ${taskId} is not periodic and cannot be enabled.`, taskId);
|
|
@@ -173,7 +167,7 @@ class TaskManagerService {
|
|
|
173
167
|
this.logger.log(`Task '${taskId}' was scheduled (runImmediately: ${!!schedulerOptions.runImmediately}).`);
|
|
174
168
|
const job = new _toadscheduler.SimpleIntervalJob(schedulerOptions, timedTask);
|
|
175
169
|
taskState.job = job;
|
|
176
|
-
this.
|
|
170
|
+
this.toadScheduler.addSimpleIntervalJob(job);
|
|
177
171
|
} else {
|
|
178
172
|
this.logger.log(`Task '${taskId}' was marked as disabled (deferred execution).`);
|
|
179
173
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/task-manager.service.ts"],"names":["TaskManagerService","taskStates","logger","constructor","loggerFactory","cradleService","toadScheduler","name","registerJobOrTask","registration","id","taskId","task","serviceIdentifier","preset","schedulerOptions","validateInput","e","error","errorSummary","timedTask","getSafeTimedTask","options","runOnce","execute","runDelayed","delay","milliseconds","seconds","runTimeoutTaskInstance","scheduleEnabledPeriodicJob","scheduleDisabledJob","failIfEnabled","taskState","getTaskState","disabled","JobValidationException","disableJob","failIfDisabled","isTaskDisabled","job","stop","deregisterTask","removeById","timeoutMs","log","setTimeout","stopSchedulerTasks","serviceName","prefix","resolvedService","resolve","AwilixResolutionError","stack","run","periodic","minutes","hours","days","asyncHandler","timeTask","AsyncTask","getErrorHandler","started","Date","now","taskService","duration","logFirstCompletion","firstCompletion","lastError","time","runImmediately","SimpleIntervalJob","addSimpleIntervalJob"],"mappings":";;;;+BA0BaA;;;eAAAA;;;+BA1B+C;wBACtB;+BACC;4BAMV;AAkBtB,MAAMA;;;IACHC,WAA2C;IAClCC,OAAsB;IAEvCC,YACEC,aAA6B,EAC7B,AAAiBC,aAA4B,EAC7C,AAAiBC,aAA4B,CAC7C;aAFiBD,gBAAAA;aACAC,gBAAAA;aANXL,aAAwC,CAAC;QAQ/C,IAAI,CAACC,MAAM,GAAGE,cAAcJ,mBAAmBO,IAAI;IACrD;IAMAC,kBAAkBC,YAA8B,EAAQ;QACtD,MAAM,EAAEC,IAAIC,MAAM,EAAEC,MAAMC,iBAAiB,EAAEC,QAAQC,gBAAgB,EAAE,GAAGN;QAE1E,IAAI;YACF,IAAI,CAACO,aAAa,CAACL,QAAQE,mBAAmBE;QAChD,EAAE,OAAOE,GAAG;YACV,IAAI,CAACf,MAAM,CAACgB,KAAK,CAACC,IAAAA,wBAAY,EAACF,IAAIF;YACnC;QACF;QAEA,MAAMK,YAAY,IAAI,CAACC,gBAAgB,CAACV,QAAQE;QAEhD,IAAI,CAACZ,UAAU,CAACU,OAAO,GAAG;YACxBW,SAASP;YACTK;QACF;QAEA,IAAIL,iBAAiBQ,OAAO,EAAE;YAC5BH,UAAUI,OAAO;QACnB,OAAO,IAAIT,iBAAiBU,UAAU,EAAE;YACtC,MAAMC,QAAQ,AAACX,CAAAA,iBAAiBY,YAAY,IAAI,CAAA,IAAK,AAACZ,CAAAA,iBAAiBa,OAAO,IAAI,CAAA,IAAK;YACvF,IAAI,CAACC,sBAAsB,CAAClB,QAAQe;QACtC,OAAO;YAEL,IAAI,CAACI,0BAA0B,CAACnB;QAClC;IACF;IAOAoB,oBAAoBpB,MAAc,EAAEqB,gBAAgB,IAAI,EAAQ;QAC9D,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACvB;QACpC,MAAMI,mBAAmBkB,WAAWX;QAEpC,IAAIP,kBAAkBoB,aAAa,MAAM;YACvC,IAAIH,eAAe;gBACjB,MAAM,IAAII,qCAAsB,CAC9B,CAAC,2BAA2B,EAAEzB,OAAO,yDAAyD,CAAC,EAC/FA;YAEJ;YACA;QACF;QAEAsB,UAAUX,OAAO,CAACa,QAAQ,GAAG;QAC7B,IAAI,CAACL,0BAA0B,CAACnB;IAClC;IAOA0B,WAAW1B,MAAc,EAAE2B,iBAAiB,IAAI,EAAQ;QACtD,IAAI,IAAI,CAACC,cAAc,CAAC5B,SAAS;YAC/B,IAAI2B,gBAAgB;gBAClB,MAAM,IAAIF,qCAAsB,CAAC,iDAAiDzB;YACpF;YACA;QACF;QAEA,MAAMsB,YAAY,IAAI,CAACC,YAAY,CAACvB;QACpCsB,UAAUX,OAAO,CAACa,QAAQ,GAAG;QAC7BF,UAAUO,GAAG,EAAEC;IACjB;IAOAF,eAAe5B,MAAc,EAAW;QACtC,OAAO,CAAC,CAAC,IAAI,CAACuB,YAAY,CAACvB,QAAQW,OAAO,CAACa,QAAQ;IACrD;IAMAO,eAAe/B,MAAc,EAAQ;QACnC,IAAI,CAACuB,YAAY,CAACvB;QAClB,OAAO,IAAI,CAACV,UAAU,CAACU,OAAO;QAC9B,IAAI,CAACL,aAAa,CAACqC,UAAU,CAAChC;IAChC;IAOAuB,aAAavB,MAAc,EAAa;QACtC,MAAMsB,YAAY,IAAI,CAAChC,UAAU,CAACU,OAAO;QACzC,IAAI,CAACsB,WAAW;YACd,MAAM,IAAIG,qCAAsB,CAAC,CAAC,2BAA2B,EAAEzB,OAAO,mBAAmB,CAAC,EAAEA;QAC9F;QACA,OAAOsB;IACT;IAOAJ,uBAAuBlB,MAAc,EAAEiC,SAAiB,EAAQ;QAC9D,MAAMX,YAAY,IAAI,CAACC,YAAY,CAACvB;QACpC,IAAI,CAACT,MAAM,CAAC2C,GAAG,CAAC,CAAC,sBAAsB,EAAElC,OAAO,KAAK,EAAEiC,UAAU,EAAE,CAAC;QACpEE,WAAW,IAAMb,UAAUb,SAAS,CAACI,OAAO,IAAIoB;IAClD;IAKAG,qBAA2B;QACzB,IAAI,CAACzC,aAAa,CAACmC,IAAI;IACzB;IAKAzB,cAAcL,MAAc,EAAEE,iBAAyB,EAAEE,gBAAsC,EAAQ;QACrG,IAAI,CAACJ,QAAQ;YACX,MAAM,IAAIyB,qCAAsB,CAAC,kEAAkEzB;QACrG;QAEA,MAAMqC,cAAcnC,qBAAqB;QACzC,MAAMoC,SAAS,CAAC,KAAK,EAAElC,kBAAkBR,QAAQyC,YAAY,WAAW,EAAErC,OAAO,CAAC,CAAC;QAEnF,IAAI,IAAI,CAACV,UAAU,CAACU,OAAO,EAAE;YAC3B,MAAM,IAAIyB,qCAAsB,CAAC,GAAGa,OAAO,oDAAoD,CAAC,EAAEtC;QACpG;QAEA,IAAIuC;QACJ,IAAI;YACFA,kBAAkB,IAAI,CAAC7C,aAAa,CAAC8C,OAAO,CAActC;QAC5D,EAAE,OAAOI,GAAG;YACV,IAAIA,aAAamC,6BAAqB,EAAE;gBACtC,MAAM,IAAIhB,qCAAsB,CAC9B,GAAGa,OAAO,6GAA6G,CAAC,GACtHhC,EAAEoC,KAAK,EACT1C;YAEJ,OAAO;gBACL,MAAM,IAAIyB,qCAAsB,CAC9B,GAAGa,OAAO,uEAAuE,CAAC,GAAG,AAAChC,EAAYoC,KAAK,EACvG1C;YAEJ;QACF;QAEA,IAAI,OAAOuC,iBAAiBI,QAAQ,YAAY;YAC9C,MAAM,IAAIlB,qCAAsB,CAAC,GAAGa,OAAO,2DAA2D,CAAC,EAAEtC;QAC3G;QAEA,IAAI,CAACI,kBAAkBwC,YAAY,CAACxC,kBAAkBQ,WAAW,CAACR,kBAAkBU,YAAY;YAC9F,MAAM,IAAIW,qCAAsB,CAAC,GAAGa,OAAO,uDAAuD,CAAC,EAAEtC;QACvG;QAEA,IAAI,CAACI,kBAAkBwC,YAAY,CAAC,CAACxC,iBAAiBoB,QAAQ,EAAE;YAC9D,MAAM,IAAIC,qCAAsB,CAAC,GAAGa,OAAO,uDAAuD,CAAC,EAAEtC;QACvG;QAEA,IAAII,kBAAkBU,cAAc,CAACV,iBAAiBY,YAAY,IAAI,CAACZ,iBAAiBa,OAAO,EAAE;YAC/F,MAAM,IAAIQ,qCAAsB,CAAC,GAAGa,OAAO,0DAA0D,CAAC,EAAEtC;QAC1G;QAEA,IACEI,kBAAkBwC,YAClB,CAACxC,iBAAiBY,YAAY,IAC9B,CAACZ,iBAAiBa,OAAO,IACzB,CAACb,iBAAiByC,OAAO,IACzB,CAACzC,iBAAiB0C,KAAK,IACvB,CAAC1C,iBAAiB2C,IAAI,EACtB;YACA,MAAM,IAAItB,qCAAsB,CAC9B,GAAGa,OAAO,8EAA8E,CAAC,EACzFtC;QAEJ;IACF;IAQQU,iBAAiBV,MAAc,EAAEE,iBAAyB,EAAa;QAC7E,MAAM8C,eAAe;YACnB,MAAM,IAAI,CAACC,QAAQ,CAACjD,QAAQE;QAC9B;QAEA,OAAO,IAAIgD,wBAAS,CAAClD,QAAQgD,cAAc,IAAI,CAACG,eAAe,CAACnD;IAClE;IAOA,MAAciD,SAASjD,MAAc,EAAEE,iBAAyB,EAAiB;QAC/E,MAAMoB,YAAY,IAAI,CAAChC,UAAU,CAACU,OAAO;QACzCsB,UAAU8B,OAAO,GAAGC,KAAKC,GAAG;QAE5B,MAAMC,cAAc,IAAI,CAAC7D,aAAa,CAAC8C,OAAO,CAActC;QAC5D,MAAMqD,YAAYZ,GAAG;QAErBrB,UAAUkC,QAAQ,GAAGH,KAAKC,GAAG,KAAKhC,UAAU8B,OAAO;QAEnD,IAAI9B,UAAUX,OAAO,EAAE8C,uBAAuB,SAAS,CAACnC,WAAWoC,iBAAiB;YAClF,IAAI,CAACnE,MAAM,CAAC2C,GAAG,CAAC,CAAC,MAAM,EAAElC,OAAO,6BAA6B,EAAEsB,UAAUkC,QAAQ,CAAC,EAAE,CAAC;YACrFlC,UAAUoC,eAAe,GAAGL,KAAKC,GAAG;QACtC;IACF;IAOQH,gBAAgBnD,MAAc,EAA0B;QAC9D,OAAO,CAACO;YACN,MAAMe,YAAY,IAAI,CAAChC,UAAU,CAACU,OAAO;YAEzCsB,UAAUqC,SAAS,KAAK;gBACtBC,MAAMP,KAAKC,GAAG;gBACd/C;YACF;YAEA,IAAI,CAAChB,MAAM,CAACgB,KAAK,CAAC,CAAC,MAAM,EAAEP,OAAO,sBAAsB,EAAEO,MAAMmC,KAAK,EAAE;QACzE;IACF;IAMQvB,2BAA2BnB,MAAc,EAAQ;QACvD,MAAMsB,YAAY,IAAI,CAACC,YAAY,CAACvB;QAEpC,IAAI,CAACsB,WAAWb,aAAa,CAACa,WAAWX,SAAS;YAChD,MAAM,IAAIc,qCAAsB,CAC9B,CAAC,2BAA2B,EAAEzB,OAAO,gEAAgE,CAAC,EACtGA;QAEJ;QAEA,MAAMI,mBAAmBkB,UAAUX,OAAO;QAC1C,MAAMF,YAAYa,UAAUb,SAAS;QAErC,IAAI,CAACL,kBAAkBwC,UAAU;YAC/B,MAAM,IAAInB,qCAAsB,CAC9B,CAAC,2BAA2B,EAAEzB,OAAO,uCAAuC,CAAC,EAC7EA;QAEJ;QAEA,IAAI,CAACI,iBAAiBoB,QAAQ,EAAE;YAC9B,IAAI,CAACjC,MAAM,CAAC2C,GAAG,CAAC,CAAC,MAAM,EAAElC,OAAO,iCAAiC,EAAE,CAAC,CAACI,iBAAiByD,cAAc,CAAC,EAAE,CAAC;YACxG,MAAMhC,MAAM,IAAIiC,gCAAiB,CAAC1D,kBAAkBK;YACpDa,UAAUO,GAAG,GAAGA;YAChB,IAAI,CAAClC,aAAa,CAACoE,oBAAoB,CAAClC;QAC1C,OAAO;YACL,IAAI,CAACtC,MAAM,CAAC2C,GAAG,CAAC,CAAC,MAAM,EAAElC,OAAO,8CAA8C,CAAC;QACjF;IACF;AACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createCameraStreamSchema", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createCameraStreamSchema;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _zod = require("zod");
|
|
12
|
+
const _genericvalidation = require("../../controllers/validation/generic.validation");
|
|
13
|
+
const createCameraStreamSchema = (isSqlite)=>_zod.z.object({
|
|
14
|
+
printerId: (0, _genericvalidation.idRuleV2)(isSqlite).nullish(),
|
|
15
|
+
streamURL: _zod.z.string().url(),
|
|
16
|
+
name: _zod.z.string().min(1).optional()
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=camera-service.validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/camera-service.validation.ts"],"names":["createCameraStreamSchema","isSqlite","z","object","printerId","idRuleV2","nullish","streamURL","string","url","name","min","optional"],"mappings":";;;;+BAGaA;;;eAAAA;;;qBAHK;mCACO;AAElB,MAAMA,2BAA2B,CAACC,WACvCC,MAAC,CAACC,MAAM,CAAC;QACPC,WAAWC,IAAAA,2BAAQ,EAACJ,UAAUK,OAAO;QACrCC,WAAWL,MAAC,CAACM,MAAM,GAAGC,GAAG;QACzBC,MAAMR,MAAC,CAACM,MAAM,GAAGG,GAAG,CAAC,GAAGC,QAAQ;IAClC"}
|
|
@@ -9,54 +9,65 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
return
|
|
12
|
+
createOrUpdateFloorSchema: function() {
|
|
13
|
+
return createOrUpdateFloorSchema;
|
|
14
14
|
},
|
|
15
|
-
|
|
16
|
-
return
|
|
15
|
+
floorLevelValidator: function() {
|
|
16
|
+
return floorLevelValidator;
|
|
17
17
|
},
|
|
18
|
-
|
|
19
|
-
return
|
|
18
|
+
floorNameValidator: function() {
|
|
19
|
+
return floorNameValidator;
|
|
20
20
|
},
|
|
21
|
-
|
|
22
|
-
return
|
|
21
|
+
printerInFloorSchema: function() {
|
|
22
|
+
return printerInFloorSchema;
|
|
23
23
|
},
|
|
24
|
-
|
|
25
|
-
return
|
|
24
|
+
removePrinterInFloorSchema: function() {
|
|
25
|
+
return removePrinterInFloorSchema;
|
|
26
26
|
},
|
|
27
|
-
|
|
28
|
-
return
|
|
27
|
+
updateFloorLevelSchema: function() {
|
|
28
|
+
return updateFloorLevelSchema;
|
|
29
|
+
},
|
|
30
|
+
updateFloorNameSchema: function() {
|
|
31
|
+
return updateFloorNameSchema;
|
|
32
|
+
},
|
|
33
|
+
xValidator: function() {
|
|
34
|
+
return xValidator;
|
|
35
|
+
},
|
|
36
|
+
yValidator: function() {
|
|
37
|
+
return yValidator;
|
|
29
38
|
}
|
|
30
39
|
});
|
|
40
|
+
const _zod = require("zod");
|
|
31
41
|
const _serviceconstants = require("../../constants/service.constants");
|
|
32
42
|
const _genericvalidation = require("../../controllers/validation/generic.validation");
|
|
33
|
-
const
|
|
43
|
+
const removePrinterInFloorSchema = (isSqlite)=>_zod.z.object({
|
|
34
44
|
printerId: (0, _genericvalidation.idRuleV2)(isSqlite)
|
|
35
45
|
});
|
|
36
|
-
const
|
|
46
|
+
const xValidator = _zod.z.number().int().min(0).max(12);
|
|
47
|
+
const yValidator = _zod.z.number().int().min(0).max(12);
|
|
48
|
+
const floorLevelValidator = _zod.z.number().int();
|
|
49
|
+
const floorNameValidator = _zod.z.string().min(_serviceconstants.minFloorNameLength);
|
|
50
|
+
const printerInFloorSchema = (isSqlite)=>_zod.z.object({
|
|
37
51
|
printerId: (0, _genericvalidation.idRuleV2)(isSqlite),
|
|
38
|
-
floorId:
|
|
39
|
-
x:
|
|
40
|
-
y:
|
|
52
|
+
floorId: (0, _genericvalidation.idRuleV2)(isSqlite),
|
|
53
|
+
x: xValidator,
|
|
54
|
+
y: yValidator
|
|
55
|
+
});
|
|
56
|
+
const updateFloorNameSchema = _zod.z.object({
|
|
57
|
+
name: floorNameValidator
|
|
58
|
+
});
|
|
59
|
+
const updateFloorLevelSchema = _zod.z.object({
|
|
60
|
+
floor: floorLevelValidator
|
|
61
|
+
});
|
|
62
|
+
const createOrUpdateFloorSchema = (isSqlite)=>_zod.z.object({
|
|
63
|
+
name: floorNameValidator,
|
|
64
|
+
floor: floorLevelValidator,
|
|
65
|
+
printers: _zod.z.array(_zod.z.object({
|
|
66
|
+
printerId: (0, _genericvalidation.idRuleV2)(isSqlite),
|
|
67
|
+
floorId: (0, _genericvalidation.idRuleV2)(isSqlite).optional(),
|
|
68
|
+
x: xValidator,
|
|
69
|
+
y: yValidator
|
|
70
|
+
})).optional()
|
|
41
71
|
});
|
|
42
|
-
const updateFloorNameRules = {
|
|
43
|
-
name: `required|minLength:${_serviceconstants.minFloorNameLength}`
|
|
44
|
-
};
|
|
45
|
-
const updateFloorNumberRules = {
|
|
46
|
-
floor: "required|integer"
|
|
47
|
-
};
|
|
48
|
-
const updateFloorRules = {
|
|
49
|
-
name: `required|minLength:${_serviceconstants.minFloorNameLength}`,
|
|
50
|
-
floor: "required|integer",
|
|
51
|
-
printers: "array",
|
|
52
|
-
"printer.*.printerId": "required|mongoId",
|
|
53
|
-
"printer.*.x": "required|integer|between:0,12",
|
|
54
|
-
"printer.*.y": "required|integer|between:0,12"
|
|
55
|
-
};
|
|
56
|
-
const createFloorRules = {
|
|
57
|
-
name: `required|minLength:${_serviceconstants.minFloorNameLength}`,
|
|
58
|
-
floor: "required|integer",
|
|
59
|
-
printers: "array"
|
|
60
|
-
};
|
|
61
72
|
|
|
62
73
|
//# sourceMappingURL=floor-service.validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/floor-service.validation.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/floor-service.validation.ts"],"names":["createOrUpdateFloorSchema","floorLevelValidator","floorNameValidator","printerInFloorSchema","removePrinterInFloorSchema","updateFloorLevelSchema","updateFloorNameSchema","xValidator","yValidator","isSqlite","z","object","printerId","idRuleV2","number","int","min","max","string","minFloorNameLength","floorId","x","y","name","floor","printers","array","optional"],"mappings":";;;;;;;;;;;IA8BaA,yBAAyB;eAAzBA;;IAnBAC,mBAAmB;eAAnBA;;IACAC,kBAAkB;eAAlBA;;IAEAC,oBAAoB;eAApBA;;IAVAC,0BAA0B;eAA1BA;;IAsBAC,sBAAsB;eAAtBA;;IAJAC,qBAAqB;eAArBA;;IAbAC,UAAU;eAAVA;;IACAC,UAAU;eAAVA;;;qBAVK;kCACiB;mCACV;AAElB,MAAMJ,6BAA6B,CAACK,WACzCC,MAAC,CAACC,MAAM,CAAC;QACPC,WAAWC,IAAAA,2BAAQ,EAACJ;IACtB;AAEK,MAAMF,aAAaG,MAAC,CAACI,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGC,GAAG,CAAC;AAC/C,MAAMT,aAAaE,MAAC,CAACI,MAAM,GAAGC,GAAG,GAAGC,GAAG,CAAC,GAAGC,GAAG,CAAC;AAC/C,MAAMhB,sBAAsBS,MAAC,CAACI,MAAM,GAAGC,GAAG;AAC1C,MAAMb,qBAAqBQ,MAAC,CAACQ,MAAM,GAAGF,GAAG,CAACG,oCAAkB;AAE5D,MAAMhB,uBAAuB,CAACM,WACnCC,MAAC,CAACC,MAAM,CAAC;QACPC,WAAWC,IAAAA,2BAAQ,EAACJ;QACpBW,SAASP,IAAAA,2BAAQ,EAACJ;QAClBY,GAAGd;QACHe,GAAGd;IACL;AAEK,MAAMF,wBAAwBI,MAAC,CAACC,MAAM,CAAC;IAC5CY,MAAMrB;AACR;AAEO,MAAMG,yBAAyBK,MAAC,CAACC,MAAM,CAAC;IAC7Ca,OAAOvB;AACT;AAEO,MAAMD,4BAA4B,CAACS,WACxCC,MAAC,CAACC,MAAM,CAAC;QACPY,MAAMrB;QACNsB,OAAOvB;QACPwB,UAAUf,MAAC,CACRgB,KAAK,CACJhB,MAAC,CAACC,MAAM,CAAC;YACPC,WAAWC,IAAAA,2BAAQ,EAACJ;YACpBW,SAASP,IAAAA,2BAAQ,EAACJ,UAAUkB,QAAQ;YACpCN,GAAGd;YACHe,GAAGd;QACL,IAEDmB,QAAQ;IACb"}
|
|
@@ -2,19 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "createPrintCompletionSchema", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return createPrintCompletionSchema;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
const _zod = require("zod");
|
|
11
12
|
const _octoprintwebsocketconstants = require("../octoprint/constants/octoprint-websocket.constants");
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
const _genericvalidation = require("../../controllers/validation/generic.validation");
|
|
14
|
+
const createPrintCompletionSchema = (isSqlite)=>_zod.z.object({
|
|
15
|
+
fileName: _zod.z.string().min(1, "File name is required"),
|
|
16
|
+
status: _zod.z.enum(_octoprintwebsocketconstants.EVENT_TYPES_ARRAY, {
|
|
17
|
+
errorMap: (issue)=>{
|
|
18
|
+
if (issue.code === "invalid_type") {
|
|
19
|
+
return {
|
|
20
|
+
message: `Status must be one of: ${Object.values(_octoprintwebsocketconstants.EVENT_TYPES).join(", ")}`
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
message: "Invalid status"
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}),
|
|
28
|
+
printerId: (0, _genericvalidation.idRuleV2)(isSqlite),
|
|
29
|
+
completionLog: _zod.z.string().optional(),
|
|
30
|
+
context: _zod.z.any()
|
|
31
|
+
});
|
|
19
32
|
|
|
20
33
|
//# sourceMappingURL=print-completion-service.validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/print-completion-service.validation.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/print-completion-service.validation.ts"],"names":["createPrintCompletionSchema","isSqlite","z","object","fileName","string","min","status","enum","EVENT_TYPES_ARRAY","errorMap","issue","code","message","Object","values","EVENT_TYPES","join","printerId","idRuleV2","completionLog","optional","context","any"],"mappings":";;;;+BAIaA;;;eAAAA;;;qBAJK;6CAC6B;mCACtB;AAElB,MAAMA,8BAA8B,CAACC,WAC1CC,MAAC,CAACC,MAAM,CAAC;QACPC,UAAUF,MAAC,CAACG,MAAM,GAAGC,GAAG,CAAC,GAAG;QAC5BC,QAAQL,MAAC,CAACM,IAAI,CAACC,8CAAiB,EAA2B;YACzDC,UAAU,CAACC;gBACT,IAAIA,MAAMC,IAAI,KAAK,gBAAgB;oBACjC,OAAO;wBAAEC,SAAS,CAAC,uBAAuB,EAAEC,OAAOC,MAAM,CAACC,wCAAW,EAAEC,IAAI,CAAC,OAAO;oBAAC;gBACtF;gBACA,OAAO;oBAAEJ,SAAS;gBAAiB;YACrC;QACF;QACAK,WAAWC,IAAAA,2BAAQ,EAAClB;QACpBmB,eAAelB,MAAC,CAACG,MAAM,GAAGgB,QAAQ;QAClCC,SAASpB,MAAC,CAACqB,GAAG;IAChB"}
|
|
@@ -9,42 +9,125 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
return
|
|
12
|
+
createPrinterSchema: function() {
|
|
13
|
+
return createPrinterSchema;
|
|
14
14
|
},
|
|
15
|
-
|
|
16
|
-
return
|
|
15
|
+
printerApiKeyValidator: function() {
|
|
16
|
+
return printerApiKeyValidator;
|
|
17
17
|
},
|
|
18
|
-
|
|
19
|
-
return
|
|
18
|
+
printerDateAddedValidator: function() {
|
|
19
|
+
return printerDateAddedValidator;
|
|
20
20
|
},
|
|
21
|
-
|
|
22
|
-
return
|
|
21
|
+
printerDisabledReasonValidator: function() {
|
|
22
|
+
return printerDisabledReasonValidator;
|
|
23
|
+
},
|
|
24
|
+
printerEnabledValidator: function() {
|
|
25
|
+
return printerEnabledValidator;
|
|
26
|
+
},
|
|
27
|
+
printerNameValidator: function() {
|
|
28
|
+
return printerNameValidator;
|
|
29
|
+
},
|
|
30
|
+
printerPasswordValidator: function() {
|
|
31
|
+
return printerPasswordValidator;
|
|
32
|
+
},
|
|
33
|
+
printerTypeValidator: function() {
|
|
34
|
+
return printerTypeValidator;
|
|
35
|
+
},
|
|
36
|
+
printerUrlValidator: function() {
|
|
37
|
+
return printerUrlValidator;
|
|
38
|
+
},
|
|
39
|
+
printerUsernameValidator: function() {
|
|
40
|
+
return printerUsernameValidator;
|
|
41
|
+
},
|
|
42
|
+
refineApiKeyValidator: function() {
|
|
43
|
+
return refineApiKeyValidator;
|
|
44
|
+
},
|
|
45
|
+
updatePrinterDisabledReasonSchema: function() {
|
|
46
|
+
return updatePrinterDisabledReasonSchema;
|
|
47
|
+
},
|
|
48
|
+
updatePrinterEnabledSchema: function() {
|
|
49
|
+
return updatePrinterEnabledSchema;
|
|
23
50
|
}
|
|
24
51
|
});
|
|
25
52
|
const _serviceconstants = require("../../constants/service.constants");
|
|
26
53
|
const _printerapiinterface = require("../printer-api.interface");
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
const _zod = require("zod");
|
|
55
|
+
const octoPrintApiKeySchema = _zod.z.string().min(_serviceconstants.apiKeyLengthMinDefault).max(_serviceconstants.apiKeyLengthMaxDefault).regex(/^[a-zA-Z0-9_-]+$/, "Alpha-numeric, dash, and underscore only");
|
|
56
|
+
const printerApiKeyValidator = _zod.z.string().optional();
|
|
57
|
+
const printerNameValidator = _zod.z.string();
|
|
58
|
+
const printerUsernameValidator = _zod.z.string();
|
|
59
|
+
const printerPasswordValidator = _zod.z.string();
|
|
60
|
+
const printerEnabledValidator = _zod.z.boolean();
|
|
61
|
+
const printerDisabledReasonValidator = _zod.z.string().optional();
|
|
62
|
+
const printerUrlValidator = _zod.z.string().url();
|
|
63
|
+
const printerTypeValidator = _zod.z.nativeEnum(_printerapiinterface.PrinterTypesEnum);
|
|
64
|
+
const printerDateAddedValidator = _zod.z.number().optional();
|
|
65
|
+
const prusaLinkAuthSchema = _zod.z.object({
|
|
66
|
+
username: printerUsernameValidator,
|
|
67
|
+
password: printerPasswordValidator
|
|
68
|
+
});
|
|
69
|
+
const basePrinterSchema = _zod.z.object({
|
|
70
|
+
dateAdded: printerDateAddedValidator,
|
|
71
|
+
printerURL: printerUrlValidator,
|
|
72
|
+
printerType: printerTypeValidator,
|
|
73
|
+
apiKey: printerApiKeyValidator,
|
|
74
|
+
username: printerUsernameValidator.optional(),
|
|
75
|
+
password: printerPasswordValidator.optional(),
|
|
76
|
+
enabled: printerEnabledValidator.optional(),
|
|
77
|
+
name: printerNameValidator
|
|
78
|
+
}).strip();
|
|
79
|
+
const apiKeyPrinterTypeSchema = _zod.z.object({
|
|
80
|
+
apiKey: printerApiKeyValidator,
|
|
81
|
+
printerType: printerTypeValidator,
|
|
82
|
+
username: printerUsernameValidator.optional(),
|
|
83
|
+
password: printerPasswordValidator.optional()
|
|
84
|
+
});
|
|
85
|
+
const refineApiKeyValidator = (data, ctx)=>{
|
|
86
|
+
if (data.printerType === _printerapiinterface.OctoprintType) {
|
|
87
|
+
const result = octoPrintApiKeySchema.safeParse(data.apiKey);
|
|
88
|
+
if (!result.success) {
|
|
89
|
+
result.error.issues.forEach((issue)=>{
|
|
90
|
+
ctx.addIssue({
|
|
91
|
+
...issue,
|
|
92
|
+
path: [
|
|
93
|
+
"apiKey",
|
|
94
|
+
...issue.path
|
|
95
|
+
]
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
} else if (data.printerType === _printerapiinterface.PrusaLinkType) {
|
|
100
|
+
const result = prusaLinkAuthSchema.safeParse({
|
|
101
|
+
username: data.username,
|
|
102
|
+
password: data.password
|
|
103
|
+
});
|
|
104
|
+
if (!result.success) {
|
|
105
|
+
result.error.issues.forEach((issue)=>{
|
|
106
|
+
ctx.addIssue({
|
|
107
|
+
...issue,
|
|
108
|
+
path: [
|
|
109
|
+
"username",
|
|
110
|
+
...issue.path
|
|
111
|
+
]
|
|
112
|
+
});
|
|
113
|
+
ctx.addIssue({
|
|
114
|
+
...issue,
|
|
115
|
+
path: [
|
|
116
|
+
"password",
|
|
117
|
+
...issue.path
|
|
118
|
+
]
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
48
123
|
};
|
|
124
|
+
const createPrinterSchema = basePrinterSchema.superRefine(refineApiKeyValidator);
|
|
125
|
+
const updatePrinterEnabledSchema = _zod.z.object({
|
|
126
|
+
enabled: printerEnabledValidator
|
|
127
|
+
});
|
|
128
|
+
const updatePrinterDisabledReasonSchema = _zod.z.object({
|
|
129
|
+
disabledReason: printerDisabledReasonValidator,
|
|
130
|
+
enabled: printerEnabledValidator.optional()
|
|
131
|
+
});
|
|
49
132
|
|
|
50
133
|
//# sourceMappingURL=printer-service.validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/printer-service.validation.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/printer-service.validation.ts"],"names":["createPrinterSchema","printerApiKeyValidator","printerDateAddedValidator","printerDisabledReasonValidator","printerEnabledValidator","printerNameValidator","printerPasswordValidator","printerTypeValidator","printerUrlValidator","printerUsernameValidator","refineApiKeyValidator","updatePrinterDisabledReasonSchema","updatePrinterEnabledSchema","octoPrintApiKeySchema","z","string","min","apiKeyLengthMinDefault","max","apiKeyLengthMaxDefault","regex","optional","boolean","url","nativeEnum","PrinterTypesEnum","number","prusaLinkAuthSchema","object","username","password","basePrinterSchema","dateAdded","printerURL","printerType","apiKey","enabled","name","strip","apiKeyPrinterTypeSchema","data","ctx","OctoprintType","result","safeParse","success","error","issues","forEach","issue","addIssue","path","PrusaLinkType","superRefine","disabledReason"],"mappings":"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"}
|