@fdm-monster/server 1.8.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.template +6 -4
- package/.gitattributes +4 -2
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.9.1.cjs +948 -0
- package/.yarnrc.yml +1 -1
- package/README.md +27 -28
- package/RELEASE_NOTES.MD +69 -1
- package/biome.json +33 -0
- package/dist/consoles/download-github-releases.js.map +1 -1
- package/dist/consoles/launch-http-servers.js +31 -0
- package/dist/consoles/launch-http-servers.js.map +1 -0
- package/dist/consoles/mock-octoprint.server.js +291 -0
- package/dist/consoles/mock-octoprint.server.js.map +1 -0
- package/dist/consoles/mock-prusalink.server.js +57 -0
- package/dist/consoles/mock-prusalink.server.js.map +1 -0
- package/dist/consoles/utils/api-messages.js +856 -0
- package/dist/consoles/utils/api-messages.js.map +1 -0
- package/dist/consoles/utils/delayed-memory.storage.js +42 -0
- package/dist/consoles/utils/delayed-memory.storage.js.map +1 -0
- package/dist/consoles/utils/ws-messages.js +88 -0
- package/dist/consoles/utils/ws-messages.js.map +1 -0
- package/dist/constants/event.constants.js +5 -21
- package/dist/constants/event.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +8 -12
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/container.js +13 -14
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +3 -4
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/auth.controller.js +114 -24
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +95 -24
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/camera-stream.controller.js +16 -12
- package/dist/controllers/camera-stream.controller.js.map +1 -1
- package/dist/controllers/custom-gcode.controller.js +116 -40
- package/dist/controllers/custom-gcode.controller.js.map +1 -1
- package/dist/controllers/dto/update-client-dist.dto.js +0 -21
- package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
- package/dist/controllers/first-time-setup.controller.js +54 -18
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/floor.controller.js +154 -43
- package/dist/controllers/floor.controller.js.map +1 -1
- package/dist/controllers/metrics.controller.js +56 -0
- package/dist/controllers/metrics.controller.js.map +1 -0
- package/dist/controllers/print-completion.controller.js +81 -18
- package/dist/controllers/print-completion.controller.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +45 -29
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer-group.controller.js +123 -33
- package/dist/controllers/printer-group.controller.js.map +1 -1
- package/dist/controllers/printer-settings.controller.js +73 -26
- package/dist/controllers/printer-settings.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +57 -198
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-private.controller.js +153 -39
- package/dist/controllers/server-private.controller.js.map +1 -1
- package/dist/controllers/server-public.controller.js +87 -88
- package/dist/controllers/server-public.controller.js.map +1 -1
- package/dist/controllers/settings.controller.js +222 -79
- package/dist/controllers/settings.controller.js.map +1 -1
- package/dist/controllers/user.controller.js +67 -57
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/auth-controller.validation.js +6 -5
- package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +17 -18
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/controllers/validation/generic.validation.js +8 -3
- package/dist/controllers/validation/generic.validation.js.map +1 -1
- package/dist/controllers/validation/printer-completion-controller.validation.js +16 -0
- package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -0
- package/dist/controllers/validation/printer-controller.validation.js +31 -50
- package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-files-controller.validation.js +25 -15
- package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-settings-controller.validation.js +6 -5
- package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
- package/dist/controllers/validation/server-private.validation.js +17 -0
- package/dist/controllers/validation/server-private.validation.js.map +1 -0
- package/dist/controllers/validation/setting.validation.js +28 -10
- package/dist/controllers/validation/setting.validation.js.map +1 -1
- package/dist/controllers/validation/user-controller.validation.js +44 -13
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/data-source.js +10 -6
- package/dist/data-source.js.map +1 -1
- package/dist/entities/camera-stream.entity.js +2 -3
- package/dist/entities/camera-stream.entity.js.map +1 -1
- package/dist/entities/custom-gcode.entity.js +1 -2
- package/dist/entities/custom-gcode.entity.js.map +1 -1
- package/dist/entities/floor-position.entity.js.map +1 -1
- package/dist/entities/floor.entity.js +1 -2
- package/dist/entities/floor.entity.js.map +1 -1
- package/dist/entities/group.entity.js +6 -2
- package/dist/entities/group.entity.js.map +1 -1
- package/dist/entities/permission.entity.js +1 -2
- package/dist/entities/permission.entity.js.map +1 -1
- package/dist/entities/print-completion.entity.js +1 -2
- package/dist/entities/print-completion.entity.js.map +1 -1
- package/dist/entities/printer-group.entity.js +6 -2
- package/dist/entities/printer-group.entity.js.map +1 -1
- package/dist/entities/printer.entity.js +22 -4
- package/dist/entities/printer.entity.js.map +1 -1
- package/dist/entities/refresh-token.entity.js +1 -2
- package/dist/entities/refresh-token.entity.js.map +1 -1
- package/dist/entities/role.entity.js +1 -2
- package/dist/entities/role.entity.js.map +1 -1
- package/dist/entities/settings.entity.js +1 -2
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/entities/user-role.entity.js +1 -2
- package/dist/entities/user-role.entity.js.map +1 -1
- package/dist/entities/user.entity.js +1 -2
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/exceptions/runtime.exceptions.js.map +1 -1
- package/dist/handlers/logger-factory.js +2 -2
- package/dist/handlers/logger-factory.js.map +1 -1
- package/dist/handlers/logger.js +11 -58
- package/dist/handlers/logger.js.map +1 -1
- package/dist/handlers/logging/file-logging.transport.js +35 -0
- package/dist/handlers/logging/file-logging.transport.js.map +1 -0
- package/dist/handlers/logging/loki-logging.transport.js +55 -0
- package/dist/handlers/logging/loki-logging.transport.js.map +1 -0
- package/dist/handlers/logging/static.logger.js +134 -0
- package/dist/handlers/logging/static.logger.js.map +1 -0
- package/dist/handlers/validators.js +7 -116
- package/dist/handlers/validators.js.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/authenticate.js +11 -22
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/database.js.map +1 -1
- package/dist/middleware/demo.middleware.js +4 -17
- package/dist/middleware/demo.middleware.js.map +1 -1
- package/dist/middleware/exception.filter.js +23 -23
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/middleware/global.middleware.js +4 -4
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/param-converter.middleware.js +81 -0
- package/dist/middleware/param-converter.middleware.js.map +1 -0
- package/dist/middleware/passport.js +3 -5
- package/dist/middleware/passport.js.map +1 -1
- package/dist/middleware/printer-resolver.js +37 -0
- package/dist/middleware/printer-resolver.js.map +1 -0
- package/dist/middleware/printer.js +22 -10
- package/dist/middleware/printer.js.map +1 -1
- package/dist/middleware/socketio.middleware.js +35 -0
- package/dist/middleware/socketio.middleware.js.map +1 -0
- package/dist/migrations/1706829146617-InitSqlite.js +1 -1
- package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +229 -0
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -0
- package/dist/models/Auth/Permission.js.map +1 -1
- package/dist/models/Auth/RefreshToken.js +1 -1
- package/dist/models/Auth/RefreshToken.js.map +1 -1
- package/dist/models/Auth/Role.js.map +1 -1
- package/dist/models/Auth/User.js.map +1 -1
- package/dist/models/CameraStream.js +20 -0
- package/dist/models/CameraStream.js.map +1 -1
- package/dist/models/CustomGcode.js.map +1 -1
- package/dist/models/Floor.js.map +1 -1
- package/dist/models/FloorPrinter.js +10 -1
- package/dist/models/FloorPrinter.js.map +1 -1
- package/dist/models/PrintCompletion.js.map +1 -1
- package/dist/models/Printer.js +12 -5
- package/dist/models/Printer.js.map +1 -1
- package/dist/models/Settings.js +11 -43
- package/dist/models/Settings.js.map +1 -1
- package/dist/models/index.js +0 -4
- package/dist/models/index.js.map +1 -1
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
- package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +1 -1
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +1 -1
- package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +1 -1
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -1
- package/dist/server.constants.js +8 -4
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +29 -2
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +22 -18
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +24 -33
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js +15 -20
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/jwt.service.js +1 -1
- package/dist/services/authentication/jwt.service.js.map +1 -1
- package/dist/services/core/batch-call.service.js +23 -25
- package/dist/services/core/batch-call.service.js.map +1 -1
- package/dist/services/core/client-bundle.service.js +78 -136
- package/dist/services/core/client-bundle.service.js.map +1 -1
- package/dist/services/core/config.service.js.map +1 -1
- package/dist/services/core/cradle.service.js +21 -0
- package/dist/services/core/cradle.service.js.map +1 -0
- package/dist/services/core/github.service.js +2 -2
- package/dist/services/core/github.service.js.map +1 -1
- package/dist/services/core/http-client.factory.js +1 -1
- package/dist/services/core/http-client.factory.js.map +1 -1
- package/dist/services/core/logs-manager.service.js +3 -3
- package/dist/services/core/logs-manager.service.js.map +1 -1
- package/dist/services/core/monsterpi.service.js +1 -1
- package/dist/services/core/monsterpi.service.js.map +1 -1
- package/dist/services/core/multer.service.js +8 -7
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/server-release.service.js +14 -8
- package/dist/services/core/server-release.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +16 -17
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/interfaces/camera-stream.dto.js +4 -34
- package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
- package/dist/services/interfaces/custom-gcode.dto.js.map +1 -1
- package/dist/services/interfaces/floor.dto.js +5 -47
- package/dist/services/interfaces/floor.dto.js.map +1 -1
- package/dist/services/interfaces/login.dto.js +2 -0
- package/dist/services/interfaces/login.dto.js.map +1 -1
- package/dist/services/interfaces/print-completion.dto.js.map +1 -1
- package/dist/services/interfaces/printer-group.dto.js +0 -14
- package/dist/services/interfaces/printer-group.dto.js.map +1 -1
- package/dist/services/interfaces/printer.dto.js +11 -11
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/interfaces/settings.dto.js.map +1 -1
- package/dist/services/interfaces/task.interfaces.js +6 -0
- package/dist/services/interfaces/task.interfaces.js.map +1 -0
- package/dist/services/mongoose/camera-stream.service.js +17 -15
- package/dist/services/mongoose/camera-stream.service.js.map +1 -1
- package/dist/services/mongoose/custom-gcode.service.js +4 -2
- package/dist/services/mongoose/custom-gcode.service.js.map +1 -1
- package/dist/services/mongoose/floor.service.js +37 -30
- package/dist/services/mongoose/floor.service.js.map +1 -1
- package/dist/services/mongoose/permission.service.js +1 -1
- package/dist/services/mongoose/permission.service.js.map +1 -1
- package/dist/services/mongoose/print-completion.service.js +2 -2
- package/dist/services/mongoose/print-completion.service.js.map +1 -1
- package/dist/services/mongoose/print-completion.shared.js +2 -2
- package/dist/services/mongoose/print-completion.shared.js.map +1 -1
- package/dist/services/mongoose/printer.service.js +33 -45
- package/dist/services/mongoose/printer.service.js.map +1 -1
- package/dist/services/mongoose/refresh-token.service.js +5 -8
- package/dist/services/mongoose/refresh-token.service.js.map +1 -1
- package/dist/services/mongoose/role.service.js +14 -5
- package/dist/services/mongoose/role.service.js.map +1 -1
- package/dist/services/mongoose/settings.service.js +35 -62
- package/dist/services/mongoose/settings.service.js.map +1 -1
- package/dist/services/mongoose/user.service.js +8 -7
- package/dist/services/mongoose/user.service.js.map +1 -1
- package/dist/services/moonraker/constants/{websocket.constants.js → moonraker.constants.js} +1 -1
- package/dist/services/moonraker/constants/{websocket.constants.js.map → moonraker.constants.js.map} +1 -1
- package/dist/services/moonraker/moonraker-websocket.adapter.js +109 -96
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +25 -16
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +5 -7
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-service.constants.js +7 -36
- package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js +12 -3
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js +2 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/octoprint-api.routes.js +1 -38
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js +66 -72
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +19 -192
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
- package/dist/services/octoprint.api.js +10 -19
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/base.service.js +11 -12
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js +5 -1
- package/dist/services/orm/camera-stream.service.js.map +1 -1
- package/dist/services/orm/custom-gcode.service.js +2 -2
- package/dist/services/orm/custom-gcode.service.js.map +1 -1
- package/dist/services/orm/floor-position.service.js +0 -5
- package/dist/services/orm/floor-position.service.js.map +1 -1
- package/dist/services/orm/floor.service.js +43 -39
- package/dist/services/orm/floor.service.js.map +1 -1
- package/dist/services/orm/permission.service.js +3 -4
- package/dist/services/orm/permission.service.js.map +1 -1
- package/dist/services/orm/print-completion.service.js +2 -4
- package/dist/services/orm/print-completion.service.js.map +1 -1
- package/dist/services/orm/printer-group.service.js +2 -7
- package/dist/services/orm/printer-group.service.js.map +1 -1
- package/dist/services/orm/printer.service.js +21 -36
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/refresh-token.service.js +5 -11
- package/dist/services/orm/refresh-token.service.js.map +1 -1
- package/dist/services/orm/role.service.js +11 -10
- package/dist/services/orm/role.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +37 -133
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/orm/user.service.js +13 -15
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/printer-api.factory.js +9 -6
- package/dist/services/printer-api.factory.js.map +1 -1
- package/dist/services/printer-api.interface.js +13 -6
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink-event.dto.js +18 -0
- package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -0
- package/dist/services/prusa-link/constants/prusalink.constants.js +13 -0
- package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -0
- package/dist/services/prusa-link/dto/file-response.dto.js +6 -0
- package/dist/services/prusa-link/dto/file-response.dto.js.map +1 -0
- package/dist/services/{octoprint/dto/plugin.dto.js → prusa-link/dto/file.dto.js} +1 -1
- package/dist/services/prusa-link/dto/file.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/job-state.dto.js +6 -0
- package/dist/services/prusa-link/dto/job-state.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/printer-state.dto.js +6 -0
- package/dist/services/prusa-link/dto/printer-state.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/status.dto.js +6 -0
- package/dist/services/prusa-link/dto/status.dto.js.map +1 -0
- package/dist/services/prusa-link/dto/version.dto.js +6 -0
- package/dist/services/prusa-link/dto/version.dto.js.map +1 -0
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +142 -0
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -0
- package/dist/services/prusa-link/prusa-link.api.js +235 -0
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -0
- package/dist/services/prusa-link/utils/digest-auth.params.js +6 -0
- package/dist/services/prusa-link/utils/digest-auth.params.js.map +1 -0
- package/dist/services/prusa-link/utils/digest-auth.util.js +28 -0
- package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -0
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +131 -0
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -0
- package/dist/services/socket.factory.js +9 -6
- package/dist/services/socket.factory.js.map +1 -1
- package/dist/services/{core/task-manager.service.js → task-manager.service.js} +72 -78
- package/dist/services/task-manager.service.js.map +1 -0
- package/dist/services/validators/camera-service.validation.js +19 -0
- package/dist/services/validators/camera-service.validation.js.map +1 -0
- package/dist/services/validators/floor-service.validation.js +47 -36
- package/dist/services/validators/floor-service.validation.js.map +1 -1
- package/dist/services/validators/print-completion-service.validation.js +22 -9
- package/dist/services/validators/print-completion-service.validation.js.map +1 -1
- package/dist/services/validators/printer-service.validation.js +112 -29
- package/dist/services/validators/printer-service.validation.js.map +1 -1
- package/dist/services/validators/settings-service.validation.js +79 -66
- package/dist/services/validators/settings-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +17 -16
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +94 -51
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/dist/shared/default-http-client.builder.js.map +1 -1
- package/dist/shared/load-controllers.js +20 -0
- package/dist/shared/load-controllers.js.map +1 -0
- package/dist/shared/runtime-settings.migration.js +53 -0
- package/dist/shared/runtime-settings.migration.js.map +1 -0
- package/dist/shared/websocket-rpc-extended.adapter.js +15 -14
- package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
- package/dist/shared/websocket.adapter.js +4 -5
- package/dist/shared/websocket.adapter.js.map +1 -1
- package/dist/state/file-upload-tracker.cache.js +5 -4
- package/dist/state/file-upload-tracker.cache.js.map +1 -1
- package/dist/state/file.cache.js +1 -1
- package/dist/state/file.cache.js.map +1 -1
- package/dist/state/floor.store.js +6 -6
- package/dist/state/floor.store.js.map +1 -1
- package/dist/state/printer-events.cache.js +21 -22
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-files.store.js +6 -8
- package/dist/state/printer-files.store.js.map +1 -1
- package/dist/state/printer-socket.store.js +27 -50
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer-thumbnail.cache.js +5 -9
- package/dist/state/printer-thumbnail.cache.js.map +1 -1
- package/dist/state/printer.cache.js +14 -12
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +74 -50
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/socket-io.gateway.js +39 -36
- package/dist/state/socket-io.gateway.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +20 -15
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/dist/state/validation/create-test-printer.validation.js +13 -11
- package/dist/state/validation/create-test-printer.validation.js.map +1 -1
- package/dist/task.presets.js.map +1 -1
- package/dist/tasks/boot.task.js +14 -19
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/client-bundle.task.js +1 -3
- package/dist/tasks/client-bundle.task.js.map +1 -1
- package/dist/tasks/print-completion.socketio.task.js +27 -28
- package/dist/tasks/print-completion.socketio.task.js.map +1 -1
- package/dist/tasks/printer-file-clean.task.js +6 -10
- package/dist/tasks/printer-file-clean.task.js.map +1 -1
- package/dist/tasks/printer-websocket-restore.task.js +3 -14
- package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
- package/dist/tasks/printer-websocket.task.js +2 -14
- package/dist/tasks/printer-websocket.task.js.map +1 -1
- package/dist/tasks/socketio.task.js +6 -33
- package/dist/tasks/socketio.task.js.map +1 -1
- package/dist/tasks/software-update.task.js +1 -1
- package/dist/tasks/software-update.task.js.map +1 -1
- package/dist/tasks.js +3 -3
- package/dist/tasks.js.map +1 -1
- package/dist/utils/array.util.js.map +1 -1
- package/dist/utils/cache/key-diff.cache.js.map +1 -1
- package/dist/utils/env.utils.js +0 -2
- package/dist/utils/env.utils.js.map +1 -1
- package/dist/utils/normalize-url.js +3 -2
- package/dist/utils/normalize-url.js.map +1 -1
- package/dist/utils/printer-type.utils.js.map +1 -1
- package/dist/utils/time.utils.js +7 -17
- package/dist/utils/time.utils.js.map +1 -1
- package/dist/utils/url.utils.js +3 -4
- package/dist/utils/url.utils.js.map +1 -1
- package/package.json +46 -48
- package/tsconfig.json +2 -1
- package/.yarn/releases/yarn-4.7.0.cjs +0 -935
- package/dist/consoles/check-ports.js +0 -170
- package/dist/consoles/check-ports.js.map +0 -1
- package/dist/consoles/http-file-receiver.console.js +0 -81
- package/dist/consoles/http-file-receiver.console.js.map +0 -1
- package/dist/consoles/sqlite-torm.js +0 -31
- package/dist/consoles/sqlite-torm.js.map +0 -1
- package/dist/consoles/upload-test.js +0 -52
- package/dist/consoles/upload-test.js.map +0 -1
- package/dist/controllers/plugin-firmware-update.controller.js +0 -234
- package/dist/controllers/plugin-firmware-update.controller.js.map +0 -1
- package/dist/entities/base.entity.js +0 -29
- package/dist/entities/base.entity.js.map +0 -1
- package/dist/entities/printer-file.entity.js +0 -140
- package/dist/entities/printer-file.entity.js.map +0 -1
- package/dist/handlers/cache-manager.js +0 -18
- package/dist/handlers/cache-manager.js.map +0 -1
- package/dist/models/PrinterFile.js +0 -44
- package/dist/models/PrinterFile.js.map +0 -1
- package/dist/services/core/task-manager.service.js.map +0 -1
- package/dist/services/octoprint/dto/plugin.dto.js.map +0 -1
- package/dist/services/octoprint/plugin-base.service.js +0 -101
- package/dist/services/octoprint/plugin-base.service.js.map +0 -1
- package/dist/services/octoprint/plugin-firmware-update.service.js +0 -100
- package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -1
- package/dist/services/octoprint/plugin-repository.cache.js +0 -46
- package/dist/services/octoprint/plugin-repository.cache.js.map +0 -1
- package/dist/utils/benchmark.util.js +0 -39
- package/dist/utils/benchmark.util.js.map +0 -1
- package/dist/utils/is-docker.js +0 -40
- package/dist/utils/is-docker.js.map +0 -1
- package/dist/utils/metric.utils.js +0 -35
- package/dist/utils/metric.utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20211029110742-user-password-passwordhash.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","password","endSession","down","passwordHash"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20211029110742-user-password-passwordhash.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","password","endSession","down","passwordHash"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEC,UAAU;oBAAe;gBAAE;YAC5E;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEI,cAAc;oBAAW;gBAAE;YAC5E;QACF,SAAU;YACR,MAAMV,QAAQQ,UAAU;QAC1B;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20230414141005-floor-remove-groupinfloor.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collections","listCollections","toArray","find","c","name","collection","update","$unset","printerGroups","multi","$set","printers","rename","endSession","down","Error"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20230414141005-floor-remove-groupinfloor.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collections","listCollections","toArray","find","c","name","collection","update","$unset","printerGroups","multi","$set","printers","rename","endSession","down","Error"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,cAAc,MAAMJ,OAAOD,EAAE,GAAGM,eAAe,GAAGC,OAAO;gBAE/D,IAAIF,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,kBAAkB;oBACvD,MAAMV,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;wBAAEC,QAAQ;4BAAEC,eAAe;wBAAE;oBAAE,GAAG;wBAAEC,OAAO;oBAAK;oBAChG,MAAMf,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;wBAAEI,MAAM;4BAAEC,UAAU,EAAE;wBAAC;oBAAE,GAAG;wBAAEF,OAAO;oBAAK;oBAC1F,MAAMf,GAAGW,UAAU,CAAC,iBAAiBO,MAAM,CAAC;gBAC9C;YACF;QACF,SAAU;YACR,MAAMhB,QAAQiB,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKpB,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAME,cAAc,MAAMJ,OAAOD,EAAE,GAAGM,eAAe,GAAGC,OAAO;YAE/D,IAAIF,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,WAAW;gBAChD,MAAMV,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;oBAAEI,MAAM;wBAAEF,eAAe,EAAE;oBAAC;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;gBAC/F,MAAMf,GAAGW,UAAU,CAAC,iBAAiBC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEI,UAAU;oBAAE;gBAAE,GAAG;oBAAEF,OAAO;gBAAK;gBAC3F,MAAMf,GAAGW,UAAU,CAAC,UAAUO,MAAM,CAAC;YACvC;YAGA,IAAI,CAACb,YAAYG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,kBAAkB;gBACxD,MAAM,IAAIW,MAAM;YAClB;QACF,SAAU;YACR,MAAMnB,QAAQiB,UAAU;QAC1B;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20230427202911-printer-remove-sortindex.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","sortIndex","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20230427202911-printer-remove-sortindex.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","sortIndex","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMJ,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,WAAW;oBAAE;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;YACzF;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMD,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;YAAEM,MAAM;gBAAEJ,WAAW;YAAE;QAAE,GAAG;YAAEC,OAAO;QAAK;IACvF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20230716065316-user-remove-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","name","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20230716065316-user-remove-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","collection","update","$unset","name","multi","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMJ,GAAGK,UAAU,CAAC,SAASC,MAAM,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,MAAM;oBAAE;gBAAE,GAAG;oBAAEC,OAAO;gBAAK;YACjF;QACF,SAAU;YACR,MAAMP,QAAQQ,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKX,EAAE,EAAEC,MAAM;QACnB,MAAMD,GAAGK,UAAU,CAAC,YAAYC,MAAM,CAAC,CAAC,GAAG;YAAEM,MAAM;gBAAEJ,MAAM;YAAU;QAAE,GAAG;YAAEC,OAAO;QAAK;IAC1F;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20231111081809-printer-flatten-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","endSession","down","name"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20231111081809-printer-flatten-name.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$rename","endSession","down","name"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAE,2BAA2B;oBAAO;gBAAE;YACrF;QACF,SAAU;YACR,MAAMN,QAAQO,UAAU;QAC1B;IAIF;IAGA,MAAMC,MAAKV,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,SAAS;wBAAEG,MAAM;oBAA0B;gBAAE;YACnF;QACF,SAAU;YACR,MAAMT,QAAQO,UAAU;QAC1B;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20231111082521-printer-remove-settingsappearance.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$unset","settingsAppearance","e","console","log","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20231111082521-printer-remove-settingsappearance.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$unset","settingsAppearance","e","console","log","endSession","down","$set"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,QAAQ;wBAAEC,oBAAoB;oBAAE;gBAAE;YACxE;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,gCAAgCF;YAC5C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IAIF;IAGA,MAAMC,MAAKd,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEQ,MAAM;wBAAEN,oBAAoB,CAAC;oBAAE;gBAAE;YACvE;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,kCAAkCF;YAC9C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mongo-migrations/20231202183902-printer-files-simpler.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$set","fileList","e","console","log","endSession","down"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/mongo-migrations/20231202183902-printer-files-simpler.ts"],"names":["module","exports","up","db","client","session","startSession","withTransaction","dbCollection","collection","updateMany","$set","fileList","e","console","log","endSession","down"],"mappings":";AAAAA,OAAOC,OAAO,GAAG;IAEf,MAAMC,IAAGC,EAAE,EAAEC,MAAM;QACjB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YACF,MAAMD,QAAQE,eAAe,CAAC;gBAC5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,MAAM;wBAAEC,UAAU,EAAE;oBAAC;gBAAE;YAC7D;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,gCAAgCF;YAC5C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;IAGA,MAAMC,MAAKd,EAAE,EAAEC,MAAM;QACnB,MAAMC,UAAUD,OAAOE,YAAY;QACnC,IAAI;YAEF,MAAMD,QAAQE,eAAe,CAAC;gBAE5B,MAAMC,eAAeL,GAAGM,UAAU,CAAC;gBACnC,MAAMD,aAAaE,UAAU,CAAC,CAAC,GAAG;oBAAEC,MAAM;wBAAEC,UAAU,CAAC;oBAAE;gBAAE;YAC7D;QACF,EAAE,OAAOC,GAAG;YACVC,QAAQC,GAAG,CAAC,kCAAkCF;YAC9C,MAAMA;QACR,SAAU;YACR,MAAMR,QAAQW,UAAU;QAC1B;IACF;AACF"}
|
package/dist/server.constants.js
CHANGED
|
@@ -53,6 +53,7 @@ const AppConstants = {
|
|
|
53
53
|
OVERRIDE_DEMO_ROLE: "OVERRIDE_DEMO_ROLE",
|
|
54
54
|
DEFAULT_DEMO_ROLE: "ADMIN",
|
|
55
55
|
defaultDevelopmentEnv: "development",
|
|
56
|
+
ENABLE_COLORED_LOGS_KEY: "ENABLE_COLORED_LOGS",
|
|
56
57
|
defaultTestEnv: "test",
|
|
57
58
|
defaultProductionEnv: "production",
|
|
58
59
|
knownEnvNames: [
|
|
@@ -70,7 +71,7 @@ const AppConstants = {
|
|
|
70
71
|
githubUrl: "https://github.com/fdm-monster/fdm-monster",
|
|
71
72
|
orgName: "fdm-monster",
|
|
72
73
|
currentWizardVersion: 1,
|
|
73
|
-
defaultClientMinimum: "1.
|
|
74
|
+
defaultClientMinimum: "1.11.1",
|
|
74
75
|
influxUrl: "INFLUX_URL",
|
|
75
76
|
influxToken: "INFLUX_TOKEN",
|
|
76
77
|
influxOrg: "INFLUX_ORG",
|
|
@@ -79,8 +80,6 @@ const AppConstants = {
|
|
|
79
80
|
defaultSocketThrottleRate: 1,
|
|
80
81
|
debugSocketStatesKey: "DEBUG_SOCKET_STATES",
|
|
81
82
|
defaultDebugSocketStates: "false",
|
|
82
|
-
debugFileWritePrinterStatesKey: "DEBUG_FILE_WRITE_PRINTER_STATES",
|
|
83
|
-
defaultDebugFileWritePrinterStates: "false",
|
|
84
83
|
enableMqttAutoDiscoveryToken: "ENABLE_MQTT_AUTODISCOVERY",
|
|
85
84
|
enableMqttAutoDiscoveryDefault: "false",
|
|
86
85
|
mqttUrlToken: "MQTT_HOST",
|
|
@@ -93,7 +92,12 @@ const AppConstants = {
|
|
|
93
92
|
sentryCustomDsnDefault: "https://164b8028a8a745bba3dbcab991b84ae7@o4503975545733120.ingest.sentry.io/4505101598261248",
|
|
94
93
|
debugRoutesKey: "DEBUG_ROUTES",
|
|
95
94
|
ENABLE_EXPERIMENTAL_TYPEORM: "ENABLE_EXPERIMENTAL_TYPEORM",
|
|
96
|
-
enableExperimentalTypeormDefault: "false"
|
|
95
|
+
enableExperimentalTypeormDefault: "false",
|
|
96
|
+
ENABLE_PROMETHEUS_METRICS: "ENABLE_PROMETHEUS_METRICS",
|
|
97
|
+
ENABLE_LOKI_LOGGING: "ENABLE_LOKI_LOGGING",
|
|
98
|
+
LOKI_ADDRESS: "LOKI_ADDRESS",
|
|
99
|
+
LOKI_TIMEOUT_SECONDS: "LOKI_TIMEOUT_SECONDS",
|
|
100
|
+
LOKI_INTERVAL: "LOKI_INTERVAL"
|
|
97
101
|
};
|
|
98
102
|
|
|
99
103
|
//# sourceMappingURL=server.constants.js.map
|
|
@@ -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","ENABLE_COLORED_LOGS_KEY","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,yBAAyB;IACzBC,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;
|
|
@@ -37,12 +37,12 @@ _export(exports, {
|
|
|
37
37
|
const _migratemongo = require("migrate-mongo");
|
|
38
38
|
const _path = require("path");
|
|
39
39
|
const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
|
|
40
|
-
const _dotenv = require("dotenv");
|
|
41
40
|
const _serverconstants = require("./server.constants");
|
|
42
41
|
const _logger = require("./handlers/logger");
|
|
43
42
|
const _envutils = require("./utils/env.utils");
|
|
44
43
|
const _errorutils = require("./utils/error.utils");
|
|
45
44
|
const _fsutils = require("./utils/fs.utils");
|
|
45
|
+
const _promclient = require("prom-client");
|
|
46
46
|
function _getRequireWildcardCache(nodeInterop) {
|
|
47
47
|
if (typeof WeakMap !== "function") return null;
|
|
48
48
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -84,10 +84,8 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
84
84
|
}
|
|
85
85
|
return newObj;
|
|
86
86
|
}
|
|
87
|
-
const logger = new _logger.LoggerService("FDM-Environment", false);
|
|
88
87
|
const instructionsReferralURL = "https://docs.fdm-monster.net";
|
|
89
88
|
const packageJsonPath = (0, _path.join)((0, _fsutils.superRootPath)(), "./package.json");
|
|
90
|
-
const dotEnvPath = (0, _path.join)((0, _fsutils.superRootPath)(), "./.env");
|
|
91
89
|
function isEnvTest() {
|
|
92
90
|
return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultTestEnv;
|
|
93
91
|
}
|
|
@@ -95,6 +93,7 @@ function isEnvProd() {
|
|
|
95
93
|
return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultProductionEnv;
|
|
96
94
|
}
|
|
97
95
|
function ensureNodeEnvSet() {
|
|
96
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
98
97
|
const environment = process.env[_serverconstants.AppConstants.NODE_ENV_KEY];
|
|
99
98
|
if (!environment || !_serverconstants.AppConstants.knownEnvNames.includes(environment)) {
|
|
100
99
|
const newEnvName = _serverconstants.AppConstants.defaultProductionEnv;
|
|
@@ -105,16 +104,17 @@ function ensureNodeEnvSet() {
|
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
function ensurePackageVersionSet() {
|
|
107
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
108
108
|
const packageJsonVersion = require(packageJsonPath).version;
|
|
109
|
-
|
|
110
|
-
process.env[_serverconstants.AppConstants.VERSION_KEY] = packageJsonVersion;
|
|
111
|
-
}
|
|
109
|
+
process.env[_serverconstants.AppConstants.VERSION_KEY] ??= packageJsonVersion;
|
|
112
110
|
logger.log(`✓ Running server version ${process.env[_serverconstants.AppConstants.VERSION_KEY]}`);
|
|
113
111
|
}
|
|
114
112
|
function printInstructionsURL() {
|
|
113
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
115
114
|
logger.log(`Please make sure to read ${instructionsReferralURL} for more information.`);
|
|
116
115
|
}
|
|
117
116
|
function fetchMongoDBConnectionString() {
|
|
117
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
118
118
|
if (!process.env[_serverconstants.AppConstants.MONGO_KEY]) {
|
|
119
119
|
logger.debug(`~ ${_serverconstants.AppConstants.MONGO_KEY} environment variable is not set. Assuming default`);
|
|
120
120
|
printInstructionsURL();
|
|
@@ -130,8 +130,9 @@ function fetchServerPort() {
|
|
|
130
130
|
}
|
|
131
131
|
return port;
|
|
132
132
|
}
|
|
133
|
-
function
|
|
134
|
-
|
|
133
|
+
function ensureMongoDbConnectionStringSet() {
|
|
134
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
135
|
+
const dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
|
|
135
136
|
if (!dbConnectionString) {
|
|
136
137
|
fetchMongoDBConnectionString();
|
|
137
138
|
} else {
|
|
@@ -139,6 +140,7 @@ function ensureMongoDBConnectionStringSet() {
|
|
|
139
140
|
}
|
|
140
141
|
}
|
|
141
142
|
function setupSentry() {
|
|
143
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
142
144
|
const sentryDsnToken = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.sentryCustomDsnToken, _serverconstants.AppConstants.sentryCustomDsnDefault);
|
|
143
145
|
_node.init({
|
|
144
146
|
dsn: sentryDsnToken,
|
|
@@ -154,6 +156,7 @@ function setupSentry() {
|
|
|
154
156
|
});
|
|
155
157
|
}
|
|
156
158
|
function ensurePortSet() {
|
|
159
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
157
160
|
fetchServerPort();
|
|
158
161
|
if (!process.env[_serverconstants.AppConstants.SERVER_PORT_KEY]) {
|
|
159
162
|
logger.log(`~ ${_serverconstants.AppConstants.SERVER_PORT_KEY} environment variable is not set`);
|
|
@@ -161,20 +164,21 @@ function ensurePortSet() {
|
|
|
161
164
|
process.env[_serverconstants.AppConstants.SERVER_PORT_KEY] = _serverconstants.AppConstants.defaultServerPort.toString();
|
|
162
165
|
}
|
|
163
166
|
}
|
|
164
|
-
function setupEnvConfig(
|
|
165
|
-
if (!skipDotEnv) {
|
|
166
|
-
(0, _dotenv.config)({
|
|
167
|
-
path: dotEnvPath
|
|
168
|
-
});
|
|
169
|
-
logger.log("✓ Parsed environment and (optional) .env file");
|
|
170
|
-
}
|
|
167
|
+
function setupEnvConfig() {
|
|
171
168
|
ensureNodeEnvSet();
|
|
172
169
|
ensurePackageVersionSet();
|
|
173
170
|
setupSentry();
|
|
174
|
-
|
|
171
|
+
ensureMongoDbConnectionStringSet();
|
|
175
172
|
ensurePortSet();
|
|
173
|
+
if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
|
|
174
|
+
(0, _promclient.collectDefaultMetrics)({
|
|
175
|
+
register: _promclient.register
|
|
176
|
+
});
|
|
177
|
+
_promclient.register.removeSingleMetric("nodejs_version_info");
|
|
178
|
+
}
|
|
176
179
|
}
|
|
177
180
|
async function runMigrations(db, client) {
|
|
181
|
+
const logger = new _logger.LoggerService("FDM-Environment");
|
|
178
182
|
const migrationsStatus = await (0, _migratemongo.status)(db);
|
|
179
183
|
const pendingMigrations = migrationsStatus.filter((m)=>m.appliedAt === "PENDING");
|
|
180
184
|
if (pendingMigrations.length) {
|
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","instructionsReferralURL","packageJsonPath","join","superRootPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","logger","Logger","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","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,19 +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: [
|
|
76
|
-
"**/*.map"
|
|
77
|
-
]
|
|
78
|
-
})).use(_exceptionfilter.exceptionFilter);
|
|
68
|
+
}).use((0, _loadcontrollers.loadControllersFunc)());
|
|
79
69
|
const nextClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientNextPackageName, "dist");
|
|
80
70
|
const bundleDistPath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
|
|
81
71
|
const backupClientPath = (0, _path.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
|
|
@@ -88,10 +78,10 @@ class ServerHost {
|
|
|
88
78
|
});
|
|
89
79
|
app.use(_express.default.static(bundleDistPath));
|
|
90
80
|
app.use(_express.default.static(backupClientPath));
|
|
91
|
-
app.get("*", (req,
|
|
81
|
+
app.get("*", (req, _)=>{
|
|
92
82
|
const path = req.originalUrl;
|
|
93
83
|
let resource = "MVC";
|
|
94
|
-
if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/
|
|
84
|
+
if (path.startsWith("/socket.io") || path.startsWith("/api") || path.startsWith("/metrics")) {
|
|
95
85
|
resource = "API";
|
|
96
86
|
} else if (path.endsWith(".min.js")) {
|
|
97
87
|
resource = "client-bundle";
|
|
@@ -100,17 +90,14 @@ class ServerHost {
|
|
|
100
90
|
if (!path.startsWith("/socket.io")) {
|
|
101
91
|
throw new _runtimeexceptions.NotFoundException(`${resource} resource was not found`, path);
|
|
102
92
|
}
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
isClientNextEnabled() {
|
|
106
|
-
const settings = this.settingsStore.getServerSettings();
|
|
107
|
-
return settings.experimentalClientSupport;
|
|
93
|
+
});
|
|
94
|
+
app.use(_exceptionfilter.exceptionFilter);
|
|
108
95
|
}
|
|
109
|
-
async httpListen() {
|
|
96
|
+
async httpListen(app) {
|
|
110
97
|
const port = (0, _serverenv.fetchServerPort)();
|
|
111
98
|
if (!(0, _envutils.isProductionEnvironment)() && this.configService.get(_serverconstants.AppConstants.debugRoutesKey, "false") === "true") {
|
|
112
99
|
const expressListRoutes = require("express-list-routes");
|
|
113
|
-
expressListRoutes(
|
|
100
|
+
expressListRoutes(app, {
|
|
114
101
|
prefix: "/"
|
|
115
102
|
});
|
|
116
103
|
}
|
|
@@ -118,11 +105,15 @@ class ServerHost {
|
|
|
118
105
|
throw new Error("The FDM Server requires a numeric port input argument to run");
|
|
119
106
|
}
|
|
120
107
|
const hostOrFqdn = "0.0.0.0";
|
|
121
|
-
const server =
|
|
108
|
+
const server = app.listen(parseInt(port), hostOrFqdn, ()=>{
|
|
122
109
|
this.logger.log(`Server started... open it at http://127.0.0.1:${port}`);
|
|
123
110
|
});
|
|
124
111
|
this.socketIoGateway.attachServer(server);
|
|
125
112
|
}
|
|
113
|
+
isClientNextEnabled() {
|
|
114
|
+
const settings = this.settingsStore.getServerSettings();
|
|
115
|
+
return settings.experimentalClientSupport;
|
|
116
|
+
}
|
|
126
117
|
}
|
|
127
118
|
|
|
128
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
|
}
|