UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.

197 lines (196 loc) 14.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { config: function() { return config; }, configureContainer: function() { return configureContainer; } }); const _octokit = require("octokit"); const _awilix = require("awilix"); const _toadscheduler = require("toad-scheduler"); const _containertokens = require("./container.tokens"); const _printerservice = require("./services/mongoose/printer.service"); const _printerservice1 = require("./services/orm/printer.service"); const _settingsstore = require("./state/settings.store"); const _settingsservice = require("./services/mongoose/settings.service"); const _serverreleaseservice = require("./services/core/server-release.service"); const _taskmanagerservice = require("./services/task-manager.service"); const _githubservice = require("./services/core/github.service"); const _filecache = require("./state/file.cache"); const _printerwebsockettask = require("./tasks/printer-websocket.task"); const _socketiotask = require("./tasks/socketio.task"); const _socketfactory = require("./services/socket.factory"); const _printerfilesstore = require("./state/printer-files.store"); const _eventemitter = require("./handlers/event-emitter"); const _serverconstants = require("./server.constants"); const _softwareupdatetask = require("./tasks/software-update.task"); const _loggerfactory = require("./handlers/logger-factory"); const _multerservice = require("./services/core/multer.service"); const _fileuploadtrackercache = require("./state/file-upload-tracker.cache"); const _serverhost = require("./server.host"); const _boottask = require("./tasks/boot.task"); const _userservice = require("./services/mongoose/user.service"); const _userservice1 = require("./services/orm/user.service"); const _roleservice = require("./services/mongoose/role.service"); const _roleservice1 = require("./services/orm/role.service"); const _permissionservice = require("./services/mongoose/permission.service"); const _permissionservice1 = require("./services/orm/permission.service"); const _printerfilecleantask = require("./tasks/printer-file-clean.task"); const _authorizationconstants = require("./constants/authorization.constants"); const _customgcodeservice = require("./services/mongoose/custom-gcode.service"); const _customgcodeservice1 = require("./services/orm/custom-gcode.service"); const _printerwebsocketrestoretask = require("./tasks/printer-websocket-restore.task"); const _configservice = require("./services/core/config.service"); const _printcompletionsocketiotask = require("./tasks/print-completion.socketio.task"); const _printcompletionservice = require("./services/mongoose/print-completion.service"); const _printcompletionservice1 = require("./services/orm/print-completion.service"); const _socketiogateway = require("./state/socket-io.gateway"); const _clientbundleservice = require("./services/core/client-bundle.service"); const _floorservice = require("./services/mongoose/floor.service"); const _floorstore = require("./state/floor.store"); const _yamlservice = require("./services/core/yaml.service"); const _monsterpiservice = require("./services/core/monsterpi.service"); const _batchcallservice = require("./services/core/batch-call.service"); const _clientbundletask = require("./tasks/client-bundle.task"); const _octoprintwebsocketadapter = require("./services/octoprint/octoprint-websocket.adapter"); const _printercache = require("./state/printer.cache"); const _printersocketstore = require("./state/printer-socket.store"); const _testprintersocketstore = require("./state/test-printer-socket.store"); const _printereventscache = require("./state/printer-events.cache"); const _logsmanagerservice = require("./services/core/logs-manager.service"); const _camerastreamservice = require("./services/mongoose/camera-stream.service"); const _camerastreamservice1 = require("./services/orm/camera-stream.service"); const _jwtservice = require("./services/authentication/jwt.service"); const _authservice = require("./services/authentication/auth.service"); const _refreshtokenservice = require("./services/mongoose/refresh-token.service"); const _pluginthrottling = require("@octokit/plugin-throttling"); const _refreshtokenservice1 = require("./services/orm/refresh-token.service"); const _settingsservice1 = require("./services/orm/settings.service"); const _floorservice1 = require("./services/orm/floor.service"); const _floorpositionservice = require("./services/orm/floor-position.service"); const _typeormservice = require("./services/typeorm/typeorm.service"); const _userroleservice = require("./services/orm/user-role.service"); const _printergroupservice = require("./services/orm/printer-group.service"); const _moonrakerclient = require("./services/moonraker/moonraker.client"); const _moonrakerwebsocketadapter = require("./services/moonraker/moonraker-websocket.adapter"); const _octoprintapi = require("./services/octoprint.api"); const _octoprintclient = require("./services/octoprint/octoprint.client"); const _moonrakerapi = require("./services/moonraker.api"); const _printerapifactory = require("./services/printer-api.factory"); const _printerthumbnailcache = require("./state/printer-thumbnail.cache"); const _httpclientfactory = require("./services/core/http-client.factory"); const _cradleservice = require("./services/core/cradle.service"); const _prusalinkapi = require("./services/prusa-link/prusa-link.api"); const _prusalinkhttppollingadapter = require("./services/prusa-link/prusa-link-http-polling.adapter"); function config(key, experimentalMode, serviceTypeorm, serviceMongoose) { return { [key]: experimentalMode ? serviceTypeorm : serviceMongoose }; } function configureContainer(isSqlite = false) { const container = (0, _awilix.createContainer)({ injectionMode: _awilix.InjectionMode.CLASSIC }); const di = _containertokens.DITokens; container.register({ [di.isTypeormMode]: (0, _awilix.asValue)(isSqlite), [di.appDefaultRole]: (0, _awilix.asValue)(_authorizationconstants.ROLES.GUEST), [di.appDefaultRoleNoLogin]: (0, _awilix.asValue)(_authorizationconstants.ROLES.ADMIN), [di.serverVersion]: (0, _awilix.asFunction)(()=>{ return process.env[_serverconstants.AppConstants.VERSION_KEY]; }), [di.cradleService]: (0, _awilix.asClass)(_cradleservice.CradleService).inject((container)=>({ container })), [di.socketFactory]: (0, _awilix.asClass)(_socketfactory.SocketFactory).transient(), ...config(di.typeormService, isSqlite, (0, _awilix.asClass)(_typeormservice.TypeormService).singleton(), (0, _awilix.asValue)(null)), ...config(di.settingsService, isSqlite, (0, _awilix.asClass)(_settingsservice1.SettingsService), (0, _awilix.asClass)(_settingsservice.SettingsService)), ...config(di.floorService, isSqlite, (0, _awilix.asClass)(_floorservice1.FloorService).singleton(), (0, _awilix.asClass)(_floorservice.FloorService).singleton()), ...config(di.floorPositionService, isSqlite, (0, _awilix.asClass)(_floorpositionservice.FloorPositionService).singleton(), (0, _awilix.asValue)(null)), ...config(di.cameraStreamService, isSqlite, (0, _awilix.asClass)(_camerastreamservice1.CameraStreamService).singleton(), (0, _awilix.asClass)(_camerastreamservice.CameraStreamService).singleton()), ...config(di.printerService, isSqlite, (0, _awilix.asClass)(_printerservice1.PrinterService), (0, _awilix.asClass)(_printerservice.PrinterService)), ...config(di.printerGroupService, isSqlite, (0, _awilix.asClass)(_printergroupservice.PrinterGroupService), (0, _awilix.asValue)(null)), ...config(di.refreshTokenService, isSqlite, (0, _awilix.asClass)(_refreshtokenservice1.RefreshTokenService).singleton(), (0, _awilix.asClass)(_refreshtokenservice.RefreshTokenService).singleton()), ...config(di.userService, isSqlite, (0, _awilix.asClass)(_userservice1.UserService).singleton(), (0, _awilix.asClass)(_userservice.UserService).singleton()), ...config(di.userRoleService, isSqlite, (0, _awilix.asClass)(_userroleservice.UserRoleService).singleton(), (0, _awilix.asValue)(null)), ...config(di.roleService, isSqlite, (0, _awilix.asClass)(_roleservice1.RoleService).singleton(), (0, _awilix.asClass)(_roleservice.RoleService).singleton()), ...config(di.permissionService, isSqlite, (0, _awilix.asClass)(_permissionservice1.PermissionService).singleton(), (0, _awilix.asClass)(_permissionservice.PermissionService).singleton()), ...config(di.customGCodeService, isSqlite, (0, _awilix.asClass)(_customgcodeservice1.CustomGcodeService).singleton(), (0, _awilix.asClass)(_customgcodeservice.CustomGcodeService).singleton()), ...config(di.printCompletionService, isSqlite, (0, _awilix.asClass)(_printcompletionservice1.PrintCompletionService).singleton(), (0, _awilix.asClass)(_printcompletionservice.PrintCompletionService).singleton()), [di.serverHost]: (0, _awilix.asClass)(_serverhost.ServerHost).singleton(), [di.settingsStore]: (0, _awilix.asClass)(_settingsstore.SettingsStore).singleton(), [di.configService]: (0, _awilix.asClass)(_configservice.ConfigService), [di.authService]: (0, _awilix.asClass)(_authservice.AuthService).singleton(), [di.jwtService]: (0, _awilix.asClass)(_jwtservice.JwtService).singleton(), [di.loggerFactory]: (0, _awilix.asFunction)(_loggerfactory.LoggerFactory).transient(), [di.taskManagerService]: (0, _awilix.asClass)(_taskmanagerservice.TaskManagerService).singleton(), [di.toadScheduler]: (0, _awilix.asClass)(_toadscheduler.ToadScheduler).singleton(), [di.eventEmitter2]: (0, _awilix.asFunction)(_eventemitter.configureEventEmitter).singleton(), [di.serverReleaseService]: (0, _awilix.asClass)(_serverreleaseservice.ServerReleaseService).singleton(), [di.monsterPiService]: (0, _awilix.asClass)(_monsterpiservice.MonsterPiService).singleton(), [di.githubService]: (0, _awilix.asClass)(_githubservice.GithubService), [di.octokitService]: (0, _awilix.asFunction)((configService)=>{ const CustomOctoKit = _octokit.Octokit.plugin(_pluginthrottling.throttling); return new CustomOctoKit({ auth: configService.get(_serverconstants.AppConstants.GITHUB_PAT), throttle: { onRateLimit: (retryAfter, options, octokit, retryCount)=>{ const logger = (0, _loggerfactory.LoggerFactory)()("OctoKitThrottle"); logger.warn(`Request quota exhausted for request ${options.method} ${options.url}`); }, onSecondaryRateLimit: (retryAfter, options, octokit)=>{ const logger = (0, _loggerfactory.LoggerFactory)()("OctoKitThrottle"); logger.warn(`SecondaryRateLimit detected for request ${options.method} ${options.url}`); } } }); }), [di.clientBundleService]: (0, _awilix.asClass)(_clientbundleservice.ClientBundleService), [di.logDumpService]: (0, _awilix.asClass)(_logsmanagerservice.LogDumpService), [di.httpClientFactory]: (0, _awilix.asClass)(_httpclientfactory.HttpClientFactory), [di.socketIoGateway]: (0, _awilix.asClass)(_socketiogateway.SocketIoGateway).singleton(), [di.multerService]: (0, _awilix.asClass)(_multerservice.MulterService).singleton(), [di.yamlService]: (0, _awilix.asClass)(_yamlservice.YamlService), [di.printerLogin]: (0, _awilix.asValue)(null), [di.printerApiFactory]: (0, _awilix.asClass)(_printerapifactory.PrinterApiFactory).transient(), [di.prusaLinkApi]: (0, _awilix.asClass)(_prusalinkapi.PrusaLinkApi).transient(), [di.prusaLinkPollingAdapter]: (0, _awilix.asClass)(_prusalinkhttppollingadapter.PrusaLinkHttpPollingAdapter).transient(), [di.octoprintApi]: (0, _awilix.asClass)(_octoprintapi.OctoprintApi).transient(), [di.octoprintClient]: (0, _awilix.asClass)(_octoprintclient.OctoprintClient).singleton(), [di.octoPrintSockIoAdapter]: (0, _awilix.asClass)(_octoprintwebsocketadapter.OctoprintWebsocketAdapter).transient(), [di.moonrakerApi]: (0, _awilix.asClass)(_moonrakerapi.MoonrakerApi).transient(), [di.moonrakerClient]: (0, _awilix.asClass)(_moonrakerclient.MoonrakerClient).singleton(), [di.moonrakerWebsocketAdapter]: (0, _awilix.asClass)(_moonrakerwebsocketadapter.MoonrakerWebsocketAdapter).transient(), [di.batchCallService]: (0, _awilix.asClass)(_batchcallservice.BatchCallService).singleton(), [di.floorStore]: (0, _awilix.asClass)(_floorstore.FloorStore).singleton(), [di.printerThumbnailCache]: (0, _awilix.asClass)(_printerthumbnailcache.PrinterThumbnailCache).singleton(), [di.fileCache]: (0, _awilix.asClass)(_filecache.FileCache).singleton(), [di.fileUploadTrackerCache]: (0, _awilix.asClass)(_fileuploadtrackercache.FileUploadTrackerCache).singleton(), [di.printerFilesStore]: (0, _awilix.asClass)(_printerfilesstore.PrinterFilesStore).singleton(), [di.printerCache]: (0, _awilix.asClass)(_printercache.PrinterCache).singleton(), [di.printerEventsCache]: (0, _awilix.asClass)(_printereventscache.PrinterEventsCache).singleton(), [di.printerSocketStore]: (0, _awilix.asClass)(_printersocketstore.PrinterSocketStore).singleton(), [di.testPrinterSocketStore]: (0, _awilix.asClass)(_testprintersocketstore.TestPrinterSocketStore).singleton(), [di.bootTask]: (0, _awilix.asClass)(_boottask.BootTask), [di.softwareUpdateTask]: (0, _awilix.asClass)(_softwareupdatetask.SoftwareUpdateTask), [di.socketIoTask]: (0, _awilix.asClass)(_socketiotask.SocketIoTask).singleton(), [di.clientDistDownloadTask]: (0, _awilix.asClass)(_clientbundletask.ClientDistDownloadTask).singleton(), [di.printCompletionSocketIoTask]: (0, _awilix.asClass)(_printcompletionsocketiotask.PrintCompletionSocketIoTask).singleton(), [di.printerWebsocketTask]: (0, _awilix.asClass)(_printerwebsockettask.PrinterWebsocketTask).singleton(), [di.printerWebsocketRestoreTask]: (0, _awilix.asClass)(_printerwebsocketrestoretask.PrinterWebsocketRestoreTask).singleton(), [di.printerFileCleanTask]: (0, _awilix.asClass)(_printerfilecleantask.PrinterFileCleanTask).singleton() }); return container; } //# sourceMappingURL=container.js.map