@fdm-monster/server 1.8.2 → 1.9.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.template +5 -3
- package/.gitattributes +4 -2
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.9.1.cjs +948 -0
- package/.yarnrc.yml +1 -1
- package/README.md +25 -26
- package/RELEASE_NOTES.MD +69 -7
- package/biome.json +33 -0
- package/dist/consoles/download-github-releases.js.map +1 -1
- package/dist/consoles/launch-http-servers.js +31 -0
- package/dist/consoles/launch-http-servers.js.map +1 -0
- package/dist/consoles/mock-octoprint.server.js +291 -0
- package/dist/consoles/mock-octoprint.server.js.map +1 -0
- package/dist/consoles/mock-prusalink.server.js +57 -0
- package/dist/consoles/mock-prusalink.server.js.map +1 -0
- package/dist/consoles/utils/api-messages.js +856 -0
- package/dist/consoles/utils/api-messages.js.map +1 -0
- package/dist/consoles/utils/delayed-memory.storage.js +42 -0
- package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
- package/dist/consoles/utils/ws-messages.js +88 -0
- package/dist/consoles/utils/ws-messages.js.map +1 -0
- package/dist/constants/event.constants.js +11 -19
- package/dist/constants/event.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +6 -11
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/container.js +15 -24
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +4 -5
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/auth.controller.js +114 -24
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +95 -24
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/camera-stream.controller.js +16 -12
- package/dist/controllers/camera-stream.controller.js.map +1 -1
- package/dist/controllers/custom-gcode.controller.js +116 -40
- package/dist/controllers/custom-gcode.controller.js.map +1 -1
- package/dist/controllers/dto/update-client-dist.dto.js +0 -21
- package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
- package/dist/controllers/first-time-setup.controller.js +54 -18
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/floor.controller.js +154 -43
- package/dist/controllers/floor.controller.js.map +1 -1
- package/dist/controllers/metrics.controller.js +56 -0
- package/dist/controllers/metrics.controller.js.map +1 -0
- package/dist/controllers/print-completion.controller.js +81 -18
- package/dist/controllers/print-completion.controller.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +61 -50
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer-group.controller.js +123 -33
- package/dist/controllers/printer-group.controller.js.map +1 -1
- package/dist/controllers/printer-settings.controller.js +76 -29
- package/dist/controllers/printer-settings.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +62 -197
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-private.controller.js +153 -39
- package/dist/controllers/server-private.controller.js.map +1 -1
- package/dist/controllers/server-public.controller.js +79 -84
- package/dist/controllers/server-public.controller.js.map +1 -1
- package/dist/controllers/settings.controller.js +222 -79
- package/dist/controllers/settings.controller.js.map +1 -1
- package/dist/controllers/user.controller.js +67 -57
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/auth-controller.validation.js +6 -5
- package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +17 -18
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/controllers/validation/generic.validation.js +8 -3
- package/dist/controllers/validation/generic.validation.js.map +1 -1
- package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
- package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
- package/dist/controllers/validation/printer-controller.validation.js +31 -50
- package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-files-controller.validation.js +16 -15
- package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
- package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
- package/dist/controllers/validation/server-private.validation.js +17 -0
- package/dist/controllers/validation/server-private.validation.js.map +1 -0
- package/dist/controllers/validation/setting.validation.js +28 -10
- package/dist/controllers/validation/setting.validation.js.map +1 -1
- package/dist/controllers/validation/user-controller.validation.js +44 -13
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/data-source.js +10 -6
- package/dist/data-source.js.map +1 -1
- package/dist/entities/camera-stream.entity.js +2 -3
- package/dist/entities/camera-stream.entity.js.map +1 -1
- package/dist/entities/custom-gcode.entity.js +1 -2
- package/dist/entities/custom-gcode.entity.js.map +1 -1
- package/dist/entities/floor-position.entity.js.map +1 -1
- package/dist/entities/floor.entity.js +1 -2
- package/dist/entities/floor.entity.js.map +1 -1
- package/dist/entities/group.entity.js +6 -2
- package/dist/entities/group.entity.js.map +1 -1
- package/dist/entities/permission.entity.js +1 -2
- package/dist/entities/permission.entity.js.map +1 -1
- package/dist/entities/print-completion.entity.js +1 -2
- package/dist/entities/print-completion.entity.js.map +1 -1
- package/dist/entities/printer-group.entity.js +6 -2
- package/dist/entities/printer-group.entity.js.map +1 -1
- package/dist/entities/printer.entity.js +22 -4
- package/dist/entities/printer.entity.js.map +1 -1
- package/dist/entities/refresh-token.entity.js +1 -2
- package/dist/entities/refresh-token.entity.js.map +1 -1
- package/dist/entities/role.entity.js +1 -2
- package/dist/entities/role.entity.js.map +1 -1
- package/dist/entities/settings.entity.js +1 -2
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/entities/user-role.entity.js +1 -2
- package/dist/entities/user-role.entity.js.map +1 -1
- package/dist/entities/user.entity.js +1 -2
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/exceptions/runtime.exceptions.js.map +1 -1
- package/dist/handlers/logger.js +131 -36
- package/dist/handlers/logger.js.map +1 -1
- package/dist/handlers/validators.js +7 -113
- package/dist/handlers/validators.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/authenticate.js +11 -22
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/database.js.map +1 -1
- package/dist/middleware/demo.middleware.js +4 -17
- package/dist/middleware/demo.middleware.js.map +1 -1
- package/dist/middleware/exception.filter.js +23 -23
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/middleware/global.middleware.js +4 -4
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/param-converter.middleware.js +81 -0
- package/dist/middleware/param-converter.middleware.js.map +1 -0
- package/dist/middleware/passport.js +3 -5
- package/dist/middleware/passport.js.map +1 -1
- package/dist/middleware/printer-resolver.js +37 -0
- package/dist/middleware/printer-resolver.js.map +1 -0
- package/dist/middleware/printer.js +22 -10
- package/dist/middleware/printer.js.map +1 -1
- package/dist/middleware/socketio.middleware.js +27 -0
- package/dist/middleware/socketio.middleware.js.map +1 -0
- package/dist/migrations/1706829146617-InitSqlite.js +1 -1
- package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
- package/dist/models/Auth/Permission.js.map +1 -1
- package/dist/models/Auth/RefreshToken.js +1 -1
- package/dist/models/Auth/RefreshToken.js.map +1 -1
- package/dist/models/Auth/Role.js.map +1 -1
- package/dist/models/Auth/User.js.map +1 -1
- package/dist/models/CameraStream.js +20 -0
- package/dist/models/CameraStream.js.map +1 -1
- package/dist/models/CustomGcode.js.map +1 -1
- package/dist/models/Floor.js.map +1 -1
- package/dist/models/FloorPrinter.js +10 -1
- package/dist/models/FloorPrinter.js.map +1 -1
- package/dist/models/PrintCompletion.js.map +1 -1
- package/dist/models/Printer.js +12 -5
- package/dist/models/Printer.js.map +1 -1
- package/dist/models/Settings.js +5 -42
- package/dist/models/Settings.js.map +1 -1
- package/dist/models/index.js +0 -4
- package/dist/models/index.js.map +1 -1
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
- package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
- package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
- package/dist/server.constants.js +7 -4
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +29 -2
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +13 -8
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +24 -31
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js +15 -20
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/jwt.service.js +1 -1
- package/dist/services/authentication/jwt.service.js.map +1 -1
- package/dist/services/core/batch-call.service.js +23 -25
- package/dist/services/core/batch-call.service.js.map +1 -1
- package/dist/services/core/client-bundle.service.js +78 -136
- package/dist/services/core/client-bundle.service.js.map +1 -1
- package/dist/services/core/config.service.js.map +1 -1
- package/dist/services/core/cradle.service.js +21 -0
- package/dist/services/core/cradle.service.js.map +1 -0
- package/dist/services/core/github.service.js +2 -2
- package/dist/services/core/github.service.js.map +1 -1
- package/dist/services/core/http-client.factory.js +40 -0
- package/dist/services/core/http-client.factory.js.map +1 -0
- package/dist/services/core/logs-manager.service.js +7 -6
- package/dist/services/core/logs-manager.service.js.map +1 -1
- package/dist/services/core/monsterpi.service.js +1 -1
- package/dist/services/core/monsterpi.service.js.map +1 -1
- package/dist/services/core/multer.service.js +79 -28
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/server-release.service.js +14 -8
- package/dist/services/core/server-release.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +16 -17
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/interfaces/camera-stream.dto.js +4 -34
- package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
- package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
- package/dist/services/interfaces/file-upload-tracker.interface.js +6 -0
- package/dist/services/interfaces/file-upload-tracker.interface.js.map +1 -0
- package/dist/services/interfaces/floor.dto.js +5 -47
- package/dist/services/interfaces/floor.dto.js.map +1 -1
- package/dist/services/interfaces/login.dto.js +2 -0
- package/dist/services/interfaces/login.dto.js.map +1 -1
- package/dist/services/interfaces/print-completion.dto.js.map +1 -1
- package/dist/services/interfaces/printer-group.dto.js +0 -14
- package/dist/services/interfaces/printer-group.dto.js.map +1 -1
- package/dist/services/interfaces/printer.dto.js +11 -5
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/interfaces/settings.dto.js.map +1 -1
- package/dist/services/interfaces/task.interfaces.js +6 -0
- package/dist/services/interfaces/task.interfaces.js.map +1 -0
- package/dist/services/mongoose/camera-stream.service.js +17 -15
- package/dist/services/mongoose/camera-stream.service.js.map +1 -1
- package/dist/services/mongoose/custom-gcode.service.js +4 -2
- package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
- package/dist/services/mongoose/floor.service.js +37 -30
- package/dist/services/mongoose/floor.service.js.map +1 -1
- package/dist/services/mongoose/permission.service.js +1 -1
- package/dist/services/mongoose/permission.service.js.map +1 -1
- package/dist/services/mongoose/print-completion.service.js +2 -2
- package/dist/services/mongoose/print-completion.service.js.map +1 -1
- package/dist/services/mongoose/print-completion.shared.js +2 -2
- package/dist/services/mongoose/print-completion.shared.js.map +1 -1
- package/dist/services/mongoose/printer.service.js +40 -45
- package/dist/services/mongoose/printer.service.js.map +1 -1
- package/dist/services/mongoose/refresh-token.service.js +5 -8
- package/dist/services/mongoose/refresh-token.service.js.map +1 -1
- package/dist/services/mongoose/role.service.js +14 -5
- package/dist/services/mongoose/role.service.js.map +1 -1
- package/dist/services/mongoose/settings.service.js +35 -62
- package/dist/services/mongoose/settings.service.js.map +1 -1
- package/dist/services/mongoose/user.service.js +8 -7
- package/dist/services/mongoose/user.service.js.map +1 -1
- package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
- package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
- package/dist/services/moonraker/moonraker-websocket.adapter.js +108 -96
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +212 -167
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +3 -5
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
- package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/octoprint-api.routes.js +0 -98
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js +72 -72
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +87 -343
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js +31 -0
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -0
- package/dist/services/octoprint.api.js +14 -18
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/base.service.js +11 -12
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js +5 -1
- package/dist/services/orm/camera-stream.service.js.map +1 -1
- package/dist/services/orm/custom-gcode.service.js +2 -2
- package/dist/services/orm/custom-gcode.service.js.map +1 -1
- package/dist/services/orm/floor-position.service.js +0 -5
- package/dist/services/orm/floor-position.service.js.map +1 -1
- package/dist/services/orm/floor.service.js +43 -39
- package/dist/services/orm/floor.service.js.map +1 -1
- package/dist/services/orm/permission.service.js +3 -4
- package/dist/services/orm/permission.service.js.map +1 -1
- package/dist/services/orm/print-completion.service.js +2 -4
- package/dist/services/orm/print-completion.service.js.map +1 -1
- package/dist/services/orm/printer-group.service.js +2 -7
- package/dist/services/orm/printer-group.service.js.map +1 -1
- package/dist/services/orm/printer.service.js +29 -39
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/refresh-token.service.js +5 -11
- package/dist/services/orm/refresh-token.service.js.map +1 -1
- package/dist/services/orm/role.service.js +11 -10
- package/dist/services/orm/role.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +37 -133
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/orm/user.service.js +13 -15
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/printer-api.factory.js +9 -6
- package/dist/services/printer-api.factory.js.map +1 -1
- package/dist/services/printer-api.interface.js +13 -6
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
- package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
- package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
- package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
- package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
- package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/file.dto.js +6 -0
- package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
- package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
- package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/status.dto.js +6 -0
- package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/version.dto.js +6 -0
- package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
- package/dist/services/prusa-link/prusa-link.api.js +233 -0
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
- package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
- package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
- package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
- package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
- package/dist/services/socket.factory.js +9 -6
- package/dist/services/socket.factory.js.map +1 -1
- package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
- package/dist/services/task-manager.service.js.map +1 -0
- package/dist/services/validators/camera-service.validation.js +19 -0
- package/dist/services/validators/camera-service.validation.js.map +1 -0
- package/dist/services/validators/floor-service.validation.js +47 -36
- package/dist/services/validators/floor-service.validation.js.map +1 -1
- package/dist/services/validators/print-completion-service.validation.js +22 -9
- package/dist/services/validators/print-completion-service.validation.js.map +1 -1
- package/dist/services/validators/printer-service.validation.js +112 -29
- package/dist/services/validators/printer-service.validation.js.map +1 -1
- package/dist/services/validators/settings-service.validation.js +78 -66
- package/dist/services/validators/settings-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +17 -16
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +94 -51
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/dist/shared/default-http-client.builder.js +94 -0
- package/dist/shared/default-http-client.builder.js.map +1 -0
- package/dist/shared/load-controllers.js +20 -0
- package/dist/shared/load-controllers.js.map +1 -0
- package/dist/shared/runtime-settings.migration.js +46 -0
- package/dist/shared/runtime-settings.migration.js.map +1 -0
- package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
- package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
- package/dist/shared/websocket.adapter.js +4 -5
- package/dist/shared/websocket.adapter.js.map +1 -1
- package/dist/state/file-upload-tracker.cache.js +33 -42
- package/dist/state/file-upload-tracker.cache.js.map +1 -1
- package/dist/state/file.cache.js +1 -1
- package/dist/state/file.cache.js.map +1 -1
- package/dist/state/floor.store.js +6 -6
- package/dist/state/floor.store.js.map +1 -1
- package/dist/state/printer-events.cache.js +21 -22
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-files.store.js +6 -8
- package/dist/state/printer-files.store.js.map +1 -1
- package/dist/state/printer-socket.store.js +27 -50
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer-thumbnail.cache.js +5 -9
- package/dist/state/printer-thumbnail.cache.js.map +1 -1
- package/dist/state/printer.cache.js +14 -12
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +78 -51
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/socket-io.gateway.js +39 -36
- package/dist/state/socket-io.gateway.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +20 -15
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/dist/state/validation/create-test-printer.validation.js +13 -10
- package/dist/state/validation/create-test-printer.validation.js.map +1 -1
- package/dist/task.presets.js.map +1 -1
- package/dist/tasks/boot.task.js +14 -19
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/client-bundle.task.js +1 -3
- package/dist/tasks/client-bundle.task.js.map +1 -1
- package/dist/tasks/print-completion.socketio.task.js +27 -28
- package/dist/tasks/print-completion.socketio.task.js.map +1 -1
- package/dist/tasks/printer-file-clean.task.js +6 -10
- package/dist/tasks/printer-file-clean.task.js.map +1 -1
- package/dist/tasks/printer-websocket-restore.task.js +4 -15
- package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
- package/dist/tasks/printer-websocket.task.js +2 -14
- package/dist/tasks/printer-websocket.task.js.map +1 -1
- package/dist/tasks/socketio.task.js +8 -35
- package/dist/tasks/socketio.task.js.map +1 -1
- package/dist/tasks/software-update.task.js +1 -1
- package/dist/tasks/software-update.task.js.map +1 -1
- package/dist/tasks.js +3 -3
- package/dist/tasks.js.map +1 -1
- package/dist/utils/array.util.js.map +1 -1
- package/dist/utils/cache/key-diff.cache.js.map +1 -1
- package/dist/utils/env.utils.js +0 -2
- package/dist/utils/env.utils.js.map +1 -1
- package/dist/utils/normalize-url.js +6 -3
- package/dist/utils/normalize-url.js.map +1 -1
- package/dist/utils/pretty-print.utils.js +1 -1
- package/dist/utils/pretty-print.utils.js.map +1 -1
- package/dist/utils/printer-type.utils.js.map +1 -1
- package/dist/utils/time.utils.js +7 -17
- package/dist/utils/time.utils.js.map +1 -1
- package/dist/utils/url.utils.js +11 -14
- package/dist/utils/url.utils.js.map +1 -1
- package/package.json +53 -55
- package/tsconfig.json +2 -1
- package/.yarn/releases/yarn-4.6.0.cjs +0 -934
- package/dist/consoles/check-ports.js +0 -170
- package/dist/consoles/check-ports.js.map +0 -1
- package/dist/consoles/sqlite-torm.js +0 -31
- package/dist/consoles/sqlite-torm.js.map +0 -1
- package/dist/consoles/upload-test.js +0 -52
- package/dist/consoles/upload-test.js.map +0 -1
- package/dist/controllers/plugin-firmware-update.controller.js +0 -236
- package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
- package/dist/entities/base.entity.js +0 -29
- package/dist/entities/base.entity.js.map +0 -1
- package/dist/entities/printer-file.entity.js +0 -140
- package/dist/entities/printer-file.entity.js.map +0 -1
- package/dist/handlers/cache-manager.js +0 -18
- package/dist/handlers/cache-manager.js.map +0 -1
- package/dist/models/PrinterFile.js +0 -44
- package/dist/models/PrinterFile.js.map +0 -1
- package/dist/services/core/task-manager.service.js.map +0 -1
- package/dist/services/octoprint/plugin-base.service.js +0 -101
- package/dist/services/octoprint/plugin-base.service.js.map +0 -1
- package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
- package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
- package/dist/services/octoprint/plugin-repository.cache.js +0 -45
- package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
- package/dist/utils/benchmark.util.js +0 -39
- package/dist/utils/benchmark.util.js.map +0 -1
- package/dist/utils/is-docker.js +0 -40
- package/dist/utils/is-docker.js.map +0 -1
- package/dist/utils/metric.utils.js +0 -35
- package/dist/utils/metric.utils.js.map +0 -1
- package/requests/moonraker/api_job.http +0 -5
- package/requests/moonraker/api_printer.http +0 -5
- package/requests/moonraker/api_settings.http +0 -5
- package/requests/moonraker/printer_info.http +0 -5
- package/requests/moonraker/printer_objects_list.http +0 -6
- package/requests/moonraker/printer_objects_pause_resume.http +0 -6
- package/requests/moonraker/printer_objects_print_stats.http +0 -6
- package/requests/moonraker/printer_objects_webhooks.http +0 -6
- package/requests/moonraker/server_info.http +0 -5
- package/requests/octoprint/octoprint-api-printer-current.http +0 -7
- package/requests/octoprint/octoprint-pluginmanager-plugins.http +0 -7
- package/requests/printer-file/get-partial-file-moonraker.http +0 -5
- package/requests/printer-file/get-thumbnails.http +0 -5
- package/requests/printer-file/reload-printer-thumbnails.http +0 -10
- package/requests/printer-file/testfile.gcode +0 -5665
- package/requests/printer-file/upload-file.http +0 -11
- package/requests/printer-file/upload-slicer-file.http +0 -11
- package/requests/printers/list.http +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","
|
|
1
|
+
{"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","enableMqttAutoDiscoveryToken","enableMqttAutoDiscoveryDefault","mqttUrlToken","mqttPortToken","mqttPortDefault","mqttUsernameToken","mqttPasswordToken","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,mBAAmB;IACnBC,mCAAmC;IACnCC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,8BAA8B;IAC9BC,gCAAgC;IAChCC,cAAc;IACdC,eAAe;IACfC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IAGnBC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;IAClCC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
|
package/dist/server.core.js
CHANGED
|
@@ -22,6 +22,8 @@ const _serverconstants = require("./server.constants");
|
|
|
22
22
|
const _path = require("path");
|
|
23
23
|
const _fsutils = require("./utils/fs.utils");
|
|
24
24
|
const _envutils = require("./utils/env.utils");
|
|
25
|
+
const _promclient = require("prom-client");
|
|
26
|
+
const _logger = require("./handlers/logger");
|
|
25
27
|
function _interop_require_default(obj) {
|
|
26
28
|
return obj && obj.__esModule ? obj : {
|
|
27
29
|
default: obj
|
|
@@ -68,16 +70,41 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
68
70
|
}
|
|
69
71
|
return newObj;
|
|
70
72
|
}
|
|
73
|
+
const httpRequestsTotal = new _promclient.Counter({
|
|
74
|
+
name: "http_requests_total",
|
|
75
|
+
help: "HTTP requests executed"
|
|
76
|
+
});
|
|
71
77
|
async function setupServer() {
|
|
72
78
|
const httpServer = (0, _express.default)();
|
|
73
79
|
const experimentalTypeormEnabled = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.ENABLE_EXPERIMENTAL_TYPEORM, _serverconstants.AppConstants.enableExperimentalTypeormDefault) === "true";
|
|
74
80
|
if (experimentalTypeormEnabled) {
|
|
75
|
-
const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH]
|
|
81
|
+
const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] ?? "./database";
|
|
76
82
|
(0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
|
|
77
83
|
}
|
|
78
84
|
const container = (0, _container.configureContainer)(experimentalTypeormEnabled);
|
|
79
85
|
(0, _passport1.initializePassportStrategies)(_passport.default, container);
|
|
80
|
-
httpServer.use((
|
|
86
|
+
httpServer.use((req, res, next)=>{
|
|
87
|
+
const route = req.route?.path ?? req.path ?? "unknown";
|
|
88
|
+
if (route.includes("/api")) {
|
|
89
|
+
const start = process.hrtime();
|
|
90
|
+
res.on("finish", ()=>{
|
|
91
|
+
httpRequestsTotal.inc();
|
|
92
|
+
const delta = process.hrtime(start);
|
|
93
|
+
const duration = delta[0] + delta[1] / 1e9;
|
|
94
|
+
const logger = new _logger.LoggerService("HttpRequest");
|
|
95
|
+
logger.newDebug({
|
|
96
|
+
message: `HTTP request ${req.method} ${req.originalUrl} ${res.statusCode}`,
|
|
97
|
+
method: req.method,
|
|
98
|
+
path: req.originalUrl,
|
|
99
|
+
statusCode: res.statusCode,
|
|
100
|
+
responseTimeMs: duration.toFixed(2),
|
|
101
|
+
clientIp: req.ip,
|
|
102
|
+
userAgent: req.get("User-Agent")
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
next();
|
|
107
|
+
}).use((0, _cors.default)({
|
|
81
108
|
origin: "*",
|
|
82
109
|
methods: "GET,HEAD,PUT,PATCH,POST,DELETE"
|
|
83
110
|
})).use((0, _helmet.default)({
|
package/dist/server.core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpServer","express","experimentalTypeormEnabled","getEnvOrDefault","AppConstants","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","dbFolder","process","env","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","experimentalTypeormEnabled","getEnvOrDefault","AppConstants","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","dbFolder","process","env","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","req","res","next","route","path","includes","start","hrtime","on","inc","delta","duration","logger","LoggerService","newDebug","message","method","originalUrl","statusCode","responseTimeMs","toFixed","clientIp","ip","userAgent","get","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAsBsBA;;;eAAAA;;;iEAtBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;0BACf;4BACR;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,aAAaC,IAAAA,gBAAO;IAC1B,MAAMC,6BACJC,IAAAA,yBAAe,EAACC,6BAAY,CAACC,2BAA2B,EAAED,6BAAY,CAACE,gCAAgC,MAAM;IAC/G,IAAIJ,4BAA4B;QAC9B,MAAMK,WAAWC,QAAQC,GAAG,CAACL,6BAAY,CAACM,aAAa,CAAC,IAAI;QAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIN;IACxC;IAEA,MAAMO,YAAYC,IAAAA,6BAAkB,EAACb;IACrCc,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCd,WACGkB,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQ,AAACH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAK;QAE/C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQjB,QAAQkB,MAAM;YAE5BN,IAAIO,EAAE,CAAC,UAAU;gBACf/B,kBAAkBgC,GAAG;gBAErB,MAAMC,QAAQrB,QAAQkB,MAAM,CAACD;gBAC7B,MAAMK,WAAWD,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,GAAG;gBACvC,MAAME,SAAS,IAAIC,qBAAa,CAAC;gBACjCD,OAAOE,QAAQ,CAAC;oBACdC,SAAS,CAAC,aAAa,EAAEf,IAAIgB,MAAM,CAAC,CAAC,EAAEhB,IAAIiB,WAAW,CAAC,CAAC,EAAEhB,IAAIiB,UAAU,EAAE;oBAC1EF,QAAQhB,IAAIgB,MAAM;oBAClBZ,MAAMJ,IAAIiB,WAAW;oBACrBC,YAAYjB,IAAIiB,UAAU;oBAC1BC,gBAAgBR,SAASS,OAAO,CAAC;oBACjCC,UAAUrB,IAAIsB,EAAE;oBAChBC,WAAWvB,IAAIwB,GAAG,CAAC;gBACrB;YACF;QACF;QAEAtB;IACF,GACCH,GAAG,CACF0B,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAED5B,GAAG,CACF6B,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAED9B,GAAG,CAAC+B,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzBhC,GAAG,CAACiC,IAAAA,qBAAY,KAChBjC,GAAG,CAACkC,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjCnC,GAAG,CAACD,iBAAQ,CAACqC,UAAU,IACvBpC,GAAG,CAACD,iBAAQ,CAACsC,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjEtC,GAAG,CAACuC,IAAAA,8BAAe,EAAC3C,YACpBI,GAAG,CAACwC,gCAAsB,EAE1BxC,GAAG,CAACyC,yCAAuB,EAC3BzC,GAAG,CAAC0C,gCAAc;IAErB,OAAO;QACL5D;QACAc;IACF;AACF"}
|
package/dist/server.env.js
CHANGED
|
@@ -9,8 +9,8 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
return
|
|
12
|
+
ensureMongoDbConnectionStringSet: function() {
|
|
13
|
+
return ensureMongoDbConnectionStringSet;
|
|
14
14
|
},
|
|
15
15
|
ensurePortSet: function() {
|
|
16
16
|
return ensurePortSet;
|
|
@@ -43,6 +43,7 @@ const _logger = require("./handlers/logger");
|
|
|
43
43
|
const _envutils = require("./utils/env.utils");
|
|
44
44
|
const _errorutils = require("./utils/error.utils");
|
|
45
45
|
const _fsutils = require("./utils/fs.utils");
|
|
46
|
+
const _promclient = require("prom-client");
|
|
46
47
|
function _getRequireWildcardCache(nodeInterop) {
|
|
47
48
|
if (typeof WeakMap !== "function") return null;
|
|
48
49
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -106,9 +107,7 @@ function ensureNodeEnvSet() {
|
|
|
106
107
|
}
|
|
107
108
|
function ensurePackageVersionSet() {
|
|
108
109
|
const packageJsonVersion = require(packageJsonPath).version;
|
|
109
|
-
|
|
110
|
-
process.env[_serverconstants.AppConstants.VERSION_KEY] = packageJsonVersion;
|
|
111
|
-
}
|
|
110
|
+
process.env[_serverconstants.AppConstants.VERSION_KEY] ??= packageJsonVersion;
|
|
112
111
|
logger.log(`✓ Running server version ${process.env[_serverconstants.AppConstants.VERSION_KEY]}`);
|
|
113
112
|
}
|
|
114
113
|
function printInstructionsURL() {
|
|
@@ -130,8 +129,8 @@ function fetchServerPort() {
|
|
|
130
129
|
}
|
|
131
130
|
return port;
|
|
132
131
|
}
|
|
133
|
-
function
|
|
134
|
-
|
|
132
|
+
function ensureMongoDbConnectionStringSet() {
|
|
133
|
+
const dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
|
|
135
134
|
if (!dbConnectionString) {
|
|
136
135
|
fetchMongoDBConnectionString();
|
|
137
136
|
} else {
|
|
@@ -171,8 +170,14 @@ function setupEnvConfig(skipDotEnv = false) {
|
|
|
171
170
|
ensureNodeEnvSet();
|
|
172
171
|
ensurePackageVersionSet();
|
|
173
172
|
setupSentry();
|
|
174
|
-
|
|
173
|
+
ensureMongoDbConnectionStringSet();
|
|
175
174
|
ensurePortSet();
|
|
175
|
+
if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
|
|
176
|
+
(0, _promclient.collectDefaultMetrics)({
|
|
177
|
+
register: _promclient.register
|
|
178
|
+
});
|
|
179
|
+
_promclient.register.removeSingleMetric("nodejs_version_info");
|
|
180
|
+
}
|
|
176
181
|
}
|
|
177
182
|
async function runMigrations(db, client) {
|
|
178
183
|
const migrationsStatus = await (0, _migratemongo.status)(db);
|
package/dist/server.env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.env.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/server.env.ts"],"names":["ensureMongoDbConnectionStringSet","ensurePortSet","fetchMongoDBConnectionString","fetchServerPort","isEnvProd","runMigrations","setupEnvConfig","setupSentry","logger","Logger","instructionsReferralURL","packageJsonPath","join","superRootPath","dotEnvPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","environment","knownEnvNames","includes","newEnvName","warn","log","ensurePackageVersionSet","packageJsonVersion","require","version","VERSION_KEY","printInstructionsURL","MONGO_KEY","debug","defaultMongoStringUnauthenticated","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","dbConnectionString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","skipDotEnv","config","path","ENABLE_PROMETHEUS_METRICS","collectDefaultMetrics","register","removeSingleMetric","db","client","migrationsStatus","status","pendingMigrations","filter","m","appliedAt","length","migrationResult","up"],"mappings":"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"}
|
package/dist/server.host.js
CHANGED
|
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "ServerHost", {
|
|
|
11
11
|
const _express = /*#__PURE__*/ _interop_require_default(require("express"));
|
|
12
12
|
const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
|
|
13
13
|
const _connecthistoryapifallback = /*#__PURE__*/ _interop_require_default(require("connect-history-api-fallback"));
|
|
14
|
-
const _awilixexpress = require("awilix-express");
|
|
15
14
|
const _path = require("path");
|
|
16
15
|
const _exceptionfilter = require("./middleware/exception.filter");
|
|
17
16
|
const _serverenv = require("./server.env");
|
|
@@ -19,41 +18,38 @@ const _runtimeexceptions = require("./exceptions/runtime.exceptions");
|
|
|
19
18
|
const _serverconstants = require("./server.constants");
|
|
20
19
|
const _fsutils = require("./utils/fs.utils");
|
|
21
20
|
const _envutils = require("./utils/env.utils");
|
|
21
|
+
const _loadcontrollers = require("./shared/load-controllers");
|
|
22
22
|
function _interop_require_default(obj) {
|
|
23
23
|
return obj && obj.__esModule ? obj : {
|
|
24
24
|
default: obj
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
class ServerHost {
|
|
28
|
+
configService;
|
|
29
|
+
isTypeormMode;
|
|
30
|
+
settingsStore;
|
|
28
31
|
bootTask;
|
|
29
|
-
taskManagerService;
|
|
30
32
|
socketIoGateway;
|
|
31
|
-
appInstance = null;
|
|
32
|
-
configService;
|
|
33
33
|
typeormService;
|
|
34
|
-
settingsStore;
|
|
35
|
-
isTypeormMode;
|
|
36
34
|
logger;
|
|
37
|
-
constructor(
|
|
38
|
-
this.
|
|
35
|
+
constructor(loggerFactory, configService, isTypeormMode, settingsStore, bootTask, socketIoGateway, typeormService){
|
|
36
|
+
this.configService = configService;
|
|
37
|
+
this.isTypeormMode = isTypeormMode;
|
|
38
|
+
this.settingsStore = settingsStore;
|
|
39
39
|
this.bootTask = bootTask;
|
|
40
|
-
this.taskManagerService = taskManagerService;
|
|
41
40
|
this.socketIoGateway = socketIoGateway;
|
|
42
|
-
this.configService = configService;
|
|
43
41
|
this.typeormService = typeormService;
|
|
44
|
-
this.
|
|
45
|
-
this.isTypeormMode = isTypeormMode;
|
|
42
|
+
this.logger = loggerFactory(ServerHost.name);
|
|
46
43
|
}
|
|
47
44
|
async boot(app, quick_boot = false, listenRequests = true) {
|
|
48
45
|
if (!this.isTypeormMode) {
|
|
49
46
|
_mongoose.default.set("strictQuery", true);
|
|
50
47
|
}
|
|
51
|
-
this.
|
|
52
|
-
this.serveControllerRoutes(this.appInstance);
|
|
48
|
+
this.serveControllerRoutes(app);
|
|
53
49
|
if (!quick_boot) {
|
|
54
50
|
await this.bootTask.runOnce();
|
|
55
51
|
}
|
|
56
|
-
if (listenRequests) return this.httpListen();
|
|
52
|
+
if (listenRequests) return this.httpListen(app);
|
|
57
53
|
}
|
|
58
54
|
hasConnected() {
|
|
59
55
|
if (this.isTypeormMode) {
|
|
@@ -63,17 +59,13 @@ class ServerHost {
|
|
|
63
59
|
}
|
|
64
60
|
}
|
|
65
61
|
serveControllerRoutes(app) {
|
|
66
|
-
const routePath = "./controllers";
|
|
67
62
|
app.use((req, res, next)=>{
|
|
68
|
-
if (!req.originalUrl.startsWith("/api") && !req.originalUrl.startsWith("/socket.io")) {
|
|
63
|
+
if (!req.originalUrl.startsWith("/metrics") && !req.originalUrl.startsWith("/api") && !req.originalUrl.startsWith("/socket.io")) {
|
|
69
64
|
(0, _connecthistoryapifallback.default)()(req, res, next);
|
|
70
65
|
} else {
|
|
71
66
|
next();
|
|
72
67
|
}
|
|
73
|
-
}).use((0,
|
|
74
|
-
cwd: __dirname,
|
|
75
|
-
ignore: "**/*.map"
|
|
76
|
-
})).use(_exceptionfilter.exceptionFilter);
|
|
68
|
+
}).use((0, _loadcontrollers.loadControllersFunc)());
|
|
77
69
|
const nextClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientNextPackageName, "dist");
|
|
78
70
|
const bundleDistPath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
|
|
79
71
|
const backupClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
|
|
@@ -86,10 +78,10 @@ class ServerHost {
|
|
|
86
78
|
});
|
|
87
79
|
app.use(_express.default.static(bundleDistPath));
|
|
88
80
|
app.use(_express.default.static(backupClientPath));
|
|
89
|
-
app.get("*", (req,
|
|
81
|
+
app.get("*", (req, _)=>{
|
|
90
82
|
const path = req.originalUrl;
|
|
91
83
|
let resource = "MVC";
|
|
92
|
-
if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/
|
|
84
|
+
if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/metrics")) {
|
|
93
85
|
resource = "API";
|
|
94
86
|
} else if (path.endsWith(".min.js")) {
|
|
95
87
|
resource = "client-bundle";
|
|
@@ -98,17 +90,14 @@ class ServerHost {
|
|
|
98
90
|
if (!path.startsWith("/socket.io")) {
|
|
99
91
|
throw new _runtimeexceptions.NotFoundException(`${resource} resource was not found`, path);
|
|
100
92
|
}
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
isClientNextEnabled() {
|
|
104
|
-
const settings = this.settingsStore.getServerSettings();
|
|
105
|
-
return settings.experimentalClientSupport;
|
|
93
|
+
});
|
|
94
|
+
app.use(_exceptionfilter.exceptionFilter);
|
|
106
95
|
}
|
|
107
|
-
async httpListen() {
|
|
96
|
+
async httpListen(app) {
|
|
108
97
|
const port = (0, _serverenv.fetchServerPort)();
|
|
109
98
|
if (!(0, _envutils.isProductionEnvironment)() && this.configService.get(_serverconstants.AppConstants.debugRoutesKey, "false") === "true") {
|
|
110
99
|
const expressListRoutes = require("express-list-routes");
|
|
111
|
-
expressListRoutes(
|
|
100
|
+
expressListRoutes(app, {
|
|
112
101
|
prefix: "/"
|
|
113
102
|
});
|
|
114
103
|
}
|
|
@@ -116,11 +105,15 @@ class ServerHost {
|
|
|
116
105
|
throw new Error("The FDM Server requires a numeric port input argument to run");
|
|
117
106
|
}
|
|
118
107
|
const hostOrFqdn = "0.0.0.0";
|
|
119
|
-
const server =
|
|
108
|
+
const server = app.listen(parseInt(port), hostOrFqdn, ()=>{
|
|
120
109
|
this.logger.log(`Server started... open it at http://127.0.0.1:${port}`);
|
|
121
110
|
});
|
|
122
111
|
this.socketIoGateway.attachServer(server);
|
|
123
112
|
}
|
|
113
|
+
isClientNextEnabled() {
|
|
114
|
+
const settings = this.settingsStore.getServerSettings();
|
|
115
|
+
return settings.experimentalClientSupport;
|
|
116
|
+
}
|
|
124
117
|
}
|
|
125
118
|
|
|
126
119
|
//# sourceMappingURL=server.host.js.map
|
package/dist/server.host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","
|
|
1
|
+
{"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","logger","constructor","loggerFactory","configService","isTypeormMode","settingsStore","bootTask","socketIoGateway","typeormService","name","boot","app","quick_boot","listenRequests","mongoose","set","serveControllerRoutes","runOnce","httpListen","hasConnected","connections","readyState","use","req","res","next","originalUrl","startsWith","history","loadControllersFunc","nextClientPath","join","superRootPath","AppConstants","clientNextPackageName","bundleDistPath","defaultClientBundleStorage","backupClientPath","clientPackageName","isClientNextEnabled","express","static","get","_","path","resource","endsWith","error","NotFoundException","exceptionFilter","port","fetchServerPort","isProductionEnvironment","debugRoutesKey","expressListRoutes","require","prefix","Number","isNaN","parseInt","Error","hostOrFqdn","server","listen","log","attachServer","settings","getServerSettings","experimentalClientSupport"],"mappings":"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"}
|
|
@@ -13,18 +13,19 @@ const _cryptoutils = require("../../utils/crypto.utils");
|
|
|
13
13
|
const _authorizationconstants = require("../../constants/authorization.constants");
|
|
14
14
|
const _node = require("@sentry/node");
|
|
15
15
|
class AuthService {
|
|
16
|
-
logger;
|
|
17
16
|
userService;
|
|
18
17
|
jwtService;
|
|
19
18
|
settingsStore;
|
|
20
19
|
refreshTokenService;
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
logger;
|
|
21
|
+
blacklistedJwtCache;
|
|
22
|
+
constructor(loggerFactory, userService, jwtService, settingsStore, refreshTokenService){
|
|
23
23
|
this.userService = userService;
|
|
24
24
|
this.jwtService = jwtService;
|
|
25
|
-
this.logger = loggerFactory(AuthService.name);
|
|
26
25
|
this.settingsStore = settingsStore;
|
|
27
26
|
this.refreshTokenService = refreshTokenService;
|
|
27
|
+
this.blacklistedJwtCache = {};
|
|
28
|
+
this.logger = loggerFactory(AuthService.name);
|
|
28
29
|
}
|
|
29
30
|
async loginUser(username, password) {
|
|
30
31
|
const userDoc = await this.userService.findRawByUsername(username);
|
|
@@ -35,7 +36,7 @@ class AuthService {
|
|
|
35
36
|
if (!result) {
|
|
36
37
|
throw new _runtimeexceptions.AuthenticationError("Login incorrect", _authorizationconstants.AUTH_ERROR_REASON.IncorrectCredentials);
|
|
37
38
|
}
|
|
38
|
-
const userId = userDoc.id
|
|
39
|
+
const userId = userDoc.id;
|
|
39
40
|
const token = await this.signJwtToken(userId);
|
|
40
41
|
await this.refreshTokenService.purgeOutdatedRefreshTokensByUserId(userId);
|
|
41
42
|
await this.purgeOutdatedBlacklistedJwtCache();
|
|
@@ -73,15 +74,12 @@ class AuthService {
|
|
|
73
74
|
}
|
|
74
75
|
async logoutUserRefreshToken(refreshToken) {
|
|
75
76
|
const userRefreshToken = await this.getValidRefreshToken(refreshToken);
|
|
76
|
-
await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId
|
|
77
|
+
await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId);
|
|
77
78
|
}
|
|
78
79
|
async renewLoginByRefreshToken(refreshToken) {
|
|
79
|
-
const userRefreshToken = await this.getValidRefreshToken(refreshToken
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
const userId = userRefreshToken.userId.toString();
|
|
84
|
-
const user = await this.userService.getUser(userId, false);
|
|
80
|
+
const userRefreshToken = await this.getValidRefreshToken(refreshToken);
|
|
81
|
+
const userId = userRefreshToken.userId;
|
|
82
|
+
const user = await this.userService.getUser(userId);
|
|
85
83
|
if (!user) {
|
|
86
84
|
await this.refreshTokenService.deleteRefreshToken(refreshToken);
|
|
87
85
|
throw new _runtimeexceptions.AuthenticationError("User not found", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
|
|
@@ -93,13 +91,10 @@ class AuthService {
|
|
|
93
91
|
isJwtTokenBlacklisted(jwtToken) {
|
|
94
92
|
return this.blacklistedJwtCache[jwtToken];
|
|
95
93
|
}
|
|
96
|
-
async getValidRefreshToken(refreshToken
|
|
97
|
-
const userRefreshToken = await this.refreshTokenService.getRefreshToken(refreshToken
|
|
98
|
-
if (!userRefreshToken) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
94
|
+
async getValidRefreshToken(refreshToken) {
|
|
95
|
+
const userRefreshToken = await this.refreshTokenService.getRefreshToken(refreshToken);
|
|
101
96
|
if (Date.now() > userRefreshToken.expiresAt) {
|
|
102
|
-
await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId
|
|
97
|
+
await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId);
|
|
103
98
|
throw new _runtimeexceptions.AuthenticationError("Refresh token expired, login required", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
|
|
104
99
|
}
|
|
105
100
|
return userRefreshToken;
|
|
@@ -110,14 +105,14 @@ class AuthService {
|
|
|
110
105
|
const attemptsUsed = userRefreshToken.refreshAttemptsUsed;
|
|
111
106
|
if (refreshTokenAttempts !== -1) {
|
|
112
107
|
if (attemptsUsed >= refreshTokenAttempts) {
|
|
113
|
-
await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId
|
|
108
|
+
await this.refreshTokenService.deleteRefreshTokenByUserId(userRefreshToken.userId);
|
|
114
109
|
throw new _runtimeexceptions.AuthenticationError("Refresh token attempts exceeded, login required", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
|
|
115
110
|
}
|
|
116
111
|
}
|
|
117
112
|
await this.refreshTokenService.updateRefreshTokenAttempts(refreshToken, attemptsUsed + 1);
|
|
118
113
|
}
|
|
119
114
|
async signJwtToken(userId) {
|
|
120
|
-
const user = await this.userService.getUser(userId
|
|
115
|
+
const user = await this.userService.getUser(userId);
|
|
121
116
|
if (!user) {
|
|
122
117
|
throw new _runtimeexceptions.AuthenticationError("User not found", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredRefreshToken);
|
|
123
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/authentication/auth.service.ts"],"names":["AuthService","logger","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/authentication/auth.service.ts"],"names":["AuthService","logger","blacklistedJwtCache","constructor","loggerFactory","userService","jwtService","settingsStore","refreshTokenService","name","loginUser","username","password","userDoc","findRawByUsername","AuthenticationError","AUTH_ERROR_REASON","IncorrectCredentials","result","comparePasswordHash","passwordHash","userId","id","token","signJwtToken","purgeOutdatedRefreshTokensByUserId","purgeOutdatedBlacklistedJwtCache","refreshToken","createRefreshTokenForUserId","logoutUserId","jwtToken","deleteRefreshTokenByUserId","length","createdAt","Date","now","jwtExpiresIn","getCredentialSettings","keys","Object","key","err","error","captureException","logoutUserRefreshToken","userRefreshToken","getValidRefreshToken","renewLoginByRefreshToken","user","getUser","deleteRefreshToken","InvalidOrExpiredRefreshToken","increaseRefreshTokenAttemptsUsed","isJwtTokenBlacklisted","getRefreshToken","expiresAt","refreshTokenAttempts","attemptsUsed","refreshAttemptsUsed","updateRefreshTokenAttempts","needsPasswordChange","PasswordChangeRequired","isVerified","AccountNotVerified"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ const _serverconstants = require("../../server.constants");
|
|
|
13
13
|
class JwtService {
|
|
14
14
|
settingsStore;
|
|
15
15
|
configService;
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(settingsStore, configService){
|
|
17
17
|
this.settingsStore = settingsStore;
|
|
18
18
|
this.configService = configService;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/authentication/jwt.service.ts"],"names":["JwtService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/authentication/jwt.service.ts"],"names":["JwtService","constructor","settingsStore","configService","signJwtToken","userId","username","jwtSecret","jwtExpiresIn","getCredentialSettings","sign","expiresIn","subject","toString","audience","get","AppConstants","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","issuer","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER"],"mappings":";;;;+BAOaA;;;eAAAA;;;8BAPQ;iCACQ;AAMtB,MAAMA;;;IACXC,YACE,AAAiBC,aAA4B,EAC7C,AAAiBC,aAA6B,CAC9C;aAFiBD,gBAAAA;aACAC,gBAAAA;IAChB;IAEH,MAAMC,aAAaC,MAAc,EAAEC,QAAgB,EAAE;QACnD,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAG,MAAM,IAAI,CAACN,aAAa,CAACO,qBAAqB;QAElF,OAAOC,IAAAA,kBAAI,EAAC;YAAEL;YAAQC;QAAS,GAAGC,WAAW;YAC3CI,WAAWH;YACXI,SAASP,OAAOQ,QAAQ;YACxBC,UAAU,IAAI,CAACX,aAAa,CAACY,GAAG,CAACC,6BAAY,CAACC,qBAAqB,EAAED,6BAAY,CAACE,oBAAoB;YACtGC,QAAQ,IAAI,CAAChB,aAAa,CAACY,GAAG,CAACC,6BAAY,CAACI,mBAAmB,EAAEJ,6BAAY,CAACK,kBAAkB;QAClG;IACF;AACF"}
|
|
@@ -13,18 +13,14 @@ const _errorutils = require("../../utils/error.utils");
|
|
|
13
13
|
const _printerapiinterface = require("../printer-api.interface");
|
|
14
14
|
class BatchCallService {
|
|
15
15
|
printerApiFactory;
|
|
16
|
-
printerSocketStore;
|
|
17
16
|
printerCache;
|
|
18
|
-
|
|
19
|
-
printerFilesStore;
|
|
17
|
+
printerSocketStore;
|
|
20
18
|
printerService;
|
|
21
19
|
logger;
|
|
22
|
-
constructor(
|
|
20
|
+
constructor(loggerFactory, printerApiFactory, printerCache, printerSocketStore, printerService){
|
|
23
21
|
this.printerApiFactory = printerApiFactory;
|
|
24
22
|
this.printerCache = printerCache;
|
|
25
|
-
this.printerEventsCache = printerEventsCache;
|
|
26
23
|
this.printerSocketStore = printerSocketStore;
|
|
27
|
-
this.printerFilesStore = printerFilesStore;
|
|
28
24
|
this.printerService = printerService;
|
|
29
25
|
this.logger = loggerFactory(BatchCallService.name);
|
|
30
26
|
}
|
|
@@ -34,7 +30,7 @@ class BatchCallService {
|
|
|
34
30
|
async batchTogglePrintersEnabled(printerIds, enabled) {
|
|
35
31
|
const promises = [];
|
|
36
32
|
for (const printerId of printerIds){
|
|
37
|
-
let promise;
|
|
33
|
+
let promise = undefined;
|
|
38
34
|
const printerDto = await this.printerCache.getValue(printerId);
|
|
39
35
|
if (!printerDto) continue;
|
|
40
36
|
const time = Date.now();
|
|
@@ -55,32 +51,34 @@ class BatchCallService {
|
|
|
55
51
|
};
|
|
56
52
|
});
|
|
57
53
|
}
|
|
54
|
+
} else if (printerDto.enabled) {
|
|
55
|
+
promise = this.printerService.updateEnabled(printerId, false).then(()=>{
|
|
56
|
+
return {
|
|
57
|
+
success: true,
|
|
58
|
+
printerId,
|
|
59
|
+
time: Date.now() - time
|
|
60
|
+
};
|
|
61
|
+
}).catch((e)=>{
|
|
62
|
+
return {
|
|
63
|
+
failure: true,
|
|
64
|
+
error: e.message,
|
|
65
|
+
printerId,
|
|
66
|
+
time: Date.now() - time
|
|
67
|
+
};
|
|
68
|
+
});
|
|
58
69
|
} else {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
printerId,
|
|
64
|
-
time: Date.now() - time
|
|
65
|
-
};
|
|
66
|
-
}).catch((e)=>{
|
|
67
|
-
return {
|
|
68
|
-
failure: true,
|
|
69
|
-
error: e.message,
|
|
70
|
-
printerId,
|
|
71
|
-
time: Date.now() - time
|
|
72
|
-
};
|
|
73
|
-
});
|
|
74
|
-
}
|
|
70
|
+
this.logger.warn("Did not toggle printer enabled, its in maintenance");
|
|
71
|
+
}
|
|
72
|
+
if (promise) {
|
|
73
|
+
promises.push(promise);
|
|
75
74
|
}
|
|
76
|
-
promises.push(promise);
|
|
77
75
|
}
|
|
78
76
|
return await Promise.all(promises);
|
|
79
77
|
}
|
|
80
78
|
batchConnectSocket(printerIds) {
|
|
81
79
|
for (const printerId of printerIds){
|
|
82
80
|
try {
|
|
83
|
-
this.printerSocketStore.
|
|
81
|
+
this.printerSocketStore.reconnectPrinterAdapter(printerId);
|
|
84
82
|
} catch (e) {
|
|
85
83
|
(0, _node.captureException)(e);
|
|
86
84
|
this.logger.error(`Error setting socket to reconnect ${(0, _errorutils.errorSummary)(e)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/core/batch-call.service.ts"],"names":["BatchCallService","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/core/batch-call.service.ts"],"names":["BatchCallService","logger","constructor","loggerFactory","printerApiFactory","printerCache","printerSocketStore","printerService","name","getPrinter","login","getScopedPrinter","batchTogglePrintersEnabled","printerIds","enabled","promises","printerId","promise","undefined","printerDto","getValue","time","Date","now","disabledReason","length","updateEnabled","then","success","catch","e","failure","error","message","warn","push","Promise","all","batchConnectSocket","reconnectPrinterAdapter","captureException","errorSummary","batchSettingsGet","getLoginDtoAsync","client","getSettings","r","value","batchConnectUsb","connect","getBatchPrinterReprintFile","resolve","_","partialReprintState","getReprintState","connectionState","reprintState","ReprintState","PrinterNotAvailable","batchReprintCalls","printerIdFileList","printerIdFile","path","startPrint"],"mappings":"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"}
|