@fdm-monster/server 1.5.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 +19 -0
- package/.env.template +43 -0
- package/.gitattributes +1 -0
- package/.idea/codeStyles/Project.xml +85 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/dbnavigator.xml +574 -0
- package/.idea/fdm-monster.iml +16 -0
- package/.idea/inspectionProfiles/Project_Default.xml +22 -0
- package/.idea/jsLibraryMappings.xml +6 -0
- package/.idea/modules.xml +12 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +17 -0
- package/.swcrc +33 -0
- package/CODE_OF_CONDUCT.md +46 -0
- package/CONTRIBUTING.md +134 -0
- package/LICENSE +661 -0
- package/README.md +149 -0
- package/SECURITY.md +16 -0
- package/dist/@type/express/index.d.js +7 -0
- package/dist/@type/express/index.d.js.map +1 -0
- package/dist/constants/authorization.constants.js +99 -0
- package/dist/constants/authorization.constants.js.map +1 -0
- package/dist/constants/event.constants.js +55 -0
- package/dist/constants/event.constants.js.map +1 -0
- package/dist/constants/http-status-codes.constants.js +268 -0
- package/dist/constants/http-status-codes.constants.js.map +1 -0
- package/dist/constants/server-settings.constants.js +119 -0
- package/dist/constants/server-settings.constants.js.map +1 -0
- package/dist/constants/service.constants.js +48 -0
- package/dist/constants/service.constants.js.map +1 -0
- package/dist/container.js +161 -0
- package/dist/container.js.map +1 -0
- package/dist/container.tokens.js +83 -0
- package/dist/container.tokens.js.map +1 -0
- package/dist/controllers/auth.controller.js +143 -0
- package/dist/controllers/auth.controller.js.map +1 -0
- package/dist/controllers/batch-call.controller.js +59 -0
- package/dist/controllers/batch-call.controller.js.map +1 -0
- package/dist/controllers/camera-stream.controller.js +57 -0
- package/dist/controllers/camera-stream.controller.js.map +1 -0
- package/dist/controllers/custom-gcode.controller.js +76 -0
- package/dist/controllers/custom-gcode.controller.js.map +1 -0
- package/dist/controllers/first-time-setup.controller.js +65 -0
- package/dist/controllers/first-time-setup.controller.js.map +1 -0
- package/dist/controllers/floor.controller.js +78 -0
- package/dist/controllers/floor.controller.js.map +1 -0
- package/dist/controllers/plugin-firmware-update.controller.js +140 -0
- package/dist/controllers/plugin-firmware-update.controller.js.map +1 -0
- package/dist/controllers/print-completion.controller.js +58 -0
- package/dist/controllers/print-completion.controller.js.map +1 -0
- package/dist/controllers/printer-files.controller.js +208 -0
- package/dist/controllers/printer-files.controller.js.map +1 -0
- package/dist/controllers/printer-settings.controller.js +58 -0
- package/dist/controllers/printer-settings.controller.js.map +1 -0
- package/dist/controllers/printer.controller.js +287 -0
- package/dist/controllers/printer.controller.js.map +1 -0
- package/dist/controllers/server-private.controller.js +122 -0
- package/dist/controllers/server-private.controller.js.map +1 -0
- package/dist/controllers/server-public.controller.js +140 -0
- package/dist/controllers/server-public.controller.js.map +1 -0
- package/dist/controllers/settings.controller.js +89 -0
- package/dist/controllers/settings.controller.js.map +1 -0
- package/dist/controllers/user.controller.js +137 -0
- package/dist/controllers/user.controller.js.map +1 -0
- package/dist/controllers/validation/auth-controller.validation.js +15 -0
- package/dist/controllers/validation/auth-controller.validation.js.map +1 -0
- package/dist/controllers/validation/batch-controller.validation.js +29 -0
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -0
- package/dist/controllers/validation/generic.validation.js +15 -0
- package/dist/controllers/validation/generic.validation.js.map +1 -0
- package/dist/controllers/validation/printer-controller.validation.js +66 -0
- package/dist/controllers/validation/printer-controller.validation.js.map +1 -0
- package/dist/controllers/validation/printer-files-controller.validation.js +66 -0
- package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -0
- package/dist/controllers/validation/printer-settings-controller.validation.js +15 -0
- package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -0
- package/dist/controllers/validation/setting.validation.js +19 -0
- package/dist/controllers/validation/setting.validation.js.map +1 -0
- package/dist/controllers/validation/user-controller.validation.js +16 -0
- package/dist/controllers/validation/user-controller.validation.js.map +1 -0
- package/dist/exceptions/job.exceptions.js +18 -0
- package/dist/exceptions/job.exceptions.js.map +1 -0
- package/dist/exceptions/runtime.exceptions.js +108 -0
- package/dist/exceptions/runtime.exceptions.js.map +1 -0
- package/dist/handlers/cache-manager.js +25 -0
- package/dist/handlers/cache-manager.js.map +1 -0
- package/dist/handlers/event-emitter.js +31 -0
- package/dist/handlers/event-emitter.js.map +1 -0
- package/dist/handlers/logger-factory.js +18 -0
- package/dist/handlers/logger-factory.js.map +1 -0
- package/dist/handlers/logger.js +85 -0
- package/dist/handlers/logger.js.map +1 -0
- package/dist/handlers/validators.js +131 -0
- package/dist/handlers/validators.js.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/authenticate.js +83 -0
- package/dist/middleware/authenticate.js.map +1 -0
- package/dist/middleware/database.js +26 -0
- package/dist/middleware/database.js.map +1 -0
- package/dist/middleware/exception.handler.js +96 -0
- package/dist/middleware/exception.handler.js.map +1 -0
- package/dist/middleware/global.middleware.js +58 -0
- package/dist/middleware/global.middleware.js.map +1 -0
- package/dist/middleware/passport.js +44 -0
- package/dist/middleware/passport.js.map +1 -0
- package/dist/middleware/printer.js +49 -0
- package/dist/middleware/printer.js.map +1 -0
- package/dist/migrations/1696187882312-PrinterFile.js +40 -0
- package/dist/migrations/1696187882312-PrinterFile.js.map +1 -0
- package/dist/models/Auth/Permission.js +20 -0
- package/dist/models/Auth/Permission.js.map +1 -0
- package/dist/models/Auth/RefreshToken.js +41 -0
- package/dist/models/Auth/RefreshToken.js.map +1 -0
- package/dist/models/Auth/Role.js +20 -0
- package/dist/models/Auth/Role.js.map +1 -0
- package/dist/models/Auth/User.js +51 -0
- package/dist/models/Auth/User.js.map +1 -0
- package/dist/models/CameraStream.js +59 -0
- package/dist/models/CameraStream.js.map +1 -0
- package/dist/models/CustomGcode.js +28 -0
- package/dist/models/CustomGcode.js.map +1 -0
- package/dist/models/Floor.js +33 -0
- package/dist/models/Floor.js.map +1 -0
- package/dist/models/FloorPrinter.js +29 -0
- package/dist/models/FloorPrinter.js.map +1 -0
- package/dist/models/PrintCompletion.js +40 -0
- package/dist/models/PrintCompletion.js.map +1 -0
- package/dist/models/Printer.js +113 -0
- package/dist/models/Printer.js.map +1 -0
- package/dist/models/ServerSettings.js +168 -0
- package/dist/models/ServerSettings.js.map +1 -0
- package/dist/models/Settings.js +168 -0
- package/dist/models/Settings.js.map +1 -0
- package/dist/models/index.js +54 -0
- package/dist/models/index.js.map +1 -0
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +49 -0
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -0
- package/dist/mongo-migrations/20210907173950-printers-enabled.js +39 -0
- package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -0
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +39 -0
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -0
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +60 -0
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -0
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +30 -0
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -0
- package/dist/mongo-migrations/20230716065316-user-remove-name.js +30 -0
- package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -0
- package/dist/nodemon_restart_trigger.js +4 -0
- package/dist/nodemon_restart_trigger.js.map +1 -0
- package/dist/server.constants.js +99 -0
- package/dist/server.constants.js.map +1 -0
- package/dist/server.core.js +91 -0
- package/dist/server.core.js.map +1 -0
- package/dist/server.env.js +225 -0
- package/dist/server.env.js.map +1 -0
- package/dist/server.host.js +106 -0
- package/dist/server.host.js.map +1 -0
- package/dist/services/authentication/auth.service.js +136 -0
- package/dist/services/authentication/auth.service.js.map +1 -0
- package/dist/services/authentication/jwt.service.js +34 -0
- package/dist/services/authentication/jwt.service.js.map +1 -0
- package/dist/services/authentication/permission.service.js +73 -0
- package/dist/services/authentication/permission.service.js.map +1 -0
- package/dist/services/authentication/refresh-token.service.js +99 -0
- package/dist/services/authentication/refresh-token.service.js.map +1 -0
- package/dist/services/authentication/role.service.js +120 -0
- package/dist/services/authentication/role.service.js.map +1 -0
- package/dist/services/authentication/user.service.js +154 -0
- package/dist/services/authentication/user.service.js.map +1 -0
- package/dist/services/batch-call.service.js +148 -0
- package/dist/services/batch-call.service.js.map +1 -0
- package/dist/services/camera-stream.service.js +80 -0
- package/dist/services/camera-stream.service.js.map +1 -0
- package/dist/services/core/client-bundle.service.js +156 -0
- package/dist/services/core/client-bundle.service.js.map +1 -0
- package/dist/services/core/config.service.js +26 -0
- package/dist/services/core/config.service.js.map +1 -0
- package/dist/services/core/github.service.js +74 -0
- package/dist/services/core/github.service.js.map +1 -0
- package/dist/services/core/logs-manager.service.js +87 -0
- package/dist/services/core/logs-manager.service.js.map +1 -0
- package/dist/services/core/monsterpi.service.js +38 -0
- package/dist/services/core/monsterpi.service.js.map +1 -0
- package/dist/services/core/multer.service.js +122 -0
- package/dist/services/core/multer.service.js.map +1 -0
- package/dist/services/core/server-release.service.js +116 -0
- package/dist/services/core/server-release.service.js.map +1 -0
- package/dist/services/core/server-update.service.js +73 -0
- package/dist/services/core/server-update.service.js.map +1 -0
- package/dist/services/core/task-manager.service.js +196 -0
- package/dist/services/core/task-manager.service.js.map +1 -0
- package/dist/services/core/yaml.service.js +278 -0
- package/dist/services/core/yaml.service.js.map +1 -0
- package/dist/services/custom-gcode.service.js +48 -0
- package/dist/services/custom-gcode.service.js.map +1 -0
- package/dist/services/floor.service.js +183 -0
- package/dist/services/floor.service.js.map +1 -0
- package/dist/services/influxdb-v2/influx-db-v2-base.service.js +45 -0
- package/dist/services/influxdb-v2/influx-db-v2-base.service.js.map +1 -0
- package/dist/services/interfaces/auth.service.interface.js +6 -0
- package/dist/services/interfaces/auth.service.interface.js.map +1 -0
- package/dist/services/interfaces/camera-stream.dto.js +109 -0
- package/dist/services/interfaces/camera-stream.dto.js.map +1 -0
- package/dist/services/interfaces/camera-stream.service.interface.js +6 -0
- package/dist/services/interfaces/camera-stream.service.interface.js.map +1 -0
- package/dist/services/interfaces/custom-gcode.dto.js +18 -0
- package/dist/services/interfaces/custom-gcode.dto.js.map +1 -0
- package/dist/services/interfaces/custom-gcode.service.interface.js +6 -0
- package/dist/services/interfaces/custom-gcode.service.interface.js.map +1 -0
- package/dist/services/interfaces/floor.dto.js +61 -0
- package/dist/services/interfaces/floor.dto.js.map +1 -0
- package/dist/services/interfaces/floor.service.interface.js +6 -0
- package/dist/services/interfaces/floor.service.interface.js.map +1 -0
- package/dist/services/interfaces/gcode-analysis.dto.js +6 -0
- package/dist/services/interfaces/gcode-analysis.dto.js.map +1 -0
- package/dist/services/interfaces/jwt.service.interface.js +6 -0
- package/dist/services/interfaces/jwt.service.interface.js.map +1 -0
- package/dist/services/interfaces/login.dto.js +16 -0
- package/dist/services/interfaces/login.dto.js.map +1 -0
- package/dist/services/interfaces/page.interface.js +16 -0
- package/dist/services/interfaces/page.interface.js.map +1 -0
- package/dist/services/interfaces/permission.dto.js +16 -0
- package/dist/services/interfaces/permission.dto.js.map +1 -0
- package/dist/services/interfaces/permission.service.interface.js +6 -0
- package/dist/services/interfaces/permission.service.interface.js.map +1 -0
- package/dist/services/interfaces/printer-file.dto.js +27 -0
- package/dist/services/interfaces/printer-file.dto.js.map +1 -0
- package/dist/services/interfaces/printer-files.service.interface.js +6 -0
- package/dist/services/interfaces/printer-files.service.interface.js.map +1 -0
- package/dist/services/interfaces/printer.dto.js +18 -0
- package/dist/services/interfaces/printer.dto.js.map +1 -0
- package/dist/services/interfaces/printer.service.interface.js +6 -0
- package/dist/services/interfaces/printer.service.interface.js.map +1 -0
- package/dist/services/interfaces/role-service.interface.js +6 -0
- package/dist/services/interfaces/role-service.interface.js.map +1 -0
- package/dist/services/interfaces/settings.dto.js +34 -0
- package/dist/services/interfaces/settings.dto.js.map +1 -0
- package/dist/services/interfaces/settings.service.interface.js +6 -0
- package/dist/services/interfaces/settings.service.interface.js.map +1 -0
- package/dist/services/interfaces/user-service.interface.js +6 -0
- package/dist/services/interfaces/user-service.interface.js.map +1 -0
- package/dist/services/interfaces/user.dto.js +39 -0
- package/dist/services/interfaces/user.dto.js.map +1 -0
- package/dist/services/octoprint/constants/firmware-update-settings.constants.js +32 -0
- package/dist/services/octoprint/constants/firmware-update-settings.constants.js.map +1 -0
- package/dist/services/octoprint/constants/octoprint-service.constants.js +101 -0
- package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -0
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js +88 -0
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -0
- package/dist/services/octoprint/octoprint-api.routes.js +192 -0
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -0
- package/dist/services/octoprint/octoprint-api.service.js +402 -0
- package/dist/services/octoprint/octoprint-api.service.js.map +1 -0
- package/dist/services/octoprint/octoprint-sockio.adapter.js +309 -0
- package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -0
- package/dist/services/octoprint/plugin-base.service.js +102 -0
- package/dist/services/octoprint/plugin-base.service.js.map +1 -0
- package/dist/services/octoprint/plugin-firmware-update.service.js +104 -0
- package/dist/services/octoprint/plugin-firmware-update.service.js.map +1 -0
- package/dist/services/octoprint/plugin-repository.cache.js +45 -0
- package/dist/services/octoprint/plugin-repository.cache.js.map +1 -0
- package/dist/services/octoprint/socket.factory.js +22 -0
- package/dist/services/octoprint/socket.factory.js.map +1 -0
- package/dist/services/octoprint/utils/api.utils.js +72 -0
- package/dist/services/octoprint/utils/api.utils.js.map +1 -0
- package/dist/services/orm/floor.service.interface.js +73 -0
- package/dist/services/orm/floor.service.interface.js.map +1 -0
- package/dist/services/orm/printer.service.interface.js +6 -0
- package/dist/services/orm/printer.service.interface.js.map +1 -0
- package/dist/services/print-completion.service.js +162 -0
- package/dist/services/print-completion.service.js.map +1 -0
- package/dist/services/printer-files.service.js +91 -0
- package/dist/services/printer-files.service.js.map +1 -0
- package/dist/services/printer.service.js +230 -0
- package/dist/services/printer.service.js.map +1 -0
- package/dist/services/settings.service.js +158 -0
- package/dist/services/settings.service.js.map +1 -0
- package/dist/services/validators/floor-service.validation.js +60 -0
- package/dist/services/validators/floor-service.validation.js.map +1 -0
- package/dist/services/validators/print-completion-service.validation.js +20 -0
- package/dist/services/validators/print-completion-service.validation.js.map +1 -0
- package/dist/services/validators/printer-service.validation.js +48 -0
- package/dist/services/validators/printer-service.validation.js.map +1 -0
- package/dist/services/validators/settings-service.validation.js +71 -0
- package/dist/services/validators/settings-service.validation.js.map +1 -0
- package/dist/services/validators/user-service.validation.js +33 -0
- package/dist/services/validators/user-service.validation.js.map +1 -0
- package/dist/services/validators/yaml-service.validation.js +63 -0
- package/dist/services/validators/yaml-service.validation.js.map +1 -0
- package/dist/services/yaml.service.js +278 -0
- package/dist/services/yaml.service.js.map +1 -0
- package/dist/shared.constants.js +15 -0
- package/dist/shared.constants.js.map +1 -0
- package/dist/state/file-upload-tracker.cache.js +88 -0
- package/dist/state/file-upload-tracker.cache.js.map +1 -0
- package/dist/state/file.cache.js +99 -0
- package/dist/state/file.cache.js.map +1 -0
- package/dist/state/files.store.js +132 -0
- package/dist/state/files.store.js.map +1 -0
- package/dist/state/floor.store.js +99 -0
- package/dist/state/floor.store.js.map +1 -0
- package/dist/state/printer-events.cache.js +97 -0
- package/dist/state/printer-events.cache.js.map +1 -0
- package/dist/state/printer-socket.store.js +217 -0
- package/dist/state/printer-socket.store.js.map +1 -0
- package/dist/state/printer.cache.js +112 -0
- package/dist/state/printer.cache.js.map +1 -0
- package/dist/state/settings.store.js +154 -0
- package/dist/state/settings.store.js.map +1 -0
- package/dist/state/socket-io.gateway.js +66 -0
- package/dist/state/socket-io.gateway.js.map +1 -0
- package/dist/state/test-printer-socket.store.js +91 -0
- package/dist/state/test-printer-socket.store.js.map +1 -0
- package/dist/state/validation/create-test-printer.validation.js +18 -0
- package/dist/state/validation/create-test-printer.validation.js.map +1 -0
- package/dist/task.presets.js +50 -0
- package/dist/task.presets.js.map +1 -0
- package/dist/tasks/boot.task.js +198 -0
- package/dist/tasks/boot.task.js.map +1 -0
- package/dist/tasks/client-bundle.task.js +32 -0
- package/dist/tasks/client-bundle.task.js.map +1 -0
- package/dist/tasks/print-completion.socketio.task.js +85 -0
- package/dist/tasks/print-completion.socketio.task.js.map +1 -0
- package/dist/tasks/printer-file-clean.task.js +72 -0
- package/dist/tasks/printer-file-clean.task.js.map +1 -0
- package/dist/tasks/printer-websocket-restore.task.js +64 -0
- package/dist/tasks/printer-websocket-restore.task.js.map +1 -0
- package/dist/tasks/printer-websocket.task.js +43 -0
- package/dist/tasks/printer-websocket.task.js.map +1 -0
- package/dist/tasks/socketio.task.js +83 -0
- package/dist/tasks/socketio.task.js.map +1 -0
- package/dist/tasks/software-update.task.js +22 -0
- package/dist/tasks/software-update.task.js.map +1 -0
- package/dist/tasks.js +48 -0
- package/dist/tasks.js.map +1 -0
- package/dist/types/express/index.d.js +7 -0
- package/dist/types/express/index.d.js.map +1 -0
- package/dist/utils/array.util.js +27 -0
- package/dist/utils/array.util.js.map +1 -0
- package/dist/utils/benchmark.util.js +39 -0
- package/dist/utils/benchmark.util.js.map +1 -0
- package/dist/utils/cache/key-diff.cache.js +128 -0
- package/dist/utils/cache/key-diff.cache.js.map +1 -0
- package/dist/utils/correlation-token.util.js +15 -0
- package/dist/utils/correlation-token.util.js.map +1 -0
- package/dist/utils/crypto.utils.js +29 -0
- package/dist/utils/crypto.utils.js.map +1 -0
- package/dist/utils/env.utils.js +98 -0
- package/dist/utils/env.utils.js.map +1 -0
- package/dist/utils/error.utils.js +15 -0
- package/dist/utils/error.utils.js.map +1 -0
- package/dist/utils/find-predicate.utils.js +18 -0
- package/dist/utils/find-predicate.utils.js.map +1 -0
- package/dist/utils/fs.utils.js +38 -0
- package/dist/utils/fs.utils.js.map +1 -0
- package/dist/utils/is-docker.js +40 -0
- package/dist/utils/is-docker.js.map +1 -0
- package/dist/utils/mapper.utils.js +33 -0
- package/dist/utils/mapper.utils.js.map +1 -0
- package/dist/utils/metric.utils.js +35 -0
- package/dist/utils/metric.utils.js.map +1 -0
- package/dist/utils/normalize-url.js +245 -0
- package/dist/utils/normalize-url.js.map +1 -0
- package/dist/utils/semver.utils.js +18 -0
- package/dist/utils/semver.utils.js.map +1 -0
- package/dist/utils/time.utils.js +26 -0
- package/dist/utils/time.utils.js.map +1 -0
- package/dist/utils/url.utils.js +33 -0
- package/dist/utils/url.utils.js.map +1 -0
- package/dist/utils/websocket.adapter.js +105 -0
- package/dist/utils/websocket.adapter.js.map +1 -0
- package/migrate-mongo-config.js +45 -0
- package/nodemon_restart_trigger.js +1 -0
- package/package.json +149 -0
- package/src/index.ts +19 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
constructHeaders: function() {
|
|
13
|
+
return constructHeaders;
|
|
14
|
+
},
|
|
15
|
+
processGotResponse: function() {
|
|
16
|
+
return processGotResponse;
|
|
17
|
+
},
|
|
18
|
+
processResponse: function() {
|
|
19
|
+
return processResponse;
|
|
20
|
+
},
|
|
21
|
+
validateLogin: function() {
|
|
22
|
+
return validateLogin;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const _octoprintserviceconstants = require("../constants/octoprint-service.constants");
|
|
26
|
+
const _runtimeexceptions = require("../../../exceptions/runtime.exceptions");
|
|
27
|
+
function validateLogin(login) {
|
|
28
|
+
if (!login.apiKey || !login.printerURL) {
|
|
29
|
+
throw new _runtimeexceptions.ValidationException("printer apiKey or printerURL undefined");
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
apiKey: login.apiKey,
|
|
33
|
+
printerURL: login.printerURL
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function constructHeaders(apiKey, contentType = _octoprintserviceconstants.jsonContentType) {
|
|
37
|
+
return {
|
|
38
|
+
[_octoprintserviceconstants.contentTypeHeaderKey]: contentType,
|
|
39
|
+
[_octoprintserviceconstants.apiKeyHeaderKey]: apiKey
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function processResponse(response, options = {
|
|
43
|
+
unwrap: true
|
|
44
|
+
}) {
|
|
45
|
+
if (options.unwrap) {
|
|
46
|
+
return response?.data;
|
|
47
|
+
}
|
|
48
|
+
if (options.simple) {
|
|
49
|
+
return {
|
|
50
|
+
status: response.status,
|
|
51
|
+
data: response.data
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
async function processGotResponse(response, options = {
|
|
57
|
+
unwrap: true
|
|
58
|
+
}) {
|
|
59
|
+
if (options.unwrap) {
|
|
60
|
+
return JSON.parse(response.body);
|
|
61
|
+
}
|
|
62
|
+
if (options.simple) {
|
|
63
|
+
const data = JSON.parse(response.body);
|
|
64
|
+
return {
|
|
65
|
+
status: response.statusCode,
|
|
66
|
+
data
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return response;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=api.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/octoprint/utils/api.utils.ts"],"names":["constructHeaders","processGotResponse","processResponse","validateLogin","login","apiKey","printerURL","ValidationException","contentType","jsonContentType","contentTypeHeaderKey","apiKeyHeaderKey","response","options","unwrap","data","simple","status","JSON","parse","body","statusCode"],"mappings":";;;;;;;;;;;IAmBgBA,gBAAgB;eAAhBA;;IA6BMC,kBAAkB;eAAlBA;;IAhBNC,eAAe;eAAfA;;IAxBAC,aAAa;eAAbA;;;2CAJT;mCAC6B;AAG7B,SAASA,cAAcC,KAAe;IAC3C,IAAI,CAACA,MAAMC,MAAM,IAAI,CAACD,MAAME,UAAU,EAAE;QACtC,MAAM,IAAIC,sCAAmB,CAAC;IAChC;IAEA,OAAO;QACLF,QAAQD,MAAMC,MAAM;QACpBC,YAAYF,MAAME,UAAU;IAC9B;AACF;AAEO,SAASN,iBAAiBK,MAAc,EAAEG,cAAcC,0CAAe;IAC5E,OAAO;QACL,CAACC,+CAAoB,CAAC,EAAEF;QACxB,CAACG,0CAAe,CAAC,EAAEN;IACrB;AACF;AAQO,SAASH,gBAAgBU,QAAQ,EAAEC,UAAU;IAAEC,QAAQ;AAAK,CAAC;IAClE,IAAID,QAAQC,MAAM,EAAE;QAClB,OAAOF,UAAUG;IACnB;IACA,IAAIF,QAAQG,MAAM,EAAE;QAClB,OAAO;YAAEC,QAAQL,SAASK,MAAM;YAAEF,MAAMH,SAASG,IAAI;QAAC;IACxD;IACA,OAAOH;AACT;AAQO,eAAeX,mBAAmBW,QAAQ,EAAEC,UAAU;IAAEC,QAAQ;AAAK,CAAC;IAC3E,IAAID,QAAQC,MAAM,EAAE;QAClB,OAAOI,KAAKC,KAAK,CAACP,SAASQ,IAAI;IACjC;IACA,IAAIP,QAAQG,MAAM,EAAE;QAClB,MAAMD,OAAOG,KAAKC,KAAK,CAACP,SAASQ,IAAI;QACrC,OAAO;YAAEH,QAAQL,SAASS,UAAU;YAAEN;QAAK;IAC7C;IACA,OAAOH;AACT"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
IdDto: function() {
|
|
13
|
+
return IdDto;
|
|
14
|
+
},
|
|
15
|
+
PrinterDto: function() {
|
|
16
|
+
return PrinterDto;
|
|
17
|
+
},
|
|
18
|
+
PositionDto: function() {
|
|
19
|
+
return PositionDto;
|
|
20
|
+
},
|
|
21
|
+
PrinterInFloorDto: function() {
|
|
22
|
+
return PrinterInFloorDto;
|
|
23
|
+
},
|
|
24
|
+
FloorDto: function() {
|
|
25
|
+
return FloorDto;
|
|
26
|
+
},
|
|
27
|
+
CreateFloorDto: function() {
|
|
28
|
+
return CreateFloorDto;
|
|
29
|
+
},
|
|
30
|
+
UpdateFloorDto: function() {
|
|
31
|
+
return UpdateFloorDto;
|
|
32
|
+
},
|
|
33
|
+
AddOrUpdatePrinterDto: function() {
|
|
34
|
+
return AddOrUpdatePrinterDto;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
class IdDto {
|
|
38
|
+
id;
|
|
39
|
+
}
|
|
40
|
+
class PrinterDto extends IdDto {
|
|
41
|
+
name;
|
|
42
|
+
disabledReason;
|
|
43
|
+
dateAdded;
|
|
44
|
+
}
|
|
45
|
+
class PositionDto {
|
|
46
|
+
x;
|
|
47
|
+
y;
|
|
48
|
+
printerId;
|
|
49
|
+
floorId;
|
|
50
|
+
}
|
|
51
|
+
class PrinterInFloorDto extends IdDto {
|
|
52
|
+
x;
|
|
53
|
+
y;
|
|
54
|
+
printerId;
|
|
55
|
+
}
|
|
56
|
+
class FloorDto extends IdDto {
|
|
57
|
+
name;
|
|
58
|
+
level;
|
|
59
|
+
positions;
|
|
60
|
+
}
|
|
61
|
+
class CreateFloorDto {
|
|
62
|
+
name;
|
|
63
|
+
floor;
|
|
64
|
+
}
|
|
65
|
+
class UpdateFloorDto {
|
|
66
|
+
name;
|
|
67
|
+
floor;
|
|
68
|
+
}
|
|
69
|
+
class AddOrUpdatePrinterDto {
|
|
70
|
+
printerId;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=floor.service.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/floor.service.interface.ts"],"names":["IdDto","PrinterDto","PositionDto","PrinterInFloorDto","FloorDto","CreateFloorDto","UpdateFloorDto","AddOrUpdatePrinterDto","id","name","disabledReason","dateAdded","x","y","printerId","floorId","level","positions","floor"],"mappings":";;;;;;;;;;;IA2BaA,KAAK;eAALA;;IAIAC,UAAU;eAAVA;;IAMAC,WAAW;eAAXA;;IAQAC,iBAAiB;eAAjBA;;IAMAC,QAAQ;eAARA;;IAMAC,cAAc;eAAdA;;IAKAC,cAAc;eAAdA;;IAKAC,qBAAqB;eAArBA;;;AAxCN,MAAMP;IACXQ,GAAW;AACb;AAEO,MAAMP,mBAAmBD;IAC9BS,KAAa;IACbC,eAAuB;IACvBC,UAAkB;AACpB;AAEO,MAAMT;IACXU,EAAU;IACVC,EAAU;IACVC,UAAkB;IAClBC,QAAgB;AAClB;AAGO,MAAMZ,0BAA0BH;IACrCY,EAAU;IACVC,EAAU;IACVC,UAAkB;AACpB;AAEO,MAAMV,iBAAiBJ;IAC5BS,KAAa;IACbO,MAAc;IACdC,UAAyB;AAC3B;AAEO,MAAMZ;IACXI,KAAa;IACbS,MAAc;AAChB;AAEO,MAAMZ;IACXG,KAAc;IACdS,MAAe;AACjB;AAEO,MAAMX;IACXO,UAAkB;AACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/printer.service.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "PrintCompletionService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return PrintCompletionService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _models = require("../models");
|
|
12
|
+
const _printcompletionservicevalidation = require("./validators/print-completion-service.validation");
|
|
13
|
+
const _validators = require("../handlers/validators");
|
|
14
|
+
const _arrayutil = require("../utils/array.util");
|
|
15
|
+
const _octoprintwebsocketconstants = require("./octoprint/constants/octoprint-websocket.constants");
|
|
16
|
+
class PrintCompletionService {
|
|
17
|
+
logger;
|
|
18
|
+
constructor({ loggerFactory }){
|
|
19
|
+
this.logger = loggerFactory(PrintCompletionService.name);
|
|
20
|
+
}
|
|
21
|
+
async create(input) {
|
|
22
|
+
const { printerId, fileName, completionLog, status, context } = await (0, _validators.validateInput)(input, _printcompletionservicevalidation.createPrintCompletionRules);
|
|
23
|
+
return _models.PrintCompletion.create({
|
|
24
|
+
printerId,
|
|
25
|
+
fileName,
|
|
26
|
+
completionLog,
|
|
27
|
+
status,
|
|
28
|
+
createdAt: Date.now(),
|
|
29
|
+
context
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async list() {
|
|
33
|
+
return _models.PrintCompletion.find({});
|
|
34
|
+
}
|
|
35
|
+
async findPrintCompletion(correlationId) {
|
|
36
|
+
return _models.PrintCompletion.find({
|
|
37
|
+
"context.correlationId": correlationId
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async updateContext(correlationId, context) {
|
|
41
|
+
const completionEntry = await _models.PrintCompletion.findOne({
|
|
42
|
+
"context.correlationId": correlationId,
|
|
43
|
+
status: _octoprintwebsocketconstants.EVENT_TYPES.PrintStarted
|
|
44
|
+
});
|
|
45
|
+
if (!completionEntry) {
|
|
46
|
+
this.logger.warn(`Print with correlationId ${correlationId} could not be updated with new context as it was not found`);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
completionEntry.context = context;
|
|
50
|
+
await completionEntry.save();
|
|
51
|
+
}
|
|
52
|
+
async loadPrintContexts() {
|
|
53
|
+
const contexts = await _models.PrintCompletion.aggregate([
|
|
54
|
+
{
|
|
55
|
+
$sort: {
|
|
56
|
+
printerId: 1,
|
|
57
|
+
createdAt: -1
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
$group: {
|
|
62
|
+
_id: "$printerId",
|
|
63
|
+
createdAt: {
|
|
64
|
+
$first: "$createdAt"
|
|
65
|
+
},
|
|
66
|
+
context: {
|
|
67
|
+
$first: "$context"
|
|
68
|
+
},
|
|
69
|
+
status: {
|
|
70
|
+
$first: "$status"
|
|
71
|
+
},
|
|
72
|
+
fileName: {
|
|
73
|
+
$first: "$fileName"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
$match: {
|
|
79
|
+
status: {
|
|
80
|
+
$nin: [
|
|
81
|
+
_octoprintwebsocketconstants.EVENT_TYPES.PrintDone,
|
|
82
|
+
_octoprintwebsocketconstants.EVENT_TYPES.PrintFailed
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
]);
|
|
88
|
+
return Object.fromEntries(contexts.map((c)=>{
|
|
89
|
+
c.printerId = c._id;
|
|
90
|
+
delete c._id;
|
|
91
|
+
return [
|
|
92
|
+
c.printerId,
|
|
93
|
+
c
|
|
94
|
+
];
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
async listGroupByPrinterStatus() {
|
|
98
|
+
const printCompletionsAggr = await _models.PrintCompletion.aggregate([
|
|
99
|
+
{
|
|
100
|
+
$group: {
|
|
101
|
+
_id: "$printerId",
|
|
102
|
+
eventCount: {
|
|
103
|
+
$sum: 1
|
|
104
|
+
},
|
|
105
|
+
printEvents: {
|
|
106
|
+
$push: {
|
|
107
|
+
printerId: "$printerId",
|
|
108
|
+
context: "$context",
|
|
109
|
+
completionLog: "$completionLog",
|
|
110
|
+
fileName: "$fileName",
|
|
111
|
+
status: "$status",
|
|
112
|
+
createdAt: "$createdAt"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
]);
|
|
118
|
+
const durationDayMSec = 24 * 60 * 60 * 1000;
|
|
119
|
+
return printCompletionsAggr.map((pc)=>{
|
|
120
|
+
const jobs = (0, _arrayutil.groupArrayBy)(pc.printEvents, (e)=>e.context?.correlationId);
|
|
121
|
+
pc.printJobs = Object.entries(jobs).map(([id, events])=>{
|
|
122
|
+
const eventMap = events.map(({ status, createdAt, fileName, completionLog })=>({
|
|
123
|
+
status,
|
|
124
|
+
createdAt,
|
|
125
|
+
fileName,
|
|
126
|
+
completionLog
|
|
127
|
+
}));
|
|
128
|
+
return {
|
|
129
|
+
correlationId: id,
|
|
130
|
+
events: eventMap,
|
|
131
|
+
lastEvent: eventMap.reduce((e1, e2)=>e1.createdAt > e2.createdAt ? e1 : e2)
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
pc.correlationIds = pc.printJobs.map((j)=>j.correlationId);
|
|
135
|
+
pc.printCount = pc.correlationIds?.length;
|
|
136
|
+
const mappedEvents = pc.printEvents.map(({ status, createdAt, fileName, context, completionLog })=>({
|
|
137
|
+
status,
|
|
138
|
+
createdAt,
|
|
139
|
+
fileName,
|
|
140
|
+
context,
|
|
141
|
+
completionLog
|
|
142
|
+
}));
|
|
143
|
+
const failureEvents = mappedEvents.filter((e)=>e.status === _octoprintwebsocketconstants.EVENT_TYPES.PrintFailed);
|
|
144
|
+
pc.failureCount = failureEvents?.length;
|
|
145
|
+
pc.lastFailure = failureEvents?.length ? failureEvents.reduce((j1, j2)=>j1.createdAt > j2.createdAt ? j1 : j2) : null;
|
|
146
|
+
pc.failureEventsLastWeek = failureEvents.filter((e)=>e.createdAt > Date.now() - 7 * durationDayMSec)?.length;
|
|
147
|
+
pc.failureEventsLast48H = failureEvents.filter((e)=>e.createdAt > Date.now() - 2 * durationDayMSec)?.length;
|
|
148
|
+
pc.failureEventsLast24H = failureEvents.filter((e)=>e.createdAt > Date.now() - durationDayMSec)?.length;
|
|
149
|
+
const successEvents = mappedEvents.filter((e)=>e.status === _octoprintwebsocketconstants.EVENT_TYPES.PrintDone);
|
|
150
|
+
pc.successCount = successEvents?.length;
|
|
151
|
+
pc.lastSuccess = successEvents?.length ? successEvents?.reduce((j1, j2)=>j1.createdAt > j2.createdAt ? j1 : j2) : null;
|
|
152
|
+
pc.successEventsLastWeek = successEvents.filter((e)=>e.createdAt > Date.now() - 7 * durationDayMSec)?.length;
|
|
153
|
+
pc.successEventsLast48H = successEvents.filter((e)=>e.createdAt > Date.now() - 2 * durationDayMSec)?.length;
|
|
154
|
+
pc.successEventsLast24H = successEvents.filter((e)=>e.createdAt > Date.now() - durationDayMSec)?.length;
|
|
155
|
+
// Explodes in size quickly, remove the event timeline
|
|
156
|
+
delete pc.printEvents;
|
|
157
|
+
return pc;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
//# sourceMappingURL=print-completion.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/print-completion.service.ts"],"names":["PrintCompletionService","logger","constructor","loggerFactory","name","create","input","printerId","fileName","completionLog","status","context","validateInput","createPrintCompletionRules","PrintCompletion","createdAt","Date","now","list","find","findPrintCompletion","correlationId","updateContext","completionEntry","findOne","EVENT_TYPES","PrintStarted","warn","save","loadPrintContexts","contexts","aggregate","$sort","$group","_id","$first","$match","$nin","PrintDone","PrintFailed","Object","fromEntries","map","c","listGroupByPrinterStatus","printCompletionsAggr","eventCount","$sum","printEvents","$push","durationDayMSec","pc","jobs","groupArrayBy","e","printJobs","entries","id","events","eventMap","lastEvent","reduce","e1","e2","correlationIds","j","printCount","length","mappedEvents","failureEvents","filter","failureCount","lastFailure","j1","j2","failureEventsLastWeek","failureEventsLast48H","failureEventsLast24H","successEvents","successCount","lastSuccess","successEventsLastWeek","successEventsLast48H","successEventsLast24H"],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "PrinterFilesService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return PrinterFilesService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _runtimeexceptions = require("../exceptions/runtime.exceptions");
|
|
12
|
+
const _findpredicateutils = require("../utils/find-predicate.utils");
|
|
13
|
+
class PrinterFilesService {
|
|
14
|
+
printerService;
|
|
15
|
+
logger;
|
|
16
|
+
constructor({ printerService, loggerFactory }){
|
|
17
|
+
this.printerService = printerService;
|
|
18
|
+
this.logger = loggerFactory(PrinterFilesService.name);
|
|
19
|
+
}
|
|
20
|
+
async getPrinterFilesStorage(printerId) {
|
|
21
|
+
const printer = await this.printerService.get(printerId);
|
|
22
|
+
return {
|
|
23
|
+
fileList: printer.fileList,
|
|
24
|
+
storage: printer.storage
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async updateFiles(printerId, fileList) {
|
|
28
|
+
const printer = await this.printerService.get(printerId);
|
|
29
|
+
printer.fileList = fileList;
|
|
30
|
+
printer.markModified("fileList");
|
|
31
|
+
await printer.save();
|
|
32
|
+
return printer.fileList;
|
|
33
|
+
}
|
|
34
|
+
async appendOrReplaceFile(printerId, addedFile) {
|
|
35
|
+
const printer = await this.printerService.get(printerId);
|
|
36
|
+
// TODO replace with file storage
|
|
37
|
+
const foundFileIndex = printer.fileList.files.findIndex((f)=>f.path === addedFile.path);
|
|
38
|
+
if (foundFileIndex === -1) {
|
|
39
|
+
printer.fileList.files.push(addedFile);
|
|
40
|
+
} else {
|
|
41
|
+
printer.fileList.files[foundFileIndex] = addedFile;
|
|
42
|
+
}
|
|
43
|
+
printer.markModified("fileList");
|
|
44
|
+
await printer.save();
|
|
45
|
+
// Only now are we allowed to adjust the last uploaded printer file
|
|
46
|
+
let lastPrintedFile = {};
|
|
47
|
+
try {
|
|
48
|
+
lastPrintedFile = await this.setPrinterLastPrintedFile(printerId, addedFile.name);
|
|
49
|
+
} catch (e) {
|
|
50
|
+
this.logger.warn(`Parsing printer file did not succeed. Filename: ${addedFile}`);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
fileList: printer.fileList,
|
|
54
|
+
lastPrintedFile
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async setPrinterLastPrintedFile(printerId, fileName) {
|
|
58
|
+
await this.printerService.get(printerId);
|
|
59
|
+
const lastPrintedFile = {
|
|
60
|
+
fileName,
|
|
61
|
+
editTimestamp: Date.now()
|
|
62
|
+
};
|
|
63
|
+
const printer = await this.printerService.updateLastPrintedFile(printerId, lastPrintedFile);
|
|
64
|
+
this.logger.log("Parsed and updated printer file", printer.lastPrintedFile);
|
|
65
|
+
return printer.lastPrintedFile;
|
|
66
|
+
}
|
|
67
|
+
async clearFiles(printerId) {
|
|
68
|
+
const printer = await this.printerService.get(printerId);
|
|
69
|
+
printer.fileList.files = [];
|
|
70
|
+
printer.markModified("fileList");
|
|
71
|
+
await printer.save();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Perform delete action on database
|
|
75
|
+
**/ async deleteFile(printerId, filePath, throwError = true) {
|
|
76
|
+
const printer = await this.printerService.get(printerId);
|
|
77
|
+
const fileIndex = (0, _findpredicateutils.findFileIndex)(printer.fileList, filePath);
|
|
78
|
+
if (fileIndex === -1) {
|
|
79
|
+
if (throwError) {
|
|
80
|
+
throw new _runtimeexceptions.NotFoundException(`A file removal was ordered but this file was not found in database for printer Id ${printerId}`, filePath);
|
|
81
|
+
} else {
|
|
82
|
+
this.logger.warn("File was not found in printer fileList");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
printer.fileList.files.splice(fileIndex, 1);
|
|
86
|
+
printer.markModified("fileList");
|
|
87
|
+
await printer.save();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=printer-files.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/printer-files.service.ts"],"names":["PrinterFilesService","printerService","logger","constructor","loggerFactory","name","getPrinterFilesStorage","printerId","printer","get","fileList","storage","updateFiles","markModified","save","appendOrReplaceFile","addedFile","foundFileIndex","files","findIndex","f","path","push","lastPrintedFile","setPrinterLastPrintedFile","e","warn","fileName","editTimestamp","Date","now","updateLastPrintedFile","log","clearFiles","deleteFile","filePath","throwError","fileIndex","findFileIndex","NotFoundException","splice"],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "PrinterService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return PrinterService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _models = require("../models");
|
|
12
|
+
const _runtimeexceptions = require("../exceptions/runtime.exceptions");
|
|
13
|
+
const _validators = require("../handlers/validators");
|
|
14
|
+
const _printerservicevalidation = require("./validators/printer-service.validation");
|
|
15
|
+
const _serviceconstants = require("../constants/service.constants");
|
|
16
|
+
const _eventconstants = require("../constants/event.constants");
|
|
17
|
+
const _urlutils = require("../utils/url.utils");
|
|
18
|
+
class PrinterService {
|
|
19
|
+
eventEmitter2;
|
|
20
|
+
logger;
|
|
21
|
+
constructor({ eventEmitter2, loggerFactory }){
|
|
22
|
+
this.eventEmitter2 = eventEmitter2;
|
|
23
|
+
this.logger = loggerFactory(PrinterService.name);
|
|
24
|
+
}
|
|
25
|
+
async list() {
|
|
26
|
+
return _models.Printer.find({}, null, {
|
|
27
|
+
sort: {
|
|
28
|
+
dateAdded: 1
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async get(printerId) {
|
|
33
|
+
const filter = {
|
|
34
|
+
_id: printerId
|
|
35
|
+
};
|
|
36
|
+
const printer = await _models.Printer.findOne(filter);
|
|
37
|
+
if (!printer) {
|
|
38
|
+
throw new _runtimeexceptions.NotFoundException(`The printer ID '${printerId}' is not an existing printer.`);
|
|
39
|
+
}
|
|
40
|
+
return printer;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Stores a new printer into the database.
|
|
44
|
+
* @param {Object} newPrinter object to create.
|
|
45
|
+
* @param {boolean} emitEvent
|
|
46
|
+
* @throws {Error} If the printer is not correctly provided.
|
|
47
|
+
*/ async create(newPrinter, emitEvent = true) {
|
|
48
|
+
if (!newPrinter) throw new Error("Missing printer");
|
|
49
|
+
const mergedPrinter = await this.validateAndDefault(newPrinter);
|
|
50
|
+
mergedPrinter.dateAdded = Date.now();
|
|
51
|
+
const printer = await _models.Printer.create(mergedPrinter);
|
|
52
|
+
if (emitEvent) {
|
|
53
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerCreated, {
|
|
54
|
+
printer
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return printer;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Explicit patching of printer document
|
|
61
|
+
* @param printerId
|
|
62
|
+
* @param updateData
|
|
63
|
+
* @returns {Promise<Query<Document<any, any, unknown> | null, Document<any, any, unknown>, {}, unknown>>}
|
|
64
|
+
*/ async update(printerId, updateData) {
|
|
65
|
+
const printer = await this.get(printerId);
|
|
66
|
+
updateData.printerURL = (0, _urlutils.normalizeURLWithProtocol)(updateData.printerURL);
|
|
67
|
+
const { printerURL, apiKey, enabled, settingsAppearance } = await (0, _validators.validateInput)(updateData, _printerservicevalidation.createMongoPrinterRules);
|
|
68
|
+
printer.printerURL = printerURL;
|
|
69
|
+
printer.apiKey = apiKey;
|
|
70
|
+
if (enabled !== undefined) {
|
|
71
|
+
printer.enabled = enabled;
|
|
72
|
+
}
|
|
73
|
+
printer.settingsAppearance.name = settingsAppearance.name;
|
|
74
|
+
await printer.save();
|
|
75
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
76
|
+
printer
|
|
77
|
+
});
|
|
78
|
+
return printer;
|
|
79
|
+
}
|
|
80
|
+
async deleteMany(printerIds, emitEvent = true) {
|
|
81
|
+
await _models.Printer.deleteMany({
|
|
82
|
+
_id: {
|
|
83
|
+
$in: printerIds
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
if (emitEvent) {
|
|
87
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printersDeleted, {
|
|
88
|
+
printerIds
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async delete(printerId, emitEvent = true) {
|
|
93
|
+
const filter = {
|
|
94
|
+
_id: printerId
|
|
95
|
+
};
|
|
96
|
+
await _models.Printer.findOneAndDelete(filter);
|
|
97
|
+
if (emitEvent) {
|
|
98
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printersDeleted, {
|
|
99
|
+
printerIds: [
|
|
100
|
+
printerId
|
|
101
|
+
]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async batchImport(printers) {
|
|
106
|
+
if (!printers?.length) return [];
|
|
107
|
+
this.logger.log(`Validating ${printers.length} printer objects`);
|
|
108
|
+
for (let printer of printers){
|
|
109
|
+
await this.validateAndDefault(printer);
|
|
110
|
+
}
|
|
111
|
+
this.logger.log(`Validation passed. Creating ${printers.length} printers`);
|
|
112
|
+
// We've passed validation completely - creation will likely succeed
|
|
113
|
+
const newPrinters = [];
|
|
114
|
+
for (let printer of printers){
|
|
115
|
+
const createdPrinter = await this.create(printer, false);
|
|
116
|
+
newPrinters.push(createdPrinter);
|
|
117
|
+
}
|
|
118
|
+
this.logger.log(`Successfully created ${printers.length} printers`);
|
|
119
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.batchPrinterCreated, {
|
|
120
|
+
printers: newPrinters
|
|
121
|
+
});
|
|
122
|
+
return newPrinters;
|
|
123
|
+
}
|
|
124
|
+
async updateLastPrintedFile(printerId, lastPrintedFile) {
|
|
125
|
+
const update = {
|
|
126
|
+
lastPrintedFile
|
|
127
|
+
};
|
|
128
|
+
await this.get(printerId);
|
|
129
|
+
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
130
|
+
new: true,
|
|
131
|
+
useFindAndModify: false
|
|
132
|
+
});
|
|
133
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
134
|
+
printer
|
|
135
|
+
});
|
|
136
|
+
return printer;
|
|
137
|
+
}
|
|
138
|
+
async updateFlowRate(printerId, flowRate) {
|
|
139
|
+
const update = {
|
|
140
|
+
flowRate
|
|
141
|
+
};
|
|
142
|
+
await this.get(printerId);
|
|
143
|
+
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
144
|
+
new: true,
|
|
145
|
+
useFindAndModify: false
|
|
146
|
+
});
|
|
147
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
148
|
+
printer
|
|
149
|
+
});
|
|
150
|
+
return printer;
|
|
151
|
+
}
|
|
152
|
+
async updateFeedRate(printerId, feedRate) {
|
|
153
|
+
const update = {
|
|
154
|
+
feedRate
|
|
155
|
+
};
|
|
156
|
+
await this.get(printerId);
|
|
157
|
+
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
158
|
+
new: true,
|
|
159
|
+
useFindAndModify: false
|
|
160
|
+
});
|
|
161
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
162
|
+
printer
|
|
163
|
+
});
|
|
164
|
+
return printer;
|
|
165
|
+
}
|
|
166
|
+
async updateConnectionSettings(printerId, { printerURL, apiKey }) {
|
|
167
|
+
const update = {
|
|
168
|
+
printerURL: (0, _urlutils.normalizeURLWithProtocol)(printerURL),
|
|
169
|
+
apiKey
|
|
170
|
+
};
|
|
171
|
+
await (0, _validators.validateInput)(update, _printerservicevalidation.createMongoPrinterRules);
|
|
172
|
+
await this.get(printerId);
|
|
173
|
+
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
174
|
+
new: true,
|
|
175
|
+
useFindAndModify: false
|
|
176
|
+
});
|
|
177
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
178
|
+
printer
|
|
179
|
+
});
|
|
180
|
+
return printer;
|
|
181
|
+
}
|
|
182
|
+
async updateEnabled(printerId, enabled) {
|
|
183
|
+
const update = enabled ? {
|
|
184
|
+
enabled,
|
|
185
|
+
disabledReason: null
|
|
186
|
+
} : {
|
|
187
|
+
enabled
|
|
188
|
+
};
|
|
189
|
+
await (0, _validators.validateInput)(update, _printerservicevalidation.updatePrinterEnabledRule);
|
|
190
|
+
await this.get(printerId);
|
|
191
|
+
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
192
|
+
new: true,
|
|
193
|
+
useFindAndModify: false
|
|
194
|
+
});
|
|
195
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
196
|
+
printer
|
|
197
|
+
});
|
|
198
|
+
return printer;
|
|
199
|
+
}
|
|
200
|
+
async updateDisabledReason(printerId, disabledReason) {
|
|
201
|
+
const enabled = !disabledReason?.length;
|
|
202
|
+
const update = {
|
|
203
|
+
disabledReason,
|
|
204
|
+
enabled
|
|
205
|
+
};
|
|
206
|
+
await (0, _validators.validateInput)(update, _printerservicevalidation.updatePrinterDisabledReasonRule);
|
|
207
|
+
await this.get(printerId);
|
|
208
|
+
const printer = await _models.Printer.findByIdAndUpdate(printerId, update, {
|
|
209
|
+
new: true,
|
|
210
|
+
useFindAndModify: false
|
|
211
|
+
});
|
|
212
|
+
this.eventEmitter2.emit(_eventconstants.printerEvents.printerUpdated, {
|
|
213
|
+
printer
|
|
214
|
+
});
|
|
215
|
+
return printer;
|
|
216
|
+
}
|
|
217
|
+
async validateAndDefault(printer) {
|
|
218
|
+
const mergedPrinter = {
|
|
219
|
+
...(0, _serviceconstants.getDefaultPrinterEntry)(),
|
|
220
|
+
enabled: true,
|
|
221
|
+
...printer
|
|
222
|
+
};
|
|
223
|
+
if (mergedPrinter.printerURL?.length) {
|
|
224
|
+
mergedPrinter.printerURL = (0, _urlutils.normalizeURLWithProtocol)(mergedPrinter.printerURL);
|
|
225
|
+
}
|
|
226
|
+
return await (0, _validators.validateInput)(mergedPrinter, _printerservicevalidation.createMongoPrinterRules);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
//# sourceMappingURL=printer.service.js.map
|