@fdm-monster/server 1.9.3 → 2.0.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 +0 -4
- package/.yarn/install-state.gz +0 -0
- package/CONTRIBUTING.md +4 -4
- package/README.md +4 -4
- package/RELEASE_NOTES.MD +24 -0
- package/biome.json +8 -5
- package/dist/consoles/mock-bambu.server.js +23 -54
- package/dist/consoles/mock-bambu.server.js.map +1 -1
- package/dist/consoles/mock-octoprint.server.js.map +1 -1
- package/dist/consoles/mock-prusalink.server.js +6 -6
- package/dist/consoles/mock-prusalink.server.js.map +1 -1
- package/dist/consoles/utils/api-messages.js.map +1 -1
- package/dist/constants/authorization.constants.js +32 -25
- package/dist/constants/authorization.constants.js.map +1 -1
- package/dist/constants/event.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +0 -1
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/container.js +30 -54
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +0 -1
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/auth.controller.js +1 -1
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +8 -11
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/custom-gcode.controller.js +2 -5
- package/dist/controllers/custom-gcode.controller.js.map +1 -1
- package/dist/controllers/first-time-setup.controller.js +4 -4
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/metrics.controller.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +16 -7
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +6 -7
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-public.controller.js +5 -13
- package/dist/controllers/server-public.controller.js.map +1 -1
- package/dist/controllers/user.controller.js +8 -12
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +13 -13
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/controllers/validation/generic.validation.js +4 -8
- package/dist/controllers/validation/generic.validation.js.map +1 -1
- package/dist/controllers/validation/printer-files-controller.validation.js +2 -2
- package/dist/controllers/validation/user-controller.validation.js +14 -9
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/data-source.js +6 -5
- package/dist/data-source.js.map +1 -1
- package/dist/entities/index.js +0 -4
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/print-completion.entity.js.map +1 -1
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/handlers/logging/file-logging.transport.js.map +1 -1
- package/dist/handlers/logging/static.logger.js.map +1 -1
- package/dist/middleware/authenticate.js +4 -4
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/database.js +1 -1
- package/dist/middleware/global.middleware.js +4 -12
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/param-converter.middleware.js +5 -13
- package/dist/middleware/param-converter.middleware.js.map +1 -1
- package/dist/middleware/passport.js +2 -2
- package/dist/middleware/passport.js.map +1 -1
- package/dist/middleware/printer-resolver.js.map +1 -1
- package/dist/middleware/printer.js +3 -2
- package/dist/middleware/printer.js.map +1 -1
- package/dist/middleware/socketio.middleware.js.map +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
- package/dist/migrations/1766576698569-DropPermissions.js +28 -0
- package/dist/migrations/1766576698569-DropPermissions.js.map +1 -0
- package/dist/server.constants.js +5 -9
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +3 -7
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +4 -49
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +3 -13
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/jwt.service.js.map +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js +46 -4
- package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
- package/dist/services/bambu/bambu-mqtt.adapter.js +35 -22
- package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
- package/dist/services/bambu/bambu.client.js.map +1 -1
- package/dist/services/bambu.api.js +32 -3
- package/dist/services/bambu.api.js.map +1 -1
- package/dist/services/core/batch-call.service.js.map +1 -1
- package/dist/services/core/multer.service.js +37 -71
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +20 -43
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/interfaces/camera-stream.dto.js +2 -2
- 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.map +1 -1
- package/dist/services/interfaces/print-completion.dto.js.map +1 -1
- package/dist/services/interfaces/printer-group.dto.js.map +1 -1
- package/dist/services/interfaces/printer.dto.js +2 -2
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
- package/dist/services/interfaces/role.dto.js.map +1 -1
- package/dist/services/interfaces/settings.dto.js.map +1 -1
- package/dist/services/interfaces/user.dto.js.map +1 -1
- package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +3 -0
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint.api.js +3 -0
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js.map +1 -1
- package/dist/services/orm/custom-gcode.service.js.map +1 -1
- package/dist/services/orm/floor-position.service.js.map +1 -1
- package/dist/services/orm/floor.service.js +4 -4
- package/dist/services/orm/floor.service.js.map +1 -1
- package/dist/services/orm/permission.service.js +3 -54
- package/dist/services/orm/permission.service.js.map +1 -1
- package/dist/services/orm/print-completion.service.js +2 -2
- package/dist/services/orm/print-completion.service.js.map +1 -1
- package/dist/services/orm/print-completion.shared.js.map +1 -0
- package/dist/services/orm/printer-group.service.js.map +1 -1
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/refresh-token.service.js.map +1 -1
- package/dist/services/orm/role.service.js +25 -39
- package/dist/services/orm/role.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +4 -7
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/orm/user.service.js +17 -13
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/printer-api.factory.js +1 -1
- package/dist/services/printer-api.factory.js.map +1 -1
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +28 -6
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
- package/dist/services/prusa-link/prusa-link.api.js +4 -1
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
- package/dist/services/validators/floor-service.validation.js +16 -22
- package/dist/services/validators/floor-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +15 -10
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +1 -1
- package/dist/shared/runtime-settings.migration.js.map +1 -1
- package/dist/shared/websocket-rpc-extended.adapter.js +13 -4
- package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
- package/dist/shared/websocket.adapter.js.map +1 -1
- package/dist/state/file-upload-tracker.cache.js.map +1 -1
- package/dist/state/file.cache.js +6 -6
- package/dist/state/file.cache.js.map +1 -1
- package/dist/state/floor.store.js +1 -1
- package/dist/state/floor.store.js.map +1 -1
- package/dist/state/printer-events.cache.js +1 -1
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-files.store.js.map +1 -1
- package/dist/state/printer-socket.store.js +25 -20
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer-thumbnail.cache.js +13 -18
- package/dist/state/printer-thumbnail.cache.js.map +1 -1
- package/dist/state/printer.cache.js +3 -13
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +2 -9
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +19 -4
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/dist/tasks/boot.task.js +5 -87
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/print-completion.socketio.task.js.map +1 -1
- package/dist/tasks/printer-file-clean.task.js.map +1 -1
- package/dist/utils/cache/key-diff.cache.js +20 -61
- package/dist/utils/cache/key-diff.cache.js.map +1 -1
- package/package.json +8 -19
- package/dist/entities/permission.entity.js +0 -37
- package/dist/entities/permission.entity.js.map +0 -1
- package/dist/models/Auth/Permission.js +0 -20
- package/dist/models/Auth/Permission.js.map +0 -1
- package/dist/models/Auth/RefreshToken.js +0 -41
- package/dist/models/Auth/RefreshToken.js.map +0 -1
- package/dist/models/Auth/Role.js +0 -20
- package/dist/models/Auth/Role.js.map +0 -1
- package/dist/models/Auth/User.js +0 -49
- package/dist/models/Auth/User.js.map +0 -1
- package/dist/models/CameraStream.js +0 -49
- package/dist/models/CameraStream.js.map +0 -1
- package/dist/models/CustomGcode.js +0 -28
- package/dist/models/CustomGcode.js.map +0 -1
- package/dist/models/Floor.js +0 -33
- package/dist/models/Floor.js.map +0 -1
- package/dist/models/FloorPrinter.js +0 -38
- package/dist/models/FloorPrinter.js.map +0 -1
- package/dist/models/PrintCompletion.js +0 -40
- package/dist/models/PrintCompletion.js.map +0 -1
- package/dist/models/Printer.js +0 -78
- package/dist/models/Printer.js.map +0 -1
- package/dist/models/Settings.js +0 -150
- package/dist/models/Settings.js.map +0 -1
- package/dist/models/index.js +0 -54
- package/dist/models/index.js.map +0 -1
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -45
- package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +0 -1
- package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -35
- package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +0 -1
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -35
- package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +0 -1
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +0 -60
- package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +0 -1
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +0 -30
- package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +0 -1
- package/dist/mongo-migrations/20230716065316-user-remove-name.js +0 -30
- package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +0 -1
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js +0 -35
- package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +0 -1
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js +0 -41
- package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +0 -1
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +0 -41
- package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +0 -1
- package/dist/services/interfaces/permission.dto.js +0 -16
- package/dist/services/interfaces/permission.dto.js.map +0 -1
- package/dist/services/mongoose/camera-stream.service.js +0 -67
- package/dist/services/mongoose/camera-stream.service.js.map +0 -1
- package/dist/services/mongoose/custom-gcode.service.js +0 -50
- package/dist/services/mongoose/custom-gcode.service.js.map +0 -1
- package/dist/services/mongoose/floor.service.js +0 -139
- package/dist/services/mongoose/floor.service.js.map +0 -1
- package/dist/services/mongoose/permission.service.js +0 -73
- package/dist/services/mongoose/permission.service.js.map +0 -1
- package/dist/services/mongoose/print-completion.service.js +0 -134
- package/dist/services/mongoose/print-completion.service.js.map +0 -1
- package/dist/services/mongoose/print-completion.shared.js.map +0 -1
- package/dist/services/mongoose/printer.service.js +0 -216
- package/dist/services/mongoose/printer.service.js.map +0 -1
- package/dist/services/mongoose/refresh-token.service.js +0 -104
- package/dist/services/mongoose/refresh-token.service.js.map +0 -1
- package/dist/services/mongoose/role.service.js +0 -132
- package/dist/services/mongoose/role.service.js.map +0 -1
- package/dist/services/mongoose/settings.service.js +0 -124
- package/dist/services/mongoose/settings.service.js.map +0 -1
- package/dist/services/mongoose/user.service.js +0 -180
- package/dist/services/mongoose/user.service.js.map +0 -1
- package/dist/services/validators/camera-service.validation.js +0 -19
- package/dist/services/validators/camera-service.validation.js.map +0 -1
- package/dist/services/validators/print-completion-service.validation.js +0 -33
- package/dist/services/validators/print-completion-service.validation.js.map +0 -1
- package/dist/shared.constants.js +0 -15
- package/dist/shared.constants.js.map +0 -1
- package/migrate-mongo-config.js +0 -45
- /package/dist/services/{mongoose → orm}/print-completion.shared.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/authenticate.ts"],"names":["authenticate","authorizeRoles","permission","inject","authService","loggerFactory","settingsStore","req","res","next","logger","isLoginRequired","getLoginRequired","user","needsPasswordChange","AuthenticationError","AUTH_ERROR_REASON","PasswordChangeRequired","bearer","headers","authorization","replace","undefined","length","isJwtTokenBlacklisted","LoginRequired","isAuthenticated","log","originalUrl","InvalidOrExpiredAuthToken","requiredPermission","permissionService","roleService","userRoles","roles","AuthorizationError","permissions","assignedPermissions","getRolesPermissions","authorizePermission","subset"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/authenticate.ts"],"names":["authenticate","authorizeRoles","permission","inject","authService","loggerFactory","settingsStore","req","res","next","logger","isLoginRequired","getLoginRequired","user","needsPasswordChange","AuthenticationError","AUTH_ERROR_REASON","PasswordChangeRequired","bearer","headers","authorization","replace","undefined","length","isJwtTokenBlacklisted","LoginRequired","isAuthenticated","log","originalUrl","InvalidOrExpiredAuthToken","requiredPermission","permissionService","roleService","_res","userRoles","roles","AuthorizationError","permissions","assignedPermissions","getRolesPermissions","authorizePermission","requiredRoles","subset"],"mappings":";;;;;;;;;;;QAUaA;eAAAA;;QAkDAC;eAAAA;;QAnBGC;eAAAA;;;+BAzCO;mCACiC;wCAEI;AAOrD,MAAMF,eAAe,IAC1BG,IAAAA,qBAAM,EACJ,CAACC,aAA0BC,eAA+BC,gBACxD,OAAOC,KAAcC,KAAeC;YAClC,MAAMC,SAASL,cAAc;YAE7B,MAAMM,kBAAkB,MAAML,cAAcM,gBAAgB;YAC5D,IAAI,CAACD,iBAAiB;gBACpB,OAAOF;YACT;YAGA,IAAIF,IAAIM,IAAI,EAAEC,qBAAqB;gBACjC,MAAM,IAAIC,sCAAmB,CAAC,4BAA4BC,yCAAiB,CAACC,sBAAsB;YACpG;YAGA,MAAMC,SAASX,IAAIY,OAAO,CAACC,aAAa,EAAEC,QAAQ,WAAW,OAAOC;YACpE,IAAI,CAAC,CAACJ,QAAQK,UAAUnB,YAAYoB,qBAAqB,CAACN,SAAS;gBACjE,MAAM,IAAIH,sCAAmB,CAAC,qBAAqBC,yCAAiB,CAACS,aAAa;YACpF;YAEA,IAAIlB,IAAImB,eAAe,IAAI;gBACzB,OAAOjB;YACT;YAEAC,OAAOiB,GAAG,CAAC,CAAC,6BAA6B,EAAEpB,IAAIqB,WAAW,EAAE;YAC5D,MAAM,IAAIb,sCAAmB,CAAC,qBAAqBC,yCAAiB,CAACa,yBAAyB;QAChG;AAGC,SAAS3B,WAAW4B,kBAAkC;IAC3D,OAAO3B,IAAAA,qBAAM,EACX,CAAC4B,mBAAuCC,cACtC,OAAOzB,KAAc0B,MAAgBxB;YACnC,MAAMyB,YAAY3B,IAAI4B,KAAK;YAC3B,IAAI,CAACD,WAAWX,QAAQ;gBACtB,MAAM,IAAIa,qCAAkB,CAAC;oBAAEC,aAAa;wBAACP;qBAAmB;gBAAC;YACnE;YAEA,MAAMQ,sBAAsBN,YAAYO,mBAAmB,CAACL;YAC5D,IAAI,CAACH,kBAAkBS,mBAAmB,CAACV,oBAAoBQ,sBAAsB;gBACnF,MAAM,IAAIF,qCAAkB,CAAC;oBAAEC,aAAa;wBAACP;qBAAmB;gBAAC;YACnE;YAEArB;QACF;AAEN;AAEO,MAAMR,iBAAiB,CAACwC,eAA2BC,SAAS,IAAI,GACrEvC,IAAAA,qBAAM,EAAC,CAAC6B,cAA8B,OAAOzB,KAAcC,KAAeC;YACxE,IAAI,CAACF,IAAI4B,KAAK,EAAEZ,UAAU,CAACS,YAAY/B,cAAc,CAACwC,eAAelC,IAAI4B,KAAK,EAAEO,SAAS;gBACvF,MAAM,IAAIN,qCAAkB,CAAC;oBAAED,OAAOM;gBAAc;YACtD;YAEAhC;QACF"}
|
|
@@ -18,7 +18,7 @@ async function interceptDatabaseError(req, res, next) {
|
|
|
18
18
|
res.status(500);
|
|
19
19
|
res.send({
|
|
20
20
|
databaseReadyState: serverHost.hasConnected(),
|
|
21
|
-
state: "Retrying
|
|
21
|
+
state: "Retrying database connection. Please contact the developer if this persists."
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -18,7 +18,7 @@ _export(exports, {
|
|
|
18
18
|
});
|
|
19
19
|
const _awilixexpress = require("awilix-express");
|
|
20
20
|
const _runtimeexceptions = require("../exceptions/runtime.exceptions");
|
|
21
|
-
const validateWizardCompleted = (0, _awilixexpress.inject)((configService, settingsStore, loggerFactory)=>async (req,
|
|
21
|
+
const validateWizardCompleted = (0, _awilixexpress.inject)((configService, settingsStore, loggerFactory)=>async (req, _res, next)=>{
|
|
22
22
|
const logger = loggerFactory(validateWizardCompleted.name);
|
|
23
23
|
const isDemoMode = configService.isDemoMode();
|
|
24
24
|
if (isDemoMode || !!settingsStore.getWizardSettings()?.wizardCompleted) {
|
|
@@ -34,24 +34,16 @@ const validateWizardCompleted = (0, _awilixexpress.inject)((configService, setti
|
|
|
34
34
|
];
|
|
35
35
|
if (allowedPaths.includes(req.path) || !req.path.startsWith("/api")) {
|
|
36
36
|
next();
|
|
37
|
-
return;
|
|
38
37
|
} else {
|
|
39
38
|
logger.error("Wizard not completed", req.path);
|
|
40
39
|
throw new _runtimeexceptions.ForbiddenError(`First-time-setup not completed, these api paths are enabled: ${allowedPaths.join(", ")}`);
|
|
41
40
|
}
|
|
42
41
|
});
|
|
43
|
-
const interceptRoles = (0, _awilixexpress.inject)((settingsStore, roleService
|
|
42
|
+
const interceptRoles = (0, _awilixexpress.inject)((settingsStore, roleService)=>async (req, _res, next)=>{
|
|
44
43
|
const serverSettings = settingsStore.getSettings();
|
|
45
|
-
|
|
46
|
-
req.roles = (req.user?.roles ?? []).map((r)=>r.roleId);
|
|
47
|
-
} else {
|
|
48
|
-
req.roles = req.user?.roles;
|
|
49
|
-
}
|
|
44
|
+
req.roles = req.user?.roles ?? [];
|
|
50
45
|
if (serverSettings && !req.user) {
|
|
51
|
-
|
|
52
|
-
req.roles = [
|
|
53
|
-
roleName
|
|
54
|
-
];
|
|
46
|
+
req.roles = await roleService.getAppDefaultRoleNames();
|
|
55
47
|
}
|
|
56
48
|
next();
|
|
57
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/global.middleware.ts"],"names":["interceptRoles","validateWizardCompleted","inject","configService","settingsStore","loggerFactory","req","
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/global.middleware.ts"],"names":["interceptRoles","validateWizardCompleted","inject","configService","settingsStore","loggerFactory","req","_res","next","logger","name","isDemoMode","getWizardSettings","wizardCompleted","allowedPaths","includes","path","startsWith","error","ForbiddenError","join","roleService","serverSettings","getSettings","roles","user","getAppDefaultRoleNames"],"mappings":";;;;;;;;;;;QAoCaA;eAAAA;;QA5BAC;eAAAA;;;+BARU;mCACQ;AAOxB,MAAMA,0BAA0BC,IAAAA,qBAAM,EAC3C,CAACC,eAA+BC,eAA8BC,gBAC5D,OAAOC,KAAcC,MAAgBC;QACnC,MAAMC,SAASJ,cAAcJ,wBAAwBS,IAAI;QACzD,MAAMC,aAAaR,cAAcQ,UAAU;QAC3C,IAAIA,cAAc,CAAC,CAACP,cAAcQ,iBAAiB,IAAIC,iBAAiB;YACtEL;YACA;QACF;QAEA,MAAMM,eAAe;YACnB;YACA;YACA;YACA;YACA;SACD;QACD,IAAIA,aAAaC,QAAQ,CAACT,IAAIU,IAAI,KAAK,CAACV,IAAIU,IAAI,CAACC,UAAU,CAAC,SAAS;YACnET;QACF,OAAO;YACLC,OAAOS,KAAK,CAAC,wBAAwBZ,IAAIU,IAAI;YAC7C,MAAM,IAAIG,iCAAc,CACtB,CAAC,6DAA6D,EAAEL,aAAaM,IAAI,CAAC,OAAO;QAE7F;IACF;AAGG,MAAMpB,iBAAiBE,IAAAA,qBAAM,EAClC,CAACE,eAA8BiB,cAC7B,OAAOf,KAAcC,MAAgBC;QACnC,MAAMc,iBAAiBlB,cAAcmB,WAAW;QAEhDjB,IAAIkB,KAAK,GAAGlB,IAAImB,IAAI,EAAED,SAAS,EAAE;QAGjC,IAAIF,kBAAkB,CAAChB,IAAImB,IAAI,EAAE;YAC/BnB,IAAIkB,KAAK,GAAG,MAAMH,YAAYK,sBAAsB;QACtD;QAEAlB;IACF"}
|
|
@@ -22,10 +22,8 @@ _export(exports, {
|
|
|
22
22
|
return ParamString;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
const _containertokens = require("../container.tokens");
|
|
26
25
|
const _validators = require("../handlers/validators");
|
|
27
26
|
const _genericvalidation = require("../controllers/validation/generic.validation");
|
|
28
|
-
const _lodash = require("lodash");
|
|
29
27
|
const ParamInt = (paramName)=>createParamDecorator(paramName, Number);
|
|
30
28
|
const ParamBool = (paramName)=>createParamDecorator(paramName, Boolean);
|
|
31
29
|
const ParamString = (paramName)=>createParamDecorator(paramName, String);
|
|
@@ -37,10 +35,9 @@ function createParamDecorator(paramName, type) {
|
|
|
37
35
|
return res.status(400).send(`Missing parameter: ${paramName}`);
|
|
38
36
|
}
|
|
39
37
|
let convertedValue;
|
|
40
|
-
const isTypeormMode = req.container?.resolve(_containertokens.DITokens.isTypeormMode);
|
|
41
38
|
let validateIdAsType = null;
|
|
42
39
|
if (type === "id") {
|
|
43
|
-
validateIdAsType =
|
|
40
|
+
validateIdAsType = Number;
|
|
44
41
|
}
|
|
45
42
|
if (type === Boolean) {
|
|
46
43
|
if (paramValue.toLowerCase() === "true") {
|
|
@@ -51,23 +48,18 @@ function createParamDecorator(paramName, type) {
|
|
|
51
48
|
return res.status(400).send(`Invalid boolean: ${paramName}`);
|
|
52
49
|
}
|
|
53
50
|
} else if (type === Number || validateIdAsType === Number) {
|
|
54
|
-
convertedValue = parseInt(paramValue, 10);
|
|
55
|
-
if (isNaN(convertedValue)) {
|
|
51
|
+
convertedValue = Number.parseInt(paramValue, 10);
|
|
52
|
+
if (Number.isNaN(convertedValue)) {
|
|
56
53
|
return res.status(400).send(`Invalid number: ${paramName}`);
|
|
57
54
|
}
|
|
58
|
-
} else if (type === String || validateIdAsType === String) {
|
|
59
|
-
convertedValue = paramValue;
|
|
60
|
-
if (!(0, _lodash.isString)(convertedValue)) {
|
|
61
|
-
return res.status(400).send(`Invalid string: ${paramName}`);
|
|
62
|
-
}
|
|
63
55
|
} else {
|
|
64
56
|
return res.status(400).send(`Unknown type of: ${paramName}`);
|
|
65
57
|
}
|
|
66
|
-
if (validateIdAsType ===
|
|
58
|
+
if (validateIdAsType === Number) {
|
|
67
59
|
try {
|
|
68
60
|
await (0, _validators.validateInput)({
|
|
69
61
|
id: convertedValue
|
|
70
|
-
},
|
|
62
|
+
}, _genericvalidation.idRulesV2);
|
|
71
63
|
} catch (e) {
|
|
72
64
|
return next(e);
|
|
73
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/param-converter.middleware.ts"],"names":["ParamBool","ParamId","ParamInt","ParamString","paramName","createParamDecorator","Number","Boolean","String","type","req","res","next","paramValue","params","undefined","status","send","convertedValue","
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/param-converter.middleware.ts"],"names":["ParamBool","ParamId","ParamInt","ParamString","paramName","createParamDecorator","Number","Boolean","String","type","req","res","next","paramValue","params","undefined","status","send","convertedValue","validateIdAsType","toLowerCase","parseInt","isNaN","validateInput","id","idRulesV2","e","local"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QAEAC;eAAAA;;QAHAC;eAAAA;;QAEAC;eAAAA;;;4BALiB;mCACJ;AAEnB,MAAMD,WAAW,CAACE,YAAsBC,qBAAqBD,WAAWE;AACxE,MAAMN,YAAY,CAACI,YAAsBC,qBAAqBD,WAAWG;AACzE,MAAMJ,cAAc,CAACC,YAAsBC,qBAAqBD,WAAWI;AAC3E,MAAMP,UAAU,CAACG,YAAsBC,qBAAqBD,WAAW;AAE9E,SAASC,qBACPD,SAAiB,EACjBK,IAAuE;IAEvE,OAAO,OAAOC,KAAgDC,KAAeC;QAC3E,MAAMC,aAAaH,IAAII,MAAM,CAACV,UAAU;QAExC,IAAIS,eAAeE,WAAW;YAC5B,OAAOJ,IAAIK,MAAM,CAAC,KAAKC,IAAI,CAAC,CAAC,mBAAmB,EAAEb,WAAW;QAC/D;QAEA,IAAIc;QAEJ,IAAIC,mBAAmB;QACvB,IAAIV,SAAS,MAAM;YACjBU,mBAAmBb;QACrB;QAEA,IAAIG,SAASF,SAAS;YACpB,IAAIM,WAAWO,WAAW,OAAO,QAAQ;gBACvCF,iBAAiB;YACnB,OAAO,IAAIL,WAAWO,WAAW,OAAO,SAAS;gBAC/CF,iBAAiB;YACnB,OAAO;gBACL,OAAOP,IAAIK,MAAM,CAAC,KAAKC,IAAI,CAAC,CAAC,iBAAiB,EAAEb,WAAW;YAC7D;QACF,OAAO,IAAIK,SAASH,UAAUa,qBAAqBb,QAAQ;YACzDY,iBAAiBZ,OAAOe,QAAQ,CAACR,YAAY;YAC7C,IAAIP,OAAOgB,KAAK,CAACJ,iBAAiB;gBAChC,OAAOP,IAAIK,MAAM,CAAC,KAAKC,IAAI,CAAC,CAAC,gBAAgB,EAAEb,WAAW;YAC5D;QACF,OAAO;YAEL,OAAOO,IAAIK,MAAM,CAAC,KAAKC,IAAI,CAAC,CAAC,iBAAiB,EAAEb,WAAW;QAC7D;QAGA,IAAIe,qBAAqBb,QAAQ;YAC/B,IAAI;gBACF,MAAMiB,IAAAA,yBAAa,EAAC;oBAAEC,IAAIN;gBAAe,GAAGO,4BAAS;YACvD,EAAE,OAAOC,GAAG;gBACV,OAAOd,KAAKc;YACd;QACF;QAEAhB,IAAIiB,KAAK,GAAGjB,IAAIiB,KAAK,IAAI,CAAC;QAC1BjB,IAAIiB,KAAK,CAACvB,UAAU,GAAGc;QAEvBN;IACF;AACF"}
|
|
@@ -39,8 +39,8 @@ function getPassportJwtOptions(settingsStore, configService, jwtFromRequest = _p
|
|
|
39
39
|
function verifyUserCallback(userService) {
|
|
40
40
|
return function(jwt_payload, done) {
|
|
41
41
|
userService.getUser(jwt_payload.userId).then((user)=>{
|
|
42
|
-
if (user
|
|
43
|
-
return done(null, user);
|
|
42
|
+
if (user?.isVerified && !user.needsPasswordChange) {
|
|
43
|
+
return done(null, userService.toDto(user));
|
|
44
44
|
}
|
|
45
45
|
if (user?.needsPasswordChange) {
|
|
46
46
|
return done(new _runtimeexceptions.AuthenticationError("Password change required", _authorizationconstants.AUTH_ERROR_REASON.PasswordChangeRequired), false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/passport.ts"],"names":["getPassportJwtOptions","initializePassportStrategies","verifyUserCallback","settingsStore","configService","jwtFromRequest","ExtractJwt","fromAuthHeaderAsBearerToken","secretOrKeyProvider","_req","_token","done","jwtSecret","getCredentialSettings","audience","get","AppConstants","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","issuer","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","userService","jwt_payload","getUser","userId","then","user","isVerified","needsPasswordChange","AuthenticationError","AUTH_ERROR_REASON","PasswordChangeRequired","AccountNotVerified","catch","err","passport","container","resolve","DITokens","opts","use","JwtStrategy","AnonymousStrategy"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/passport.ts"],"names":["getPassportJwtOptions","initializePassportStrategies","verifyUserCallback","settingsStore","configService","jwtFromRequest","ExtractJwt","fromAuthHeaderAsBearerToken","secretOrKeyProvider","_req","_token","done","jwtSecret","getCredentialSettings","audience","get","AppConstants","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","issuer","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","userService","jwt_payload","getUser","userId","then","user","isVerified","needsPasswordChange","toDto","AuthenticationError","AUTH_ERROR_REASON","PasswordChangeRequired","AccountNotVerified","catch","err","passport","container","resolve","DITokens","opts","use","JwtStrategy","AnonymousStrategy"],"mappings":";;;;;;;;;;;QAsBgBA;eAAAA;;QA4CAC;eAAAA;;QA5BAC;eAAAA;;;6BAhCT;mCACuC;iCACrB;iCACI;mCAOO;wCACF;AAK3B,SAASF,sBACdG,aAA4B,EAC5BC,aAA4B,EAC5BC,iBAAiEC,uBAAU,CAACC,2BAA2B,EAAE;IAEzG,OAAO;QACLF,gBAAgBA;QAChBG,qBAAqB,OAAOC,MAAMC,QAAgBC;YAChD,MAAM,EAAEC,SAAS,EAAE,GAAG,MAAMT,cAAcU,qBAAqB;YAC/D,OAAOF,KAAK,MAAMC;QACpB;QACAE,UAAUV,cAAcW,GAAG,CAACC,6BAAY,CAACC,qBAAqB,EAAED,6BAAY,CAACE,oBAAoB;QACjGC,QAAQf,cAAcW,GAAG,CAACC,6BAAY,CAACI,mBAAmB,EAAEJ,6BAAY,CAACK,kBAAkB;IAC7F;AACF;AAEO,SAASnB,mBAAmBoB,WAAyB;IAC1D,OAAO,SAAUC,WAAgB,EAAEZ,IAAsB;QACvDW,YACGE,OAAO,CAACD,YAAYE,MAAM,EAC1BC,IAAI,CAAC,CAACC;YACL,IAAIA,MAAMC,cAAc,CAACD,KAAKE,mBAAmB,EAAE;gBACjD,OAAOlB,KAAK,MAAMW,YAAYQ,KAAK,CAACH;YACtC;YACA,IAAIA,MAAME,qBAAqB;gBAC7B,OAAOlB,KACL,IAAIoB,sCAAmB,CAAC,4BAA4BC,yCAAiB,CAACC,sBAAsB,GAC5F;YAEJ;YACA,IAAI,CAACN,MAAMC,YAAY;gBACrB,OAAOjB,KAAK,IAAIoB,sCAAmB,CAAC,qBAAqBC,yCAAiB,CAACE,kBAAkB,GAAG;YAClG;YAEA,OAAOvB,KAAK,MAAM;QACpB,GACCwB,KAAK,CAAC,CAACC;YACN,IAAIA,KAAK;gBACP,OAAOzB,KAAKyB,KAAK;YACnB;QACF;IACJ;AACF;AAEO,SAASnC,6BAA6BoC,QAAwB,EAAEC,SAA0B;IAC/F,MAAMnC,gBAAgBmC,UAAUC,OAAO,CAAgBC,yBAAQ,CAACrC,aAAa;IAC7E,MAAMC,gBAAgBkC,UAAUC,OAAO,CAAgBC,yBAAQ,CAACpC,aAAa;IAC7E,MAAMkB,cAAcgB,UAAUC,OAAO,CAAeC,yBAAQ,CAAClB,WAAW;IAExE,MAAMmB,OAAOzC,sBAAsBG,eAAeC,eAAeE,uBAAU,CAACC,2BAA2B;IAEvG8B,SAASK,GAAG,CACV,IAAIC,qBAAW,CAACF,MAAM,SAAUlB,WAAgB,EAAEZ,IAAsB;QACtET,mBAAmBoB,aAAaC,aAAaZ;IAC/C;IAEF0B,SAASK,GAAG,CAAC,IAAIE,2BAAiB;IAClC,OAAOP;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/printer-resolver.ts"],"names":["getScopedPrinter","req","errors","resolve","token","dep","container","push","InternalServerException","printerApi","printerApiToken","loginDto","printerLoginToken","printerDto","currentPrinterToken","printerId","printerIdToken","length","ValidationException"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/printer-resolver.ts"],"names":["getScopedPrinter","req","errors","resolve","token","dep","container","push","InternalServerException","printerApi","printerApiToken","loginDto","printerLoginToken","printerDto","currentPrinterToken","printerId","printerIdToken","length","ValidationException"],"mappings":";;;;+BAOgBA;;;eAAAA;;;yBANwE;mCAG3B;AAGtD,SAASA,iBAAiBC,GAAY;IAC3C,MAAMC,SAAmB,EAAE;IAE3B,MAAMC,UAAU,CAAIC;QAClB,IAAI;YACF,MAAMC,MAAMJ,IAAIK,SAAS,CAACH,OAAO,CAAIC;YACrC,IAAI,CAACC,KAAKH,OAAOK,IAAI,CAAC,CAAC,mBAAmB,EAAEH,MAAM,mBAAmB,CAAC;YACtE,OAAOC;QACT,EAAE,OAAM;YACN,MAAM,IAAIG,0CAAuB,CAAC,CAAC,WAAW,EAAEJ,MAAM,wCAAwC,CAAC;QACjG;IACF;IAEA,MAAMK,aAAaN,QAAqBO,wBAAe;IACvD,MAAMC,WAAWR,QAAkBS,0BAAiB;IACpD,MAAMC,aAAaV,QAAoBW,4BAAmB;IAC1D,MAAMC,YAAYZ,QAAgBa,uBAAc;IAEhD,IAAId,OAAOe,MAAM,EAAE,MAAM,IAAIC,sCAAmB,CAAChB;IAEjD,OAAO;QACL,CAACQ,wBAAe,CAAC,EAAED;QACnB,CAACG,0BAAiB,CAAC,EAAED;QACrB,CAACG,4BAAmB,CAAC,EAAED;QACvB,CAACG,uBAAc,CAAC,EAAED;IACpB;AACF"}
|
|
@@ -41,8 +41,9 @@ const printerResolveMiddleware = (key = "id")=>{
|
|
|
41
41
|
const bambuEnabled = settingsService.getServerSettings().experimentalBambuSupport;
|
|
42
42
|
let scopedPrinter = undefined;
|
|
43
43
|
let loginDto = undefined;
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
44
|
+
const printerIdParam = req.params[key];
|
|
45
|
+
if (printerIdParam) {
|
|
46
|
+
const printerId = Number.parseInt(printerIdParam, 10);
|
|
46
47
|
scopedPrinter = printerCache.getCachedPrinterOrThrow(printerId);
|
|
47
48
|
loginDto = printerCache.getLoginDto(printerId);
|
|
48
49
|
req.container.register({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/printer.ts"],"names":["currentPrinterToken","printerApiToken","printerIdToken","printerLoginToken","printerResolveMiddleware","key","req","res","next","printerCache","container","resolve","DITokens","settingsService","settingsStore","moonrakerEnabled","getServerSettings","experimentalMoonrakerSupport","prusaLinkEnabled","experimentalPrusaLinkSupport","bambuEnabled","experimentalBambuSupport","scopedPrinter","undefined","loginDto","
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/printer.ts"],"names":["currentPrinterToken","printerApiToken","printerIdToken","printerLoginToken","printerResolveMiddleware","key","req","res","next","printerCache","container","resolve","DITokens","settingsService","settingsStore","moonrakerEnabled","getServerSettings","experimentalMoonrakerSupport","prusaLinkEnabled","experimentalPrusaLinkSupport","bambuEnabled","experimentalBambuSupport","scopedPrinter","undefined","loginDto","printerIdParam","params","printerId","Number","parseInt","getCachedPrinterOrThrow","getLoginDto","register","asValue","printerType","OctoprintType","octoprintApiInstance","octoprintApi","MoonrakerType","moonrakerInstance","moonrakerApi","PrusaLinkType","prusaLinkInstance","prusaLinkApi","BambuType","bambuInstance","bambuApi","setPrinterId"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/socketio.middleware.ts"],"names":["authorize","settingsStore","options","logger","verify","strategy","PassportJwtStrategy","authorizeCallback","socket","next","getLoginRequired","success","_user","fail","info","warn","reason","Error","error","authenticate"],"mappings":";;;;+BAQaA;;;eAAAA;;;6BAPkF;AAOxF,MAAMA,YAAY,CACvBC,eACAC,SACAC,QACAC;IAEA,MAAMC,WAAW,IAAIC,qBAAmB,CAACJ,SAASE;IAElD,OAAO,eAAeG,kBACpBC,MAAkD,EAClDC,IAAmC;QAEnC,IAAI,CAAE,MAAMR,cAAcS,gBAAgB,IAAK;YAE7C,OAAOD;QACT;QAEAJ,SAASM,OAAO,GAAG,SAASA,QAAQC,
|
|
1
|
+
{"version":3,"sources":["../../src/middleware/socketio.middleware.ts"],"names":["authorize","settingsStore","options","logger","verify","strategy","PassportJwtStrategy","authorizeCallback","socket","next","getLoginRequired","success","_user","fail","info","warn","reason","Error","error","authenticate"],"mappings":";;;;+BAQaA;;;eAAAA;;;6BAPkF;AAOxF,MAAMA,YAAY,CACvBC,eACAC,SACAC,QACAC;IAEA,MAAMC,WAAW,IAAIC,qBAAmB,CAACJ,SAASE;IAElD,OAAO,eAAeG,kBACpBC,MAAkD,EAClDC,IAAmC;QAEnC,IAAI,CAAE,MAAMR,cAAcS,gBAAgB,IAAK;YAE7C,OAAOD;QACT;QAEAJ,SAASM,OAAO,GAAG,SAASA,QAAQC,KAAW;YAG7CH;QACF;QACAJ,SAASQ,IAAI,GAAG,CAACC;YACfX,OAAOY,IAAI,CAAC,CAAC,+CAA+C,EAAED,KAAK,CAAC,CAAC,EAAE;gBAAEE,QAAQF;YAAK;YACtFL,KAAK,IAAIQ,MAAMH;QACjB;QACAT,SAASa,KAAK,GAAG,CAACA;YAChBf,OAAOY,IAAI,CAAC;YACZN,KAAKS;QACP;QAEAb,SAASc,YAAY,CAACX,QAAe,CAAC;IACxC;AACF"}
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "AddPrinterUsernamePassword1745141688926", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
class AddPrinterUsernamePassword1745141688926 {
|
|
12
|
-
name =
|
|
12
|
+
name = "AddPrinterUsernamePassword1745141688926";
|
|
13
13
|
async up(queryRunner) {
|
|
14
14
|
await queryRunner.query(`
|
|
15
15
|
CREATE TABLE "temporary_printer" (
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/migrations/1745141688926-AddPrinterUsernamePassword.ts"],"names":["AddPrinterUsernamePassword1745141688926","name","up","queryRunner","query","down"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,OAAO,
|
|
1
|
+
{"version":3,"sources":["../../src/migrations/1745141688926-AddPrinterUsernamePassword.ts"],"names":["AddPrinterUsernamePassword1745141688926","name","up","queryRunner","query","down"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,OAAO,0CAA0C;IAEjD,MAAaC,GAAGC,WAAwB,EAAiB;QACvD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;IAgBzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;IAEzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;IAGzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;IAgBzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;QAErB,CAAC;QACL,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;QAGrB,CAAC;IACP;IAEA,MAAaC,KAAKF,WAAwB,EAAiB;QACzD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;;IAGzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;IAgBzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;IAEzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;QAGrB,CAAC;QACL,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;QAcrB,CAAC;QACL,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;QA0BrB,CAAC;QACL,MAAMD,YAAYC,KAAK,CAAC,CAAC;;QAErB,CAAC;IACP;AACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "DropPermissions1766576698569", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return DropPermissions1766576698569;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
class DropPermissions1766576698569 {
|
|
12
|
+
async up(queryRunner) {
|
|
13
|
+
await queryRunner.query(`
|
|
14
|
+
DROP TABLE permission
|
|
15
|
+
`);
|
|
16
|
+
}
|
|
17
|
+
async down(queryRunner) {
|
|
18
|
+
await queryRunner.query(`
|
|
19
|
+
CREATE TABLE "permission"
|
|
20
|
+
(
|
|
21
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
22
|
+
"name" varchar NOT NULL
|
|
23
|
+
)
|
|
24
|
+
`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=1766576698569-DropPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/migrations/1766576698569-DropPermissions.ts"],"names":["DropPermissions1766576698569","up","queryRunner","query","down"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACX,MAAaC,GAAGC,WAAwB,EAAiB;QACvD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;IAEzB,CAAC;IACH;IAEA,MAAaC,KAAKF,WAAwB,EAAiB;QACzD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;;;;;IAMzB,CAAC;IACH;AACF"}
|
package/dist/server.constants.js
CHANGED
|
@@ -12,7 +12,6 @@ const AppConstants = {
|
|
|
12
12
|
NODE_ENV_KEY: "NODE_ENV",
|
|
13
13
|
VERSION_KEY: "npm_package_version",
|
|
14
14
|
SERVER_PORT_KEY: "SERVER_PORT",
|
|
15
|
-
MONGO_KEY: "MONGO",
|
|
16
15
|
DATABASE_PATH: "DATABASE_PATH",
|
|
17
16
|
DATABASE_FILE: "DATABASE_FILE",
|
|
18
17
|
pm2ServiceName: "FDM",
|
|
@@ -28,8 +27,11 @@ const AppConstants = {
|
|
|
28
27
|
".gcode",
|
|
29
28
|
".bgcode"
|
|
30
29
|
],
|
|
30
|
+
defaultAcceptedBambuExtensions: [
|
|
31
|
+
".gcode",
|
|
32
|
+
".3mf"
|
|
33
|
+
],
|
|
31
34
|
defaultServerPort: 4000,
|
|
32
|
-
defaultMongoStringUnauthenticated: "mongodb://127.0.0.1:27017/fdm-monster",
|
|
33
35
|
apiRoute: "/api",
|
|
34
36
|
enableClientDistAutoUpdateKey: "ENABLE_CLIENT_DIST_AUTO_UPDATE",
|
|
35
37
|
OVERRIDE_LOGIN_REQUIRED: "OVERRIDE_LOGIN_REQUIRED",
|
|
@@ -71,11 +73,7 @@ const AppConstants = {
|
|
|
71
73
|
githubUrl: "https://github.com/fdm-monster/fdm-monster",
|
|
72
74
|
orgName: "fdm-monster",
|
|
73
75
|
currentWizardVersion: 1,
|
|
74
|
-
defaultClientMinimum: "1.
|
|
75
|
-
influxUrl: "INFLUX_URL",
|
|
76
|
-
influxToken: "INFLUX_TOKEN",
|
|
77
|
-
influxOrg: "INFLUX_ORG",
|
|
78
|
-
influxBucket: "INFLUX_BUCKET",
|
|
76
|
+
defaultClientMinimum: "1.13.0",
|
|
79
77
|
defaultWebsocketHandshakeTimeout: 3000,
|
|
80
78
|
defaultSocketThrottleRate: 1,
|
|
81
79
|
debugSocketStatesKey: "DEBUG_SOCKET_STATES",
|
|
@@ -84,8 +82,6 @@ const AppConstants = {
|
|
|
84
82
|
sentryCustomDsnToken: "SENTRY_CUSTOM_DSN",
|
|
85
83
|
sentryCustomDsnDefault: "https://164b8028a8a745bba3dbcab991b84ae7@o4503975545733120.ingest.sentry.io/4505101598261248",
|
|
86
84
|
debugRoutesKey: "DEBUG_ROUTES",
|
|
87
|
-
ENABLE_EXPERIMENTAL_TYPEORM: "ENABLE_EXPERIMENTAL_TYPEORM",
|
|
88
|
-
enableExperimentalTypeormDefault: "false",
|
|
89
85
|
ENABLE_PROMETHEUS_METRICS: "ENABLE_PROMETHEUS_METRICS",
|
|
90
86
|
ENABLE_LOKI_LOGGING: "ENABLE_LOKI_LOGGING",
|
|
91
87
|
LOKI_ADDRESS: "LOKI_ADDRESS",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","
|
|
1
|
+
{"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","defaultServerPort","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","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","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,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,gCAAgC;QAAC;QAAU;KAAO;IAClDC,mBAAmB;IACnBC,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;IAGtBC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
|
package/dist/server.core.js
CHANGED
|
@@ -21,7 +21,6 @@ const _passport1 = require("./middleware/passport");
|
|
|
21
21
|
const _serverconstants = require("./server.constants");
|
|
22
22
|
const _path = require("path");
|
|
23
23
|
const _fsutils = require("./utils/fs.utils");
|
|
24
|
-
const _envutils = require("./utils/env.utils");
|
|
25
24
|
const _promclient = require("prom-client");
|
|
26
25
|
const _logger = require("./handlers/logger");
|
|
27
26
|
function _interop_require_default(obj) {
|
|
@@ -76,12 +75,9 @@ const httpRequestsTotal = new _promclient.Counter({
|
|
|
76
75
|
});
|
|
77
76
|
async function setupServer() {
|
|
78
77
|
const httpServer = (0, _express.default)();
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
(0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
|
|
83
|
-
}
|
|
84
|
-
const container = (0, _container.configureContainer)(experimentalTypeormEnabled);
|
|
78
|
+
const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] ?? "./database";
|
|
79
|
+
(0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
|
|
80
|
+
const container = (0, _container.configureContainer)();
|
|
85
81
|
(0, _passport1.initializePassportStrategies)(_passport.default, container);
|
|
86
82
|
httpServer.use((req, res, next)=>{
|
|
87
83
|
const route = req.route?.path ?? req.path ?? "unknown";
|
package/dist/server.core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","
|
|
1
|
+
{"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","dbFolder","process","env","AppConstants","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":";;;;+BAqBsBA;;;eAAAA;;;iEArBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;4BACvB;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,aAAaC,IAAAA,gBAAO;IAE1B,MAAMC,WAAWC,QAAQC,GAAG,CAACC,6BAAY,CAACC,aAAa,CAAC,IAAI;IAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIP;IAEtC,MAAMQ,YAAYC,IAAAA,6BAAkB;IACpCC,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCV,WACGc,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAI;QAE7C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQlB,QAAQmB,MAAM;YAE5BN,IAAIO,EAAE,CAAC,UAAU;gBACf3B,kBAAkB4B,GAAG;gBAErB,MAAMC,QAAQtB,QAAQmB,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;QACLxD;QACAU;IACF;AACF"}
|
package/dist/server.env.js
CHANGED
|
@@ -9,24 +9,15 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
get ensureMongoDbConnectionStringSet () {
|
|
13
|
-
return ensureMongoDbConnectionStringSet;
|
|
14
|
-
},
|
|
15
12
|
get ensurePortSet () {
|
|
16
13
|
return ensurePortSet;
|
|
17
14
|
},
|
|
18
|
-
get fetchMongoDBConnectionString () {
|
|
19
|
-
return fetchMongoDBConnectionString;
|
|
20
|
-
},
|
|
21
15
|
get fetchServerPort () {
|
|
22
16
|
return fetchServerPort;
|
|
23
17
|
},
|
|
24
18
|
get isEnvProd () {
|
|
25
19
|
return isEnvProd;
|
|
26
20
|
},
|
|
27
|
-
get runMigrations () {
|
|
28
|
-
return runMigrations;
|
|
29
|
-
},
|
|
30
21
|
get setupEnvConfig () {
|
|
31
22
|
return setupEnvConfig;
|
|
32
23
|
},
|
|
@@ -34,8 +25,7 @@ _export(exports, {
|
|
|
34
25
|
return setupSentry;
|
|
35
26
|
}
|
|
36
27
|
});
|
|
37
|
-
const
|
|
38
|
-
const _path = require("path");
|
|
28
|
+
const _nodepath = require("node:path");
|
|
39
29
|
const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
|
|
40
30
|
const _serverconstants = require("./server.constants");
|
|
41
31
|
const _logger = require("./handlers/logger");
|
|
@@ -85,7 +75,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
85
75
|
return newObj;
|
|
86
76
|
}
|
|
87
77
|
const instructionsReferralURL = "https://docs.fdm-monster.net";
|
|
88
|
-
const packageJsonPath = (0,
|
|
78
|
+
const packageJsonPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), "./package.json");
|
|
89
79
|
function isEnvTest() {
|
|
90
80
|
return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultTestEnv;
|
|
91
81
|
}
|
|
@@ -113,32 +103,14 @@ function printInstructionsURL() {
|
|
|
113
103
|
const logger = new _logger.LoggerService("FDM-Environment");
|
|
114
104
|
logger.log(`Please make sure to read ${instructionsReferralURL} for more information.`);
|
|
115
105
|
}
|
|
116
|
-
function fetchMongoDBConnectionString() {
|
|
117
|
-
const logger = new _logger.LoggerService("FDM-Environment");
|
|
118
|
-
if (!process.env[_serverconstants.AppConstants.MONGO_KEY]) {
|
|
119
|
-
logger.debug(`~ ${_serverconstants.AppConstants.MONGO_KEY} environment variable is not set. Assuming default`);
|
|
120
|
-
printInstructionsURL();
|
|
121
|
-
process.env[_serverconstants.AppConstants.MONGO_KEY] = _serverconstants.AppConstants.defaultMongoStringUnauthenticated;
|
|
122
|
-
}
|
|
123
|
-
return process.env[_serverconstants.AppConstants.MONGO_KEY];
|
|
124
|
-
}
|
|
125
106
|
function fetchServerPort() {
|
|
126
107
|
let port = process.env[_serverconstants.AppConstants.SERVER_PORT_KEY];
|
|
127
|
-
if (Number.isNaN(parseInt(port))) {
|
|
108
|
+
if (Number.isNaN(Number.parseInt(port))) {
|
|
128
109
|
process.env[_serverconstants.AppConstants.SERVER_PORT_KEY] = _serverconstants.AppConstants.defaultServerPort.toString();
|
|
129
110
|
port = process.env[_serverconstants.AppConstants.SERVER_PORT_KEY];
|
|
130
111
|
}
|
|
131
112
|
return port;
|
|
132
113
|
}
|
|
133
|
-
function ensureMongoDbConnectionStringSet() {
|
|
134
|
-
const logger = new _logger.LoggerService("FDM-Environment");
|
|
135
|
-
const dbConnectionString = process.env[_serverconstants.AppConstants.MONGO_KEY];
|
|
136
|
-
if (!dbConnectionString) {
|
|
137
|
-
fetchMongoDBConnectionString();
|
|
138
|
-
} else {
|
|
139
|
-
logger.log(`✓ ${_serverconstants.AppConstants.MONGO_KEY} environment variable set!`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
114
|
function setupSentry() {
|
|
143
115
|
const logger = new _logger.LoggerService("FDM-Environment");
|
|
144
116
|
const sentryDsnToken = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.sentryCustomDsnToken, _serverconstants.AppConstants.sentryCustomDsnDefault);
|
|
@@ -147,7 +119,7 @@ function setupSentry() {
|
|
|
147
119
|
environment: process.env.NODE_ENV,
|
|
148
120
|
release: process.env.npm_package_version,
|
|
149
121
|
enabled: !isEnvTest(),
|
|
150
|
-
tracesSampleRate: (0, _envutils.isProductionEnvironment)() ? 0.25 : 1
|
|
122
|
+
tracesSampleRate: (0, _envutils.isProductionEnvironment)() ? 0.25 : 1
|
|
151
123
|
});
|
|
152
124
|
process.on("unhandledRejection", (e)=>{
|
|
153
125
|
const message = `Unhandled rejection error - ${(0, _errorutils.errorSummary)(e)}`;
|
|
@@ -168,7 +140,6 @@ function setupEnvConfig() {
|
|
|
168
140
|
ensureNodeEnvSet();
|
|
169
141
|
ensurePackageVersionSet();
|
|
170
142
|
setupSentry();
|
|
171
|
-
ensureMongoDbConnectionStringSet();
|
|
172
143
|
ensurePortSet();
|
|
173
144
|
if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
|
|
174
145
|
(0, _promclient.collectDefaultMetrics)({
|
|
@@ -177,21 +148,5 @@ function setupEnvConfig() {
|
|
|
177
148
|
_promclient.register.removeSingleMetric("nodejs_version_info");
|
|
178
149
|
}
|
|
179
150
|
}
|
|
180
|
-
async function runMigrations(db, client) {
|
|
181
|
-
const logger = new _logger.LoggerService("FDM-Environment");
|
|
182
|
-
const migrationsStatus = await (0, _migratemongo.status)(db);
|
|
183
|
-
const pendingMigrations = migrationsStatus.filter((m)=>m.appliedAt === "PENDING");
|
|
184
|
-
if (pendingMigrations.length) {
|
|
185
|
-
logger.log(`! MongoDB has ${pendingMigrations.length} migrations left to run (${migrationsStatus.length} migrations in total)`);
|
|
186
|
-
} else {
|
|
187
|
-
logger.log(`✓ Mongo Database is up to date [${migrationsStatus.length} migration applied]`);
|
|
188
|
-
}
|
|
189
|
-
const migrationResult = await (0, _migratemongo.up)(db, client);
|
|
190
|
-
if (migrationResult?.length > 0) {
|
|
191
|
-
logger.log(`Applied ${migrationResult.length} migrations successfully`, migrationResult);
|
|
192
|
-
} else {
|
|
193
|
-
logger.log("No migrations were run");
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
151
|
|
|
197
152
|
//# sourceMappingURL=server.env.js.map
|
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":["ensurePortSet","fetchServerPort","isEnvProd","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","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","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"],"mappings":"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"}
|
package/dist/server.host.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "ServerHost", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _express = /*#__PURE__*/ _interop_require_default(require("express"));
|
|
12
|
-
const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
|
|
13
12
|
const _connecthistoryapifallback = /*#__PURE__*/ _interop_require_default(require("connect-history-api-fallback"));
|
|
14
13
|
const _path = require("path");
|
|
15
14
|
const _exceptionfilter = require("./middleware/exception.filter");
|
|
@@ -26,15 +25,13 @@ function _interop_require_default(obj) {
|
|
|
26
25
|
}
|
|
27
26
|
class ServerHost {
|
|
28
27
|
configService;
|
|
29
|
-
isTypeormMode;
|
|
30
28
|
settingsStore;
|
|
31
29
|
bootTask;
|
|
32
30
|
socketIoGateway;
|
|
33
31
|
typeormService;
|
|
34
32
|
logger;
|
|
35
|
-
constructor(loggerFactory, configService,
|
|
33
|
+
constructor(loggerFactory, configService, settingsStore, bootTask, socketIoGateway, typeormService){
|
|
36
34
|
this.configService = configService;
|
|
37
|
-
this.isTypeormMode = isTypeormMode;
|
|
38
35
|
this.settingsStore = settingsStore;
|
|
39
36
|
this.bootTask = bootTask;
|
|
40
37
|
this.socketIoGateway = socketIoGateway;
|
|
@@ -42,9 +39,6 @@ class ServerHost {
|
|
|
42
39
|
this.logger = loggerFactory(ServerHost.name);
|
|
43
40
|
}
|
|
44
41
|
async boot(app, quick_boot = false, listenRequests = true) {
|
|
45
|
-
if (!this.isTypeormMode) {
|
|
46
|
-
_mongoose.default.set("strictQuery", true);
|
|
47
|
-
}
|
|
48
42
|
this.serveControllerRoutes(app);
|
|
49
43
|
if (!quick_boot) {
|
|
50
44
|
await this.bootTask.runOnce();
|
|
@@ -52,11 +46,7 @@ class ServerHost {
|
|
|
52
46
|
if (listenRequests) return this.httpListen(app);
|
|
53
47
|
}
|
|
54
48
|
hasConnected() {
|
|
55
|
-
|
|
56
|
-
return this.typeormService.hasConnected();
|
|
57
|
-
} else {
|
|
58
|
-
return _mongoose.default.connections[0].readyState;
|
|
59
|
-
}
|
|
49
|
+
return this.typeormService.hasConnected();
|
|
60
50
|
}
|
|
61
51
|
serveControllerRoutes(app) {
|
|
62
52
|
app.use((req, res, next)=>{
|
|
@@ -101,7 +91,7 @@ class ServerHost {
|
|
|
101
91
|
prefix: "/"
|
|
102
92
|
});
|
|
103
93
|
}
|
|
104
|
-
if (!port || Number.isNaN(parseInt(port))) {
|
|
94
|
+
if (!port || Number.isNaN(Number.parseInt(port))) {
|
|
105
95
|
throw new Error("The FDM Server requires a numeric port input argument to run");
|
|
106
96
|
}
|
|
107
97
|
const hostOrFqdn = "0.0.0.0";
|
package/dist/server.host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","logger","loggerFactory","configService","
|
|
1
|
+
{"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","logger","loggerFactory","configService","settingsStore","bootTask","socketIoGateway","typeormService","name","boot","app","quick_boot","listenRequests","serveControllerRoutes","runOnce","httpListen","hasConnected","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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"}
|