@fdm-monster/server 1.7.5 → 1.7.6

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/.yarnrc.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  nodeLinker: node-modules
2
2
 
3
- yarnPath: .yarn/releases/yarn-4.5.2.cjs
3
+ yarnPath: .yarn/releases/yarn-4.5.3.cjs
4
4
  httpTimeout: 1000000
package/README.md CHANGED
@@ -76,7 +76,7 @@ Please join the discord, but stay professional and proactive!
76
76
  These are the people involved in the project. Find the meaning of the emoji keys [here](https://allcontributors.org/docs/en/emoji-key).
77
77
 
78
78
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
79
- [![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-)
79
+ [![All Contributors](https://img.shields.io/badge/all_contributors-19-orange.svg?style=flat-square)](#contributors-)
80
80
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
81
81
 
82
82
  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
@@ -87,7 +87,7 @@ These are the people involved in the project. Find the meaning of the emoji keys
87
87
  <tr>
88
88
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/davidzwa"><img src="https://avatars.githubusercontent.com/u/6005355?v=4?s=80" width="80px;" alt="David Zwart"/><br /><sub><b>David Zwart</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Adavidzwa" title="Bug reports">🐛</a> <a href="https://github.com/fdm-monster/fdm-monster/commits?author=davidzwa" title="Code">💻</a> <a href="#maintenance-davidzwa" title="Maintenance">🚧</a> <a href="#userTesting-davidzwa" title="User Testing">📓</a></td>
89
89
  <td align="center" valign="top" width="14.28%"><a href="https://kevenaar.name"><img src="https://avatars.githubusercontent.com/u/834643?v=4?s=80" width="80px;" alt="Maurice Kevenaar"/><br /><sub><b>Maurice Kevenaar</b></sub></a><br /><a href="#security-mkevenaar" title="Security">🛡️</a> <a href="#maintenance-mkevenaar" title="Maintenance">🚧</a> <a href="#ideas-mkevenaar" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Amkevenaar" title="Bug reports">🐛</a> <a href="https://github.com/fdm-monster/fdm-monster/pulls?q=is%3Apr+reviewed-by%3Amkevenaar" title="Reviewed Pull Requests">👀</a> <a href="#infra-mkevenaar" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
90
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/Tobikisss"><img src="https://avatars.githubusercontent.com/u/45754890?v=4?s=80" width="80px;" alt="Tobias"/><br /><sub><b>Tobias</b></sub></a><br /><a href="#ideas-Tobikisss" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-Tobikisss" title="Maintenance">🚧</a></td>
90
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Tobikisss"><img src="https://avatars.githubusercontent.com/u/45754890?v=4?s=80" width="80px;" alt="Tobias"/><br /><sub><b>Tobias</b></sub></a><br /><a href="#ideas-Tobikisss" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-Tobikisss" title="Maintenance">🚧</a> <a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3ATobikisss" title="Bug reports">🐛</a></td>
91
91
  <td align="center" valign="top" width="14.28%"><a href="https://tideline3d.com"><img src="https://avatars.githubusercontent.com/u/12903320?v=4?s=80" width="80px;" alt="tideline3d"/><br /><sub><b>tideline3d</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Atideline3d" title="Bug reports">🐛</a> <a href="#ideas-tideline3d" title="Ideas, Planning, & Feedback">🤔</a></td>
92
92
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/windarrow3d"><img src="https://avatars.githubusercontent.com/u/91099282?v=4?s=80" width="80px;" alt="WindArrow3d"/><br /><sub><b>WindArrow3d</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Awindarrow3d" title="Bug reports">🐛</a> <a href="#financial-windarrow3d" title="Financial">💵</a> <a href="#ideas-windarrow3d" title="Ideas, Planning, & Feedback">🤔</a> <a href="#userTesting-windarrow3d" title="User Testing">📓</a> <a href="#platform-windarrow3d" title="Packaging/porting to new platform">📦</a></td>
93
93
  <td align="center" valign="top" width="14.28%"><a href="http://lucianchapar.com"><img src="https://avatars.githubusercontent.com/u/33263520?v=4?s=80" width="80px;" alt="Lucian Chapar"/><br /><sub><b>Lucian Chapar</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Alucian151" title="Bug reports">🐛</a></td>
@@ -107,6 +107,7 @@ These are the people involved in the project. Find the meaning of the emoji keys
107
107
  <td align="center" valign="top" width="14.28%"><a href="http://insanityautomation.com/"><img src="https://avatars.githubusercontent.com/u/38436470?v=4?s=80" width="80px;" alt="InsanityAutomation"/><br /><sub><b>InsanityAutomation</b></sub></a><br /><a href="#ideas-InsanityAutomation" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3AInsanityAutomation" title="Bug reports">🐛</a></td>
108
108
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/LyfeOnEdge"><img src="https://avatars.githubusercontent.com/u/26140376?v=4?s=80" width="80px;" alt="Andrew (LyfeOnEdge) (ArcticGentoo)"/><br /><sub><b>Andrew (LyfeOnEdge) (ArcticGentoo)</b></sub></a><br /><a href="#ideas-LyfeOnEdge" title="Ideas, Planning, & Feedback">🤔</a></td>
109
109
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/callanova"><img src="https://avatars.githubusercontent.com/u/175639705?v=4?s=80" width="80px;" alt="callanova"/><br /><sub><b>callanova</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Acallanova" title="Bug reports">🐛</a></td>
110
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/thatguymendel"><img src="https://avatars.githubusercontent.com/u/67444998?v=4?s=80" width="80px;" alt="thatguymendel"/><br /><sub><b>thatguymendel</b></sub></a><br /><a href="#ideas-thatguymendel" title="Ideas, Planning, & Feedback">🤔</a></td>
110
111
  </tr>
111
112
  </tbody>
112
113
  </table>
package/RELEASE_NOTES.MD CHANGED
@@ -1,5 +1,13 @@
1
1
  # Develop
2
2
 
3
+ # FDM Monster 25/11/2024 1.7.6
4
+
5
+ ## Fixes
6
+
7
+ - UserService: MongoDB had incorrect root user checks and SQLite user service missed the check altogether. Now root user checks are robust.
8
+ - Camera API: GUEST should not have access to change cameras
9
+ - YAML import validation: new API keys are not accepted by outdated YAML validation
10
+
3
11
  # FDM Monster 23/11/2024 1.7.5
4
12
 
5
13
  ## Fixes
package/dist/container.js CHANGED
@@ -43,12 +43,12 @@ const _multerservice = require("./services/core/multer.service");
43
43
  const _fileuploadtrackercache = require("./state/file-upload-tracker.cache");
44
44
  const _serverhost = require("./server.host");
45
45
  const _boottask = require("./tasks/boot.task");
46
- const _userservice = require("./services/authentication/user.service");
46
+ const _userservice = require("./services/mongoose/user.service");
47
47
  const _userservice1 = require("./services/orm/user.service");
48
- const _roleservice = require("./services/authentication/role.service");
48
+ const _roleservice = require("./services/mongoose/role.service");
49
49
  const _roleservice1 = require("./services/orm/role.service");
50
50
  const _tasks = require("./tasks");
51
- const _permissionservice = require("./services/authentication/permission.service");
51
+ const _permissionservice = require("./services/mongoose/permission.service");
52
52
  const _permissionservice1 = require("./services/orm/permission.service");
53
53
  const _printerfilecleantask = require("./tasks/printer-file-clean.task");
54
54
  const _authorizationconstants = require("./constants/authorization.constants");
@@ -81,7 +81,7 @@ const _camerastreamservice = require("./services/mongoose/camera-stream.service"
81
81
  const _camerastreamservice1 = require("./services/orm/camera-stream.service");
82
82
  const _jwtservice = require("./services/authentication/jwt.service");
83
83
  const _authservice = require("./services/authentication/auth.service");
84
- const _refreshtokenservice = require("./services/authentication/refresh-token.service");
84
+ const _refreshtokenservice = require("./services/mongoose/refresh-token.service");
85
85
  const _pluginthrottling = require("@octokit/plugin-throttling");
86
86
  const _refreshtokenservice1 = require("./services/orm/refresh-token.service");
87
87
  const _settingsservice1 = require("./services/orm/settings.service");
@@ -2,25 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- CameraStreamController: function() {
5
+ Object.defineProperty(exports, "CameraStreamController", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return CameraStreamController;
14
- },
15
- default: function() {
16
- return _default;
17
9
  }
18
10
  });
19
- const _awilixexpress = require("awilix-express");
11
+ const _awilixroutercore = require("awilix-router-core");
20
12
  const _serverconstants = require("../server.constants");
21
13
  const _validators = require("../handlers/validators");
22
14
  const _genericvalidation = require("./validation/generic.validation");
23
15
  const _authenticate = require("../middleware/authenticate");
16
+ const _express = require("express");
17
+ const _authorizationconstants = require("../constants/authorization.constants");
18
+ function _ts_decorate(decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ }
24
+ function _ts_metadata(k, v) {
25
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
+ }
24
27
  class CameraStreamController {
25
28
  cameraStreamService;
26
29
  isTypeormMode;
@@ -52,8 +55,69 @@ class CameraStreamController {
52
55
  res.send();
53
56
  }
54
57
  }
55
- const _default = (0, _awilixexpress.createController)(CameraStreamController).prefix(_serverconstants.AppConstants.apiRoute + "/camera-stream").before([
56
- (0, _authenticate.authenticate)()
57
- ]).get("/", "list").get("/:id", "get").post("/", "create").delete("/:id", "delete").put("/:id", "update");
58
+ _ts_decorate([
59
+ (0, _awilixroutercore.GET)(),
60
+ (0, _awilixroutercore.route)("/"),
61
+ _ts_metadata("design:type", Function),
62
+ _ts_metadata("design:paramtypes", [
63
+ typeof _express.Request === "undefined" ? Object : _express.Request,
64
+ typeof _express.Response === "undefined" ? Object : _express.Response
65
+ ]),
66
+ _ts_metadata("design:returntype", Promise)
67
+ ], CameraStreamController.prototype, "list", null);
68
+ _ts_decorate([
69
+ (0, _awilixroutercore.GET)(),
70
+ (0, _awilixroutercore.route)("/:id"),
71
+ _ts_metadata("design:type", Function),
72
+ _ts_metadata("design:paramtypes", [
73
+ typeof _express.Request === "undefined" ? Object : _express.Request,
74
+ typeof _express.Response === "undefined" ? Object : _express.Response
75
+ ]),
76
+ _ts_metadata("design:returntype", Promise)
77
+ ], CameraStreamController.prototype, "get", null);
78
+ _ts_decorate([
79
+ (0, _awilixroutercore.POST)(),
80
+ (0, _awilixroutercore.route)("/"),
81
+ _ts_metadata("design:type", Function),
82
+ _ts_metadata("design:paramtypes", [
83
+ typeof _express.Request === "undefined" ? Object : _express.Request,
84
+ typeof _express.Response === "undefined" ? Object : _express.Response
85
+ ]),
86
+ _ts_metadata("design:returntype", Promise)
87
+ ], CameraStreamController.prototype, "create", null);
88
+ _ts_decorate([
89
+ (0, _awilixroutercore.PUT)(),
90
+ (0, _awilixroutercore.route)("/:id"),
91
+ _ts_metadata("design:type", Function),
92
+ _ts_metadata("design:paramtypes", [
93
+ typeof _express.Request === "undefined" ? Object : _express.Request,
94
+ typeof _express.Response === "undefined" ? Object : _express.Response
95
+ ]),
96
+ _ts_metadata("design:returntype", Promise)
97
+ ], CameraStreamController.prototype, "update", null);
98
+ _ts_decorate([
99
+ (0, _awilixroutercore.DELETE)(),
100
+ (0, _awilixroutercore.route)("/:id"),
101
+ _ts_metadata("design:type", Function),
102
+ _ts_metadata("design:paramtypes", [
103
+ typeof _express.Request === "undefined" ? Object : _express.Request,
104
+ typeof _express.Response === "undefined" ? Object : _express.Response
105
+ ]),
106
+ _ts_metadata("design:returntype", Promise)
107
+ ], CameraStreamController.prototype, "delete", null);
108
+ CameraStreamController = _ts_decorate([
109
+ (0, _awilixroutercore.route)(`${_serverconstants.AppConstants.apiRoute}/camera-stream`),
110
+ (0, _awilixroutercore.before)([
111
+ (0, _authenticate.authenticate)(),
112
+ (0, _authenticate.authorizeRoles)([
113
+ _authorizationconstants.ROLES.OPERATOR,
114
+ _authorizationconstants.ROLES.ADMIN
115
+ ])
116
+ ]),
117
+ _ts_metadata("design:type", Function),
118
+ _ts_metadata("design:paramtypes", [
119
+ Object
120
+ ])
121
+ ], CameraStreamController);
58
122
 
59
123
  //# sourceMappingURL=camera-stream.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/camera-stream.controller.ts"],"names":["CameraStreamController","cameraStreamService","isTypeormMode","constructor","list","req","res","result","send","map","item","toDto","get","id","validateInput","params","idRulesV2","create","body","update","delete","createController","prefix","AppConstants","apiRoute","before","authenticate","post","put"],"mappings":";;;;;;;;;;;IAQaA,sBAAsB;eAAtBA;;IAsCb,OAOyB;eAPzB;;;+BA9CiC;iCACJ;4BACC;mCACJ;8BACG;AAItB,MAAMA;IACHC,oBAA0C;IACjCC,cAAuB;IAExCC,YAAY,EAAEF,mBAAmB,EAAEC,aAAa,EAAyE,CAAE;QACzH,IAAI,CAACD,mBAAmB,GAAGA;QAC3B,IAAI,CAACC,aAAa,GAAGA;IACvB;IAEA,MAAME,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACG,IAAI;QAClDE,IAAIE,IAAI,CAACD,OAAOE,GAAG,CAAC,CAACC,OAAS,IAAI,CAACT,mBAAmB,CAACU,KAAK,CAACD;IAC/D;IAEA,MAAME,IAAIP,GAAY,EAAEC,GAAa,EAAE;QACrC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAMK,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACW,GAAG,CAACC;QAClDP,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAAMU,OAAOZ,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAMC,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACgB,MAAM,CAACZ,IAAIa,IAAI;QAC7DZ,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAAMY,OAAOd,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAMK,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACkB,MAAM,CAACN,IAAIR,IAAIa,IAAI;QACjEZ,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAAMa,OAAOf,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAM,IAAI,CAACD,mBAAmB,CAACmB,MAAM,CAACP;QACtCP,IAAIE,IAAI;IACV;AACF;MAEA,WAAea,IAAAA,+BAAgB,EAACrB,wBAC7BsB,MAAM,CAACC,6BAAY,CAACC,QAAQ,GAAG,kBAC/BC,MAAM,CAAC;IAACC,IAAAA,0BAAY;CAAG,EACvBd,GAAG,CAAC,KAAK,QACTA,GAAG,CAAC,QAAQ,OACZe,IAAI,CAAC,KAAK,UACVP,MAAM,CAAC,QAAQ,UACfQ,GAAG,CAAC,QAAQ"}
1
+ {"version":3,"sources":["../../src/controllers/camera-stream.controller.ts"],"names":["CameraStreamController","cameraStreamService","isTypeormMode","constructor","list","req","res","result","send","map","item","toDto","get","id","validateInput","params","idRulesV2","create","body","update","delete","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","OPERATOR","ADMIN"],"mappings":";;;;+BAWaA;;;eAAAA;;;kCAXyC;iCACzB;4BACC;mCACJ;8BACmB;yBACX;wCAEZ;;;;;;;;;;AAIf,MAAMA;IACMC,oBAA0C;IAC1CC,cAAuB;IAExCC,YAAY,EAAEF,mBAAmB,EAAEC,aAAa,EAAyE,CAAE;QACzH,IAAI,CAACD,mBAAmB,GAAGA;QAC3B,IAAI,CAACC,aAAa,GAAGA;IACvB;IAEA,MAEME,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACG,IAAI;QAClDE,IAAIE,IAAI,CAACD,OAAOE,GAAG,CAAC,CAACC,OAAS,IAAI,CAACT,mBAAmB,CAACU,KAAK,CAACD;IAC/D;IAEA,MAEME,IAAIP,GAAY,EAAEC,GAAa,EAAE;QACrC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAMK,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACW,GAAG,CAACC;QAClDP,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAEMU,OAAOZ,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAMC,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACgB,MAAM,CAACZ,IAAIa,IAAI;QAC7DZ,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAEMY,OAAOd,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAMK,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACkB,MAAM,CAACN,IAAIR,IAAIa,IAAI;QACjEZ,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAEMa,OAAOf,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAM,IAAI,CAACD,mBAAmB,CAACmB,MAAM,CAACP;QACtCP,IAAIE,IAAI;IACV;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAhDUa,6BAAY,CAACC,QAAQ,CAAC,cAAc;;QACrCC,IAAAA,0BAAY;QAAIC,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,QAAQ;YAAED,6BAAK,CAACE,KAAK;SAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/mongoose/permission.service.ts"],"names":["PermissionService","logger","constructor","loggerFactory","name","_permissions","permissions","toDto","permission","id","authorizePermission","requiredPermission","assignedPermissions","find","assignedPermission","normalizePermission","getPermissionByName","permissionName","r","NotFoundException","getPermission","permissionId","syncPermissions","permissionDefinition","flattenPermissionDefinition","storedPermission","Permission","findOne","newPermission","create","push","permissionInstance","warn"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATc;wCACiB;mCACV;AAO3B,MAAMA;IACHC,OAAsB;IAE9BC,YAAY,EAAEC,aAAa,EAAqC,CAAE;QAChE,IAAI,CAACF,MAAM,GAAGE,cAAcH,kBAAkBI,IAAI;IACpD;IAEQC,eAA8B,EAAE,CAAC;IAEzC,IAAIC,cAAc;QAChB,OAAO,IAAI,CAACD,YAAY;IAC1B;IAEAE,MAAMC,UAAuB,EAAE;QAC7B,OAAO;YACLC,IAAID,WAAWC,EAAE;YACjBL,MAAMI,WAAWJ,IAAI;QACvB;IACF;IAEAM,oBAAoBC,kBAA0B,EAAEC,mBAA6B,EAAE;QAC7E,OAAO,CAAC,CAACA,oBAAoBC,IAAI,CAAC,CAACC;YACjC,MAAMC,sBAAsB,IAAI,CAACA,mBAAmB,CAACD;YACrD,IAAI,CAACC,qBAAqB,OAAO;YACjC,OAAOA,wBAAwBJ;QACjC;IACF;IAEA,MAAMK,oBAAoBC,cAAsB,EAAE;QAChD,MAAMT,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAEd,IAAI,KAAKa;QAC3D,IAAI,CAACT,YAAY,MAAM,IAAIW,oCAAiB,CAAC;QAC7C,OAAOX;IACT;IAEA,MAAMY,cAAcC,YAAyB,EAAE;QAC7C,MAAMb,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKY;QACzD,IAAI,CAACb,YAAY,MAAM,IAAIW,oCAAiB,CAAC,CAAC,mCAAmC,CAAC;QAElF,OAAOX;IACT;IAEA,MAAMc,kBAAkB;QACtB,IAAI,CAACjB,YAAY,GAAG,EAAE;QAEtB,MAAMkB,uBAAuBC,IAAAA,mDAA2B;QACxD,KAAK,IAAIhB,cAAce,qBAAsB;YAC3C,MAAME,mBAAmB,MAAMC,kBAAU,CAACC,OAAO,CAAC;gBAAEvB,MAAMI;YAAW;YACrE,IAAI,CAACiB,kBAAkB;gBACrB,MAAMG,gBAAgB,MAAMF,kBAAU,CAACG,MAAM,CAAC;oBAC5CzB,MAAMI;gBACR;gBACA,IAAI,CAACH,YAAY,CAACyB,IAAI,CAACF;YACzB,OAAO;gBACL,IAAI,CAACvB,YAAY,CAACyB,IAAI,CAACL;YACzB;QACF;IACF;IAEAV,oBAAoBD,kBAA0B,EAAE;QAC9C,MAAMiB,qBAAqB,IAAI,CAACzB,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKK,sBAAsBI,EAAEd,IAAI,KAAKU;QAClG,IAAI,CAACiB,oBAAoB;YACvB,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC;YACjB;QACF;QACA,OAAOD,mBAAmB3B,IAAI;IAChC;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/mongoose/refresh-token.service.ts"],"names":["RefreshTokenService","settingsStore","logger","constructor","loggerFactory","name","toDto","entity","id","userId","toString","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","throwNotFoundError","userRefreshToken","RefreshToken","findOne","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","updateOne","new","purgeOutdatedRefreshTokensByUserId","result","deleteMany","$lt","deletedCount","debug","purgeAllOutdatedRefreshTokens","deleteRefreshTokenByUserId","deleteRefreshToken","deleteOne"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/mongoose/role.service.ts"],"names":["RoleService","settingsStore","appDefaultRole","appDefaultRoleNoLogin","constructor","_roles","roles","toDto","role","id","name","getAppDefaultRole","getLoginRequired","getRolesPermissions","permissions","length","normalizedRole","normalizeRoleIdOrName","rolePermissions","getRolePermissions","union","ROLE_PERMS","getAppDefaultRoleIds","syncRoles","guestRole","getRoleByName","getSynchronizedRoleByName","roleName","authorizeRole","requiredRole","assignedRoles","find","ar","authorizeRoles","requiredRoles","subset","isAuthorized","forEach","rr","result","r","NotFoundException","getManyRoles","roleIds","map","roleId","getRole","Object","values","ROLES","storedRole","Role","findOne","newRole","create","push","assignedRole","roleInstance","console","warn"],"mappings":"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"}
@@ -91,7 +91,7 @@ class UserService {
91
91
  const role = this.roleService.getRoleByName(_authorizationconstants.ROLES.ADMIN);
92
92
  if (user.roles.includes(role.id)) {
93
93
  const administrators = await this.findUsersByRoleId(role.id);
94
- if (administrators?.length === 1) {
94
+ if (administrators?.length === 1 && administrators[0].id === userId) {
95
95
  throw new _runtimeexceptions.InternalServerException("Cannot delete the last user with ADMIN role");
96
96
  }
97
97
  }
@@ -132,7 +132,7 @@ class UserService {
132
132
  if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
133
133
  if (!isRootUser) {
134
134
  const rootUsers = await this.findRootUsers();
135
- if (rootUsers.length === 1) {
135
+ if (rootUsers.length === 1 && rootUsers[0].id === userId) {
136
136
  throw new _runtimeexceptions.InternalServerException("Cannot set the last root user to non-root user");
137
137
  }
138
138
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/mongoose/user.service.ts"],"names":["UserService","roleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","toString","listUsers","limit","User","find","findUsersByRoleId","roleId","$in","findVerifiedUsers","isUserRootUser","userId","findById","findRootUsers","getDemoUserId","findOne","findRawByUsername","getUser","throwNotFoundError","NotFoundException","getUserRoleIds","setUserRoleIds","roleIds","getManyRoles","Array","from","Set","save","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","includes","administrators","length","findByIdAndDelete","updateUsernameById","newUsername","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","setIsRootUserById","rootUsers","setVerifiedById","verifiedUsers","register","input","registerUserRules","create"],"mappings":";;;;+BAYaA;;;eAAAA;;;wBAZQ;mCACsC;4BAC7B;uCACsB;wCAC9B;6BAC4B;AAO3C,MAAMA;IACXC,YAAyB;IAEzBC,YAAY,EAAED,WAAW,EAAgC,CAAE;QACzD,IAAI,CAACA,WAAW,GAAGA;IACrB;IAEAE,MAAMC,IAAW,EAAW;QAC1B,OAAO;YACLC,IAAID,KAAKC,EAAE;YACXC,WAAWF,KAAKE,SAAS;YACzBC,YAAYH,KAAKG,UAAU;YAC3BC,YAAYJ,KAAKI,UAAU;YAC3BC,YAAYL,KAAKK,UAAU;YAC3BC,UAAUN,KAAKM,QAAQ;YACvBC,qBAAqBP,KAAKO,mBAAmB;YAC7CC,OAAOR,KAAKQ,KAAK,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,QAAQ;QACzC;IACF;IAEA,MAAMC,UAAUC,QAAQ,EAAE,EAAE;QAC1B,OAAOC,YAAI,CAACC,IAAI,GAAGF,KAAK,CAACA;IAC3B;IAEA,MAAMG,kBAAkBC,MAAmB,EAAE;QAC3C,OAAOH,YAAI,CAACC,IAAI,CAAC;YAAEP,OAAO;gBAAEU,KAAK;oBAACD;iBAAO;YAAC;QAAE;IAC9C;IAEA,MAAME,oBAAoB;QACxB,OAAOL,YAAI,CAACC,IAAI,CAAC;YAAEZ,YAAY;QAAK;IACtC;IAEA,MAAMiB,eAAeC,MAAmB,EAAE;QACxC,OAAQ,CAAA,MAAMP,YAAI,CAACQ,QAAQ,CAACD,OAAM,GAAIhB;IACxC;IAEA,MAAMkB,gBAAgB;QACpB,OAAOT,YAAI,CAACC,IAAI,CAAC;YAAEV,YAAY;QAAK;IACtC;IAEA,MAAMmB,gBAAgB;QACpB,OAAQ,CAAA,MAAMV,YAAI,CAACW,OAAO,CAAC;YAAErB,YAAY;QAAK,EAAC,GAAIH;IACrD;IAEA,MAAMyB,kBAAkBpB,QAAgB,EAAE;QACxC,OAAOQ,YAAI,CAACW,OAAO,CAAC;YAClBnB;QACF;IACF;IAEA,MAAMqB,QAAQN,MAAmB,EAAEO,qBAA8B,IAAI,EAAkB;QACrF,MAAM5B,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,QAAQ4B,oBAAoB,MAAM,IAAIC,oCAAiB,CAAC;QAE7D,OAAO7B;IACT;IAEA,MAAM8B,eAAeT,MAAmB,EAAE;QACxC,MAAMrB,OAAO,MAAM,IAAI,CAAC2B,OAAO,CAACN;QAChC,OAAOrB,KAAKQ,KAAK,EAAEC,IAAI,CAACC,IAAMA,EAAEC,QAAQ;IAC1C;IAEA,MAAMoB,eAAeV,MAAmB,EAAEW,OAAsB,EAAkB;QAChF,MAAMhC,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QACvC,MAAMrB,QAAQ,IAAI,CAACX,WAAW,CAACoC,YAAY,CAACD;QAE5ChC,KAAKQ,KAAK,GAAGA,MAAMC,GAAG,CAAC,CAACC,IAAMA,EAAET,EAAE;QAClCD,KAAKQ,KAAK,GAAG0B,MAAMC,IAAI,CAAC,IAAIC,IAAIpC,KAAKQ,KAAK;QAE1C,OAAO,MAAMR,KAAKqC,IAAI;IACxB;IAEA,MAAMC,WAAWjB,MAAmB,EAAE;QAEpC,MAAMrB,OAAO,MAAM,IAAI,CAAC2B,OAAO,CAACN;QAEhC,IAAIrB,KAAKK,UAAU,EAAE;YACnB,MAAM,IAAIkC,0CAAuB,CAAC;QACpC;QAGA,MAAMC,OAAO,IAAI,CAAC3C,WAAW,CAAC4C,aAAa,CAACC,6BAAK,CAACC,KAAK;QACvD,IAAI3C,KAAKQ,KAAK,CAACoC,QAAQ,CAACJ,KAAKvC,EAAE,GAAG;YAChC,MAAM4C,iBAAiB,MAAM,IAAI,CAAC7B,iBAAiB,CAACwB,KAAKvC,EAAE;YAC3D,IAAI4C,gBAAgBC,WAAW,KAAKD,cAAc,CAAC,EAAE,CAAC5C,EAAE,KAAKoB,QAAQ;gBACnE,MAAM,IAAIkB,0CAAuB,CAAC;YACpC;QACF;QAEA,MAAMzB,YAAI,CAACiC,iBAAiB,CAAC/C,KAAKC,EAAE;IACtC;IAEA,MAAM+C,mBAAmB3B,MAAmB,EAAE4B,WAAmB,EAAE;QACjE,MAAMjD,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC7B,KAAKM,QAAQ,GAAG2C;QAChB,OAAO,MAAMjD,KAAKqC,IAAI;IACxB;IAEA,MAAMa,mBAAmB7B,MAAmB,EAAE8B,WAAmB,EAAEC,WAAmB,EAAE;QACtF,MAAMpD,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC,IAAI,CAACwB,IAAAA,gCAAmB,EAACF,aAAanD,KAAKsD,YAAY,GAAG;YACxD,MAAM,IAAIzB,oCAAiB,CAAC;QAC9B;QAEA,MAAM,EAAE0B,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUH;QAAY,GAAGK,uCAAgB;QACpFzD,KAAKsD,YAAY,GAAGI,IAAAA,yBAAY,EAACH;QACjCvD,KAAKO,mBAAmB,GAAG;QAC3B,OAAO,MAAMP,KAAKqC,IAAI;IACxB;IAEA,MAAMsB,+BAA+BrD,QAAgB,EAAE8C,WAAmB,EAAE;QAC1E,MAAM,EAAEG,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUH;QAAY,GAAGK,uCAAgB;QACpF,MAAMH,eAAeI,IAAAA,yBAAY,EAACH;QAClC,MAAMvD,OAAO,MAAM,IAAI,CAAC0B,iBAAiB,CAACpB;QAC1C,IAAI,CAACN,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC7B,KAAKsD,YAAY,GAAGA;QACpBtD,KAAKO,mBAAmB,GAAG;QAC3B,OAAO,MAAMP,KAAKqC,IAAI;IACxB;IAEA,MAAMuB,kBAAkBvC,MAAmB,EAAEhB,UAAmB,EAAE;QAChE,MAAML,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC,IAAI,CAACxB,YAAY;YAEf,MAAMwD,YAAY,MAAM,IAAI,CAACtC,aAAa;YAC1C,IAAIsC,UAAUf,MAAM,KAAK,KAAKe,SAAS,CAAC,EAAE,CAAC5D,EAAE,KAAKoB,QAAQ;gBACxD,MAAM,IAAIkB,0CAAuB,CAAC;YACpC;QACF;QAEAvC,KAAKK,UAAU,GAAGA;QAClB,MAAML,KAAKqC,IAAI;IACjB;IAEA,MAAMyB,gBAAgBzC,MAAmB,EAAElB,UAAmB,EAAE;QAC9D,MAAMH,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC,IAAI,CAAC1B,YAAY;YACf,IAAIH,KAAKK,UAAU,EAAE;gBACnB,MAAM,IAAIkC,0CAAuB,CAAC;YACpC;YAGA,MAAMwB,gBAAgB,MAAM,IAAI,CAAC5C,iBAAiB;YAClD,IAAI4C,cAAcjB,MAAM,KAAK,GAAG;gBAC9B,MAAM,IAAIP,0CAAuB,CAAC;YACpC;QACF;QAEAvC,KAAKG,UAAU,GAAGA;QAClB,MAAMH,KAAKqC,IAAI;IACjB;IAEA,MAAM2B,SAASC,KAAmC,EAAE;QAClD,MAAM,EAAE3D,QAAQ,EAAEiD,QAAQ,EAAE/C,KAAK,EAAEJ,UAAU,EAAEC,UAAU,EAAEE,mBAAmB,EAAEJ,UAAU,EAAE,GAAG,MAAMqD,IAAAA,yBAAa,EAChHS,OACAC,IAAAA,wCAAiB,EAAC;QAGpB,MAAMZ,eAAeI,IAAAA,yBAAY,EAACH;QAClC,OAAO,MAAMzC,YAAI,CAACqD,MAAM,CAAC;YACvB7D;YACAgD;YACA9C;YACAL,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BE,qBAAqBA,uBAAuB;QAC9C;IACF;AACF"}
@@ -16,14 +16,17 @@ const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
16
16
  const _validators = require("../../handlers/validators");
17
17
  const _userservicevalidation = require("../validators/user-service.validation");
18
18
  const _cryptoutils = require("../../utils/crypto.utils");
19
+ const _authorizationconstants = require("../../constants/authorization.constants");
19
20
  class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto.UserDto) {
20
21
  typeormService;
21
22
  userRoleService;
22
- constructor({ typeormService, userRoleService }){
23
+ roleService;
24
+ constructor({ typeormService, userRoleService, roleService }){
23
25
  super({
24
26
  typeormService
25
27
  });
26
28
  this.userRoleService = userRoleService;
29
+ this.roleService = roleService;
27
30
  }
28
31
  toDto(user) {
29
32
  return {
@@ -70,8 +73,19 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
70
73
  const entity = await this.get(userId);
71
74
  return entity.isRootUser;
72
75
  }
73
- deleteUser(userId) {
74
- return this.delete(userId);
76
+ async deleteUser(userId) {
77
+ const user = await this.getUser(userId);
78
+ if (user.isRootUser) {
79
+ throw new _runtimeexceptions.InternalServerException("Cannot delete a root user");
80
+ }
81
+ const role = this.roleService.getRoleByName(_authorizationconstants.ROLES.ADMIN);
82
+ if (user.roles.find((r)=>r.roleId == role.id)) {
83
+ const administrators = await this.findUsersByRoleId(role.id);
84
+ if (administrators?.length === 1 && administrators[0].id === userId) {
85
+ throw new _runtimeexceptions.InternalServerException("Cannot delete the last user with ADMIN role");
86
+ }
87
+ }
88
+ return await this.delete(userId);
75
89
  }
76
90
  findRawByUsername(username) {
77
91
  return this.repository.findOneBy({
@@ -84,6 +98,14 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
84
98
  }))?.id;
85
99
  }
86
100
  async setIsRootUserById(userId, isRootUser) {
101
+ const user = await this.getUser(userId);
102
+ if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
103
+ if (!isRootUser) {
104
+ const rootUsers = await this.findRootUsers();
105
+ if (rootUsers.length === 1 && rootUsers[0].id === userId) {
106
+ throw new _runtimeexceptions.InternalServerException("Cannot set the last root user to non-root user");
107
+ }
108
+ }
87
109
  await this.update(userId, {
88
110
  isRootUser
89
111
  });
@@ -93,12 +115,24 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
93
115
  return await this.get(userId, true);
94
116
  }
95
117
  async setVerifiedById(userId, isVerified) {
118
+ const user = await this.getUser(userId);
119
+ if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
120
+ if (!isVerified) {
121
+ if (user.isRootUser) {
122
+ throw new _runtimeexceptions.InternalServerException("Cannot set a owner (root user) to unverified");
123
+ }
124
+ const verifiedUsers = await this.findVerifiedUsers();
125
+ if (verifiedUsers.length === 1) {
126
+ throw new _runtimeexceptions.InternalServerException("Cannot set the last user to unverified");
127
+ }
128
+ }
96
129
  await this.update(userId, {
97
130
  isVerified
98
131
  });
99
132
  }
100
133
  async updatePasswordById(userId, oldPassword, newPassword) {
101
134
  const user = await this.getUser(userId);
135
+ if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
102
136
  if (!(0, _cryptoutils.comparePasswordHash)(oldPassword, user.passwordHash)) {
103
137
  throw new _runtimeexceptions.NotFoundException("User old password incorrect");
104
138
  }
@@ -117,6 +151,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
117
151
  }, _userservicevalidation.newPasswordRules);
118
152
  const passwordHash = (0, _cryptoutils.hashPassword)(password);
119
153
  const user = await this.findRawByUsername(username);
154
+ if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
120
155
  return await this.update(user.id, {
121
156
  passwordHash,
122
157
  needsPasswordChange: false
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","roleId","listUsers","limit","list","take","getUser","userId","get","getUserRoleIds","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findUsersByRoleId","listByRoleId","ids","u","In","findVerifiedUsers","isUserRootUser","entity","deleteUser","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","update","setUserRoleIds","roleIds","setUserRoles","setVerifiedById","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","NotFoundException","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","updateUsernameById","newUsername","register","input","registerUserRules","result","create"],"mappings":";;;;+BAaaA;;;eAAAA;;;6BAbe;yBACa;0BACpB;yBAGY;mCACC;4BACJ;uCACsB;6BACF;AAI3C,MAAMA,oBAAoBC,IAAAA,wBAAW,EAACC,cAAI,EAAEC,gBAAO;IACxDC,eAA+B;IAC/BC,gBAAiC;IAEjCC,YAAY,EAAEF,cAAc,EAAEC,eAAe,EAAwE,CAAE;QACrH,KAAK,CAAC;YAAED;QAAe;QAEvB,IAAI,CAACC,eAAe,GAAGA;IACzB;IAEAE,MAAMC,IAAU,EAAyB;QACvC,OAAO;YACLC,IAAID,KAAKC,EAAE;YACXC,WAAWF,KAAKE,SAAS;YACzBC,YAAYH,KAAKG,UAAU;YAC3BC,YAAYJ,KAAKI,UAAU;YAC3BC,YAAYL,KAAKK,UAAU;YAC3BC,UAAUN,KAAKM,QAAQ;YACvBC,qBAAqBP,KAAKO,mBAAmB;YAC7CC,OAAOR,KAAKQ,KAAK,EAAEC,IAAI,CAACC,IAAMA,EAAEC,MAAM;QACxC;IACF;IAEAC,UAAUC,KAAc,EAAmB;QACzC,OAAO,IAAI,CAACC,IAAI,CAAC;YAAEC,MAAMF;QAAM;IACjC;IAEAG,QAAQC,MAAoB,EAAiB;QAC3C,OAAO,IAAI,CAACC,GAAG,CAACD,QAAQ;IAC1B;IAEA,MAAME,eAAeF,MAAoB,EAA2B;QAClE,MAAMG,YAAY,MAAM,IAAI,CAACvB,eAAe,CAACwB,aAAa,CAACJ;QAC3D,OAAOG,UAAUX,GAAG,CAAC,CAACa,KAAOA,GAAGX,MAAM;IACxC;IAEAY,gBAAiC;QAC/B,OAAO,IAAI,CAACC,UAAU,CAACC,MAAM,CAAC;YAAEpB,YAAY;QAAK;IACnD;IAEA,MAAMqB,kBAAkBf,MAAoB,EAAmB;QAC7D,MAAMS,YAAY,MAAM,IAAI,CAACvB,eAAe,CAAC8B,YAAY,CAAChB;QAC1D,MAAMiB,MAAMR,UAAUX,GAAG,CAAC,CAACoB,IAAMA,EAAE5B,EAAE;QACrC,OAAO,IAAI,CAACuB,UAAU,CAACC,MAAM,CAAC;YAAExB,IAAI6B,IAAAA,WAAE,EAACF;QAAK;IAC9C;IAEAG,oBAAqC;QACnC,OAAO,IAAI,CAACP,UAAU,CAACC,MAAM,CAAC;YAAEtB,YAAY;QAAK;IACnD;IAEA,MAAM6B,eAAef,MAAoB,EAAoB;QAC3D,MAAMgB,SAAS,MAAM,IAAI,CAACf,GAAG,CAACD;QAC9B,OAAOgB,OAAO5B,UAAU;IAC1B;IAEA6B,WAAWjB,MAAoB,EAAyB;QACtD,OAAO,IAAI,CAACkB,MAAM,CAAClB;IACrB;IAEAmB,kBAAkB9B,QAAgB,EAAiB;QACjD,OAAO,IAAI,CAACkB,UAAU,CAACa,SAAS,CAAC;YAAE/B;QAAS;IAC9C;IAEA,MAAMgC,gBAAuC;QAC3C,OAAQ,CAAA,MAAM,IAAI,CAACd,UAAU,CAACa,SAAS,CAAC;YAAEjC,YAAY;QAAK,EAAC,GAAIH;IAClE;IAEA,MAAMsC,kBAAkBtB,MAAoB,EAAEZ,UAAmB,EAAiB;QAChF,MAAM,IAAI,CAACmC,MAAM,CAACvB,QAAQ;YAAEZ;QAAW;IACzC;IAEA,MAAMoC,eAAexB,MAAoB,EAAEyB,OAAuB,EAAiB;QACjF,MAAM,IAAI,CAAC7C,eAAe,CAAC8C,YAAY,CAAC1B,QAAQyB;QAChD,OAAO,MAAM,IAAI,CAACxB,GAAG,CAACD,QAAQ;IAChC;IAEA,MAAM2B,gBAAgB3B,MAAoB,EAAEd,UAAmB,EAAiB;QAC9E,MAAM,IAAI,CAACqC,MAAM,CAACvB,QAAQ;YAAEd;QAAW;IACzC;IAEA,MAAM0C,mBAAmB5B,MAAoB,EAAE6B,WAAmB,EAAEC,WAAmB,EAAiB;QACtG,MAAM/C,OAAO,MAAM,IAAI,CAACgB,OAAO,CAACC;QAChC,IAAI,CAAC+B,IAAAA,gCAAmB,EAACF,aAAa9C,KAAKiD,YAAY,GAAG;YACxD,MAAM,IAAIC,oCAAiB,CAAC;QAC9B;QAEA,MAAM,EAAEC,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUJ;QAAY,GAAGM,uCAAgB;QACpF,MAAMJ,eAAeK,IAAAA,yBAAY,EAACH;QAClC,OAAO,MAAM,IAAI,CAACX,MAAM,CAACvB,QAAQ;YAAEgC;YAAc1C,qBAAqB;QAAM;IAC9E;IAEA,MAAMgD,+BAA+BjD,QAAgB,EAAEyC,WAAmB,EAAiB;QACzF,MAAM,EAAEI,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUJ;QAAY,GAAGM,uCAAgB;QACpF,MAAMJ,eAAeK,IAAAA,yBAAY,EAACH;QAClC,MAAMnD,OAAO,MAAM,IAAI,CAACoC,iBAAiB,CAAC9B;QAC1C,OAAO,MAAM,IAAI,CAACkC,MAAM,CAACxC,KAAKC,EAAE,EAAE;YAAEgD;YAAc1C,qBAAqB;QAAM;IAC/E;IAEAiD,mBAAmBvC,MAAoB,EAAEwC,WAAmB,EAAiB;QAC3E,OAAO,IAAI,CAACjB,MAAM,CAACvB,QAAQ;YAAEX,UAAUmD;QAAY;IACrD;IAEA,MAAMC,SAASC,KAAoC,EAAiB;QAClE,MAAM,EAAErD,QAAQ,EAAE6C,QAAQ,EAAE3C,KAAK,EAAEJ,UAAU,EAAEC,UAAU,EAAEE,mBAAmB,EAAEJ,UAAU,EAAE,GAAI,MAAMiD,IAAAA,yBAAa,EACjHO,OACAC,IAAAA,wCAAiB,EAAC;QAGpB,MAAMX,eAAeK,IAAAA,yBAAY,EAACH;QAClC,MAAMU,SAAS,MAAM,IAAI,CAACC,MAAM,CAAC;YAC/BxD;YACA2C;YACA9C,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BE,qBAAqBA,uBAAuB;QAC9C;QACA,MAAM,IAAI,CAACV,eAAe,CAAC8C,YAAY,CAACkB,OAAO5D,EAAE,EAAEO;QAEnD,OAAO,IAAI,CAACU,GAAG,CAAC2C,OAAO5D,EAAE;IAC3B;AACF"}
1
+ {"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","roleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","roleId","listUsers","limit","list","take","getUser","userId","get","getUserRoleIds","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findUsersByRoleId","listByRoleId","ids","u","In","findVerifiedUsers","isUserRootUser","entity","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","find","administrators","length","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","NotFoundException","rootUsers","update","setUserRoleIds","roleIds","setUserRoles","setVerifiedById","verifiedUsers","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","updateUsernameById","newUsername","register","input","registerUserRules","result","create"],"mappings":";;;;+BAeaA;;;eAAAA;;;6BAfe;yBACa;0BACpB;yBAGY;mCAC0B;4BAC7B;uCACsB;6BACF;wCAG5B;AAGf,MAAMA,oBAAoBC,IAAAA,wBAAW,EAACC,cAAI,EAAEC,gBAAO;IACxDC,eAA+B;IAC/BC,gBAAiC;IACjCC,YAAyB;IAEzBC,YAAY,EACVH,cAAc,EACdC,eAAe,EACfC,WAAW,EAKZ,CAAE;QACD,KAAK,CAAC;YAAEF;QAAe;QAEvB,IAAI,CAACC,eAAe,GAAGA;QACvB,IAAI,CAACC,WAAW,GAAGA;IACrB;IAEAE,MAAMC,IAAU,EAAyB;QACvC,OAAO;YACLC,IAAID,KAAKC,EAAE;YACXC,WAAWF,KAAKE,SAAS;YACzBC,YAAYH,KAAKG,UAAU;YAC3BC,YAAYJ,KAAKI,UAAU;YAC3BC,YAAYL,KAAKK,UAAU;YAC3BC,UAAUN,KAAKM,QAAQ;YACvBC,qBAAqBP,KAAKO,mBAAmB;YAC7CC,OAAOR,KAAKQ,KAAK,EAAEC,IAAI,CAACC,IAAMA,EAAEC,MAAM;QACxC;IACF;IAEAC,UAAUC,KAAc,EAAmB;QACzC,OAAO,IAAI,CAACC,IAAI,CAAC;YAAEC,MAAMF;QAAM;IACjC;IAEAG,QAAQC,MAAoB,EAAiB;QAC3C,OAAO,IAAI,CAACC,GAAG,CAACD,QAAQ;IAC1B;IAEA,MAAME,eAAeF,MAAoB,EAA2B;QAClE,MAAMG,YAAY,MAAM,IAAI,CAACxB,eAAe,CAACyB,aAAa,CAACJ;QAC3D,OAAOG,UAAUX,GAAG,CAAC,CAACa,KAAOA,GAAGX,MAAM;IACxC;IAEAY,gBAAiC;QAC/B,OAAO,IAAI,CAACC,UAAU,CAACC,MAAM,CAAC;YAAEpB,YAAY;QAAK;IACnD;IAEA,MAAMqB,kBAAkBf,MAAoB,EAAmB;QAC7D,MAAMS,YAAY,MAAM,IAAI,CAACxB,eAAe,CAAC+B,YAAY,CAAChB;QAC1D,MAAMiB,MAAMR,UAAUX,GAAG,CAAC,CAACoB,IAAMA,EAAE5B,EAAE;QACrC,OAAO,IAAI,CAACuB,UAAU,CAACC,MAAM,CAAC;YAAExB,IAAI6B,IAAAA,WAAE,EAACF;QAAK;IAC9C;IAEAG,oBAAqC;QACnC,OAAO,IAAI,CAACP,UAAU,CAACC,MAAM,CAAC;YAAEtB,YAAY;QAAK;IACnD;IAEA,MAAM6B,eAAef,MAAoB,EAAoB;QAC3D,MAAMgB,SAAS,MAAM,IAAI,CAACf,GAAG,CAACD;QAC9B,OAAOgB,OAAO5B,UAAU;IAC1B;IAEA,MAAM6B,WAAWjB,MAAoB,EAAyB;QAE5D,MAAMjB,OAAO,MAAM,IAAI,CAACgB,OAAO,CAACC;QAEhC,IAAIjB,KAAKK,UAAU,EAAE;YACnB,MAAM,IAAI8B,0CAAuB,CAAC;QACpC;QAGA,MAAMC,OAAO,IAAI,CAACvC,WAAW,CAACwC,aAAa,CAACC,6BAAK,CAACC,KAAK;QACvD,IAAIvC,KAAKQ,KAAK,CAACgC,IAAI,CAAC,CAAC9B,IAAMA,EAAEC,MAAM,IAAIyB,KAAKnC,EAAE,GAAG;YAC/C,MAAMwC,iBAAiB,MAAM,IAAI,CAACf,iBAAiB,CAACU,KAAKnC,EAAE;YAC3D,IAAIwC,gBAAgBC,WAAW,KAAKD,cAAc,CAAC,EAAE,CAACxC,EAAE,KAAKgB,QAAQ;gBACnE,MAAM,IAAIkB,0CAAuB,CAAC;YACpC;QACF;QAEA,OAAO,MAAM,IAAI,CAACQ,MAAM,CAAC1B;IAC3B;IAEA2B,kBAAkBtC,QAAgB,EAAiB;QACjD,OAAO,IAAI,CAACkB,UAAU,CAACqB,SAAS,CAAC;YAAEvC;QAAS;IAC9C;IAEA,MAAMwC,gBAAuC;QAC3C,OAAQ,CAAA,MAAM,IAAI,CAACtB,UAAU,CAACqB,SAAS,CAAC;YAAEzC,YAAY;QAAK,EAAC,GAAIH;IAClE;IAEA,MAAM8C,kBAAkB9B,MAAoB,EAAEZ,UAAmB,EAAiB;QAChF,MAAML,OAAO,MAAM,IAAI,CAACgB,OAAO,CAACC;QAChC,IAAI,CAACjB,MAAM,MAAM,IAAIgD,oCAAiB,CAAC;QAEvC,IAAI,CAAC3C,YAAY;YAEf,MAAM4C,YAAY,MAAM,IAAI,CAAC1B,aAAa;YAC1C,IAAI0B,UAAUP,MAAM,KAAK,KAAKO,SAAS,CAAC,EAAE,CAAChD,EAAE,KAAKgB,QAAQ;gBACxD,MAAM,IAAIkB,0CAAuB,CAAC;YACpC;QACF;QAEA,MAAM,IAAI,CAACe,MAAM,CAACjC,QAAQ;YAAEZ;QAAW;IACzC;IAEA,MAAM8C,eAAelC,MAAoB,EAAEmC,OAAuB,EAAiB;QACjF,MAAM,IAAI,CAACxD,eAAe,CAACyD,YAAY,CAACpC,QAAQmC;QAChD,OAAO,MAAM,IAAI,CAAClC,GAAG,CAACD,QAAQ;IAChC;IAEA,MAAMqC,gBAAgBrC,MAAoB,EAAEd,UAAmB,EAAiB;QAC9E,MAAMH,OAAO,MAAM,IAAI,CAACgB,OAAO,CAACC;QAChC,IAAI,CAACjB,MAAM,MAAM,IAAIgD,oCAAiB,CAAC;QAEvC,IAAI,CAAC7C,YAAY;YACf,IAAIH,KAAKK,UAAU,EAAE;gBACnB,MAAM,IAAI8B,0CAAuB,CAAC;YACpC;YAGA,MAAMoB,gBAAgB,MAAM,IAAI,CAACxB,iBAAiB;YAClD,IAAIwB,cAAcb,MAAM,KAAK,GAAG;gBAC9B,MAAM,IAAIP,0CAAuB,CAAC;YACpC;QACF;QAEA,MAAM,IAAI,CAACe,MAAM,CAACjC,QAAQ;YAAEd;QAAW;IACzC;IAEA,MAAMqD,mBAAmBvC,MAAoB,EAAEwC,WAAmB,EAAEC,WAAmB,EAAiB;QACtG,MAAM1D,OAAO,MAAM,IAAI,CAACgB,OAAO,CAACC;QAChC,IAAI,CAACjB,MAAM,MAAM,IAAIgD,oCAAiB,CAAC;QAEvC,IAAI,CAACW,IAAAA,gCAAmB,EAACF,aAAazD,KAAK4D,YAAY,GAAG;YACxD,MAAM,IAAIZ,oCAAiB,CAAC;QAC9B;QAEA,MAAM,EAAEa,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUH;QAAY,GAAGK,uCAAgB;QACpF,MAAMH,eAAeI,IAAAA,yBAAY,EAACH;QAClC,OAAO,MAAM,IAAI,CAACX,MAAM,CAACjC,QAAQ;YAAE2C;YAAcrD,qBAAqB;QAAM;IAC9E;IAEA,MAAM0D,+BAA+B3D,QAAgB,EAAEoD,WAAmB,EAAiB;QACzF,MAAM,EAAEG,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUH;QAAY,GAAGK,uCAAgB;QACpF,MAAMH,eAAeI,IAAAA,yBAAY,EAACH;QAClC,MAAM7D,OAAO,MAAM,IAAI,CAAC4C,iBAAiB,CAACtC;QAC1C,IAAI,CAACN,MAAM,MAAM,IAAIgD,oCAAiB,CAAC;QAEvC,OAAO,MAAM,IAAI,CAACE,MAAM,CAAClD,KAAKC,EAAE,EAAE;YAAE2D;YAAcrD,qBAAqB;QAAM;IAC/E;IAEA2D,mBAAmBjD,MAAoB,EAAEkD,WAAmB,EAAiB;QAC3E,OAAO,IAAI,CAACjB,MAAM,CAACjC,QAAQ;YAAEX,UAAU6D;QAAY;IACrD;IAEA,MAAMC,SAASC,KAAoC,EAAiB;QAClE,MAAM,EAAE/D,QAAQ,EAAEuD,QAAQ,EAAErD,KAAK,EAAEJ,UAAU,EAAEC,UAAU,EAAEE,mBAAmB,EAAEJ,UAAU,EAAE,GAAI,MAAM2D,IAAAA,yBAAa,EACjHO,OACAC,IAAAA,wCAAiB,EAAC;QAGpB,MAAMV,eAAeI,IAAAA,yBAAY,EAACH;QAClC,MAAMU,SAAS,MAAM,IAAI,CAACC,MAAM,CAAC;YAC/BlE;YACAsD;YACAzD,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BE,qBAAqBA,uBAAuB;QAC9C;QACA,MAAM,IAAI,CAACX,eAAe,CAACyD,YAAY,CAACkB,OAAOtE,EAAE,EAAEO;QAEnD,OAAO,IAAI,CAACU,GAAG,CAACqD,OAAOtE,EAAE;IAC3B;AACF"}
@@ -44,7 +44,7 @@ const importPrintersFloorsYamlRules = (importPrinters, importFloorGrid, importFl
44
44
  "config.floorComparisonStrategiesByPriority": "required|string|in:name,floor,id",
45
45
  printers: `${!!importPrinters ? "array|minLength:0" : "not"}`,
46
46
  "printers.*.id": "required",
47
- "printers.*.apiKey": `required|length:${_serviceconstants.apiKeyLengthMaxDefault},${_serviceconstants.apiKeyLengthMinDefault}|alphaNumeric`,
47
+ "printers.*.apiKey": `required|length:${_serviceconstants.apiKeyLengthMaxDefault},${_serviceconstants.apiKeyLengthMinDefault}|alphaDash`,
48
48
  "printers.*.printerURL": "required|httpurl",
49
49
  "printers.*.enabled": "boolean",
50
50
  "printers.*.printerType": `integer|in:${_printerapiinterface.OctoprintType},${_printerapiinterface.MoonrakerType}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlRules","importPrinterPositionsRules","importPrintersFloorsYamlRules","exportPrinters","exportFloorGrid","exportFloors","exportGroups","printerComparisonStrategiesByPriority","floorComparisonStrategiesByPriority","notes","importPrinters","importFloorGrid","importFloors","importGroups","version","config","printers","apiKeyLengthMaxDefault","apiKeyLengthMinDefault","OctoprintType","MoonrakerType","floors","groups","isTypeormMode"],"mappings":";;;;;;;;;;;IAGaA,6BAA6B;eAA7BA;;IAsDAC,2BAA2B;eAA3BA;;IApCAC,6BAA6B;eAA7BA;;;kCArBkD;qCAClB;AAEtC,MAAMF,gCAAgC;IAE3CG,gBAAgB;IAChBC,iBAAiB;IACjBC,cAAc;IAEdC,cAAc;IAEdC,uCAAuC;IACvC,2CAA2C;IAC3CC,qCAAqC;IAErCC,OAAO;AAIT;AAEO,MAAMP,gCAAgC,CAC3CQ,gBACAC,iBACAC,cACAC;IAEA,OAAO;QACLC,SAAS;QACTC,QAAQ;QACR,yBAAyB;QACzB,0BAA0B;QAC1B,uBAAuB;QACvB,uBAAuB;QACvB,gDAAgD;QAChD,kDAAkD;QAClD,8CAA8C;QAC9CC,UAAU,GAAG,CAAC,CAACN,iBAAiB,sBAAsB,OAAO;QAC7D,iBAAiB;QACjB,qBAAqB,CAAC,gBAAgB,EAAEO,wCAAsB,CAAC,CAAC,EAAEC,wCAAsB,CAAC,aAAa,CAAC;QACvG,yBAAyB;QACzB,sBAAsB;QACtB,0BAA0B,CAAC,WAAW,EAAEC,kCAAa,CAAC,CAAC,EAAEC,kCAAa,EAAE;QACxE,mBAAmB;QACnBC,QAAQ,GAAG,CAAC,CAACT,eAAe,sBAAsB,OAAO;QACzD,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QAEjBU,QAAQ,GAAG,CAAC,CAACT,eAAe,sBAAsB,OAAO;QACzD,eAAe;QACf,iBAAiB;IAGnB;AACF;AAEO,MAAMZ,8BAA8B,CAACsB,gBAA4B,CAAA;QACtEP,UAAU;QACV,wBAAwB;QAExB,gBAAgB;QAChB,gBAAgB;IAClB,CAAA"}
1
+ {"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlRules","importPrinterPositionsRules","importPrintersFloorsYamlRules","exportPrinters","exportFloorGrid","exportFloors","exportGroups","printerComparisonStrategiesByPriority","floorComparisonStrategiesByPriority","notes","importPrinters","importFloorGrid","importFloors","importGroups","version","config","printers","apiKeyLengthMaxDefault","apiKeyLengthMinDefault","OctoprintType","MoonrakerType","floors","groups","isTypeormMode"],"mappings":";;;;;;;;;;;IAGaA,6BAA6B;eAA7BA;;IAsDAC,2BAA2B;eAA3BA;;IApCAC,6BAA6B;eAA7BA;;;kCArBkD;qCAClB;AAEtC,MAAMF,gCAAgC;IAE3CG,gBAAgB;IAChBC,iBAAiB;IACjBC,cAAc;IAEdC,cAAc;IAEdC,uCAAuC;IACvC,2CAA2C;IAC3CC,qCAAqC;IAErCC,OAAO;AAIT;AAEO,MAAMP,gCAAgC,CAC3CQ,gBACAC,iBACAC,cACAC;IAEA,OAAO;QACLC,SAAS;QACTC,QAAQ;QACR,yBAAyB;QACzB,0BAA0B;QAC1B,uBAAuB;QACvB,uBAAuB;QACvB,gDAAgD;QAChD,kDAAkD;QAClD,8CAA8C;QAC9CC,UAAU,GAAG,CAAC,CAACN,iBAAiB,sBAAsB,OAAO;QAC7D,iBAAiB;QACjB,qBAAqB,CAAC,gBAAgB,EAAEO,wCAAsB,CAAC,CAAC,EAAEC,wCAAsB,CAAC,UAAU,CAAC;QACpG,yBAAyB;QACzB,sBAAsB;QACtB,0BAA0B,CAAC,WAAW,EAAEC,kCAAa,CAAC,CAAC,EAAEC,kCAAa,EAAE;QACxE,mBAAmB;QACnBC,QAAQ,GAAG,CAAC,CAACT,eAAe,sBAAsB,OAAO;QACzD,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QAEjBU,QAAQ,GAAG,CAAC,CAACT,eAAe,sBAAsB,OAAO;QACzD,eAAe;QACf,iBAAiB;IAGnB;AACF;AAEO,MAAMZ,8BAA8B,CAACsB,gBAA4B,CAAA;QACtEP,UAAU;QACV,wBAAwB;QAExB,gBAAgB;QAChB,gBAAgB;IAClB,CAAA"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "author": "David Zwart",
8
8
  "license": "AGPL-3.0-or-later",
9
- "version": "1.7.5",
9
+ "version": "1.7.6",
10
10
  "bin": {
11
11
  "fdm-monster": "dist/index.js",
12
12
  "fdmm": "dist/index.js"
@@ -64,7 +64,7 @@
64
64
  "axios": "1.7.7",
65
65
  "bcryptjs": "2.4.3",
66
66
  "better-sqlite3": "11.5.0",
67
- "cache-manager": "6.1.3",
67
+ "cache-manager": "6.2.0",
68
68
  "class-validator": "0.14.1",
69
69
  "connect-history-api-fallback": "2.0.0",
70
70
  "cookie-parser": "1.4.7",
@@ -133,7 +133,7 @@
133
133
  "eslint-plugin-import": "2.31.0",
134
134
  "eslint-plugin-n": "17.14.0",
135
135
  "eslint-plugin-prettier": "4.2.1",
136
- "eslint-plugin-promise": "7.1.0",
136
+ "eslint-plugin-promise": "7.2.0",
137
137
  "express-list-routes": "1.2.4",
138
138
  "jest": "29.7.0",
139
139
  "jest-27-expect-message": "1.1.0",
@@ -164,5 +164,5 @@
164
164
  ],
165
165
  "delay": 100
166
166
  },
167
- "packageManager": "yarn@4.5.2"
167
+ "packageManager": "yarn@4.5.3"
168
168
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/authentication/permission.service.ts"],"names":["PermissionService","logger","constructor","loggerFactory","name","_permissions","permissions","toDto","permission","id","authorizePermission","requiredPermission","assignedPermissions","find","assignedPermission","normalizePermission","getPermissionByName","permissionName","r","NotFoundException","getPermission","permissionId","syncPermissions","permissionDefinition","flattenPermissionDefinition","storedPermission","Permission","findOne","newPermission","create","push","permissionInstance","warn"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATc;wCACiB;mCACV;AAO3B,MAAMA;IACHC,OAAsB;IAE9BC,YAAY,EAAEC,aAAa,EAAqC,CAAE;QAChE,IAAI,CAACF,MAAM,GAAGE,cAAcH,kBAAkBI,IAAI;IACpD;IAEQC,eAA8B,EAAE,CAAC;IAEzC,IAAIC,cAAc;QAChB,OAAO,IAAI,CAACD,YAAY;IAC1B;IAEAE,MAAMC,UAAuB,EAAE;QAC7B,OAAO;YACLC,IAAID,WAAWC,EAAE;YACjBL,MAAMI,WAAWJ,IAAI;QACvB;IACF;IAEAM,oBAAoBC,kBAA0B,EAAEC,mBAA6B,EAAE;QAC7E,OAAO,CAAC,CAACA,oBAAoBC,IAAI,CAAC,CAACC;YACjC,MAAMC,sBAAsB,IAAI,CAACA,mBAAmB,CAACD;YACrD,IAAI,CAACC,qBAAqB,OAAO;YACjC,OAAOA,wBAAwBJ;QACjC;IACF;IAEA,MAAMK,oBAAoBC,cAAsB,EAAE;QAChD,MAAMT,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAEd,IAAI,KAAKa;QAC3D,IAAI,CAACT,YAAY,MAAM,IAAIW,oCAAiB,CAAC;QAC7C,OAAOX;IACT;IAEA,MAAMY,cAAcC,YAAyB,EAAE;QAC7C,MAAMb,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKY;QACzD,IAAI,CAACb,YAAY,MAAM,IAAIW,oCAAiB,CAAC,CAAC,mCAAmC,CAAC;QAElF,OAAOX;IACT;IAEA,MAAMc,kBAAkB;QACtB,IAAI,CAACjB,YAAY,GAAG,EAAE;QAEtB,MAAMkB,uBAAuBC,IAAAA,mDAA2B;QACxD,KAAK,IAAIhB,cAAce,qBAAsB;YAC3C,MAAME,mBAAmB,MAAMC,kBAAU,CAACC,OAAO,CAAC;gBAAEvB,MAAMI;YAAW;YACrE,IAAI,CAACiB,kBAAkB;gBACrB,MAAMG,gBAAgB,MAAMF,kBAAU,CAACG,MAAM,CAAC;oBAC5CzB,MAAMI;gBACR;gBACA,IAAI,CAACH,YAAY,CAACyB,IAAI,CAACF;YACzB,OAAO;gBACL,IAAI,CAACvB,YAAY,CAACyB,IAAI,CAACL;YACzB;QACF;IACF;IAEAV,oBAAoBD,kBAA0B,EAAE;QAC9C,MAAMiB,qBAAqB,IAAI,CAACzB,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKK,sBAAsBI,EAAEd,IAAI,KAAKU;QAClG,IAAI,CAACiB,oBAAoB;YACvB,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC;YACjB;QACF;QACA,OAAOD,mBAAmB3B,IAAI;IAChC;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/authentication/refresh-token.service.ts"],"names":["RefreshTokenService","settingsStore","logger","constructor","loggerFactory","name","toDto","entity","id","userId","toString","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","throwNotFoundError","userRefreshToken","RefreshToken","findOne","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","updateOne","new","purgeOutdatedRefreshTokensByUserId","result","deleteMany","$lt","deletedCount","debug","purgeAllOutdatedRefreshTokens","deleteRefreshTokenByUserId","deleteRefreshToken","deleteOne"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/authentication/role.service.ts"],"names":["RoleService","settingsStore","appDefaultRole","appDefaultRoleNoLogin","constructor","_roles","roles","toDto","role","id","name","getAppDefaultRole","getLoginRequired","getRolesPermissions","permissions","length","normalizedRole","normalizeRoleIdOrName","rolePermissions","getRolePermissions","union","ROLE_PERMS","getAppDefaultRoleIds","syncRoles","guestRole","getRoleByName","getSynchronizedRoleByName","roleName","authorizeRole","requiredRole","assignedRoles","find","ar","authorizeRoles","requiredRoles","subset","isAuthorized","forEach","rr","result","r","NotFoundException","getManyRoles","roleIds","map","roleId","getRole","Object","values","ROLES","storedRole","Role","findOne","newRole","create","push","assignedRole","roleInstance","console","warn"],"mappings":";;;;+BAUaA;;;eAAAA;;;wBAVS;wCACY;wBACb;mCACa;AAO3B,MAAMA;IACXC,cAA6B;IAC7BC,eAAwB;IACxBC,sBAA8B;IAE9BC,YAAY,EACVF,cAAc,EACdC,qBAAqB,EACrBF,aAAa,EAKd,CAAE;QACD,IAAI,CAACA,aAAa,GAAGA;QACrB,IAAI,CAACC,cAAc,GAAGA;QACtB,IAAI,CAACC,qBAAqB,GAAGA;IAC/B;IAEQE,SAAkB,EAAE,CAAC;IAE7B,IAAIC,QAAQ;QACV,OAAO,IAAI,CAACD,MAAM;IACpB;IAEAE,MAAMC,IAAW,EAAwB;QACvC,OAAO;YACLC,IAAID,KAAKC,EAAE;YACXC,MAAMF,KAAKE,IAAI;QACjB;IACF;IAEA,MAAMC,oBAAoB;QACxB,IAAI,MAAM,IAAI,CAACV,aAAa,CAACW,gBAAgB,IAAI;YAC/C,OAAO,IAAI,CAACV,cAAc;QAC5B;QACA,OAAO,IAAI,CAACC,qBAAqB;IACnC;IAEAU,oBAAoBP,KAAe,EAAE;QACnC,IAAIQ,cAAwB,EAAE;QAC9B,IAAI,CAACR,OAAOS,QAAQ,OAAO,EAAE;QAE7B,KAAK,IAAIP,QAAQF,MAAO;YACtB,MAAMU,iBAAiB,IAAI,CAACC,qBAAqB,CAACT;YAClD,MAAMU,kBAAkB,IAAI,CAACC,kBAAkB,CAACH;YAChDF,cAAcM,IAAAA,aAAK,EAACN,aAAaI;QACnC;QAEA,OAAOJ;IACT;IAEAK,mBAAmBX,IAAY,EAAE;QAC/B,MAAMQ,iBAAiB,IAAI,CAACC,qBAAqB,CAACT;QAClD,OAAOa,kCAAU,CAACL,eAAe;IACnC;IAEA,MAAMM,uBAAuB;QAC3B,IAAI,CAAC,IAAI,CAACjB,MAAM,EAAEU,QAAQ;YACxB,MAAM,IAAI,CAACQ,SAAS;QACtB;QAEA,MAAMC,YAAY,IAAI,CAACC,aAAa,CAAC,MAAM,IAAI,CAACd,iBAAiB;QACjE,OAAO;YAACa,UAAUf,EAAE;SAAC;IACvB;IAEA,MAAMiB,0BAA0BC,QAAgB,EAAE;QAChD,IAAI,CAAC,IAAI,CAACtB,MAAM,EAAEU,QAAQ;YACxB,MAAM,IAAI,CAACQ,SAAS;QACtB;QAEA,OAAO,IAAI,CAACE,aAAa,CAACE;IAC5B;IAEAC,cAAcC,YAAoB,EAAEC,aAAuB,EAAE;QAC3D,OAAO,CAAC,CAACA,cAAcC,IAAI,CAAC,CAACC;YAC3B,MAAMhB,iBAAiB,IAAI,CAACC,qBAAqB,CAACe;YAClD,IAAI,CAAChB,gBAAgB,OAAO;YAC5B,OAAOA,mBAAmBa;QAC5B;IACF;IAEAI,eAAeC,aAAuB,EAAEJ,aAAuB,EAAEK,SAAS,IAAI,EAAE;QAC9E,IAAIC,eAAe;QAEnB,IAAI,CAACF,eAAenB,QAAQ,OAAO;QACnCmB,cAAcG,OAAO,CAAC,CAACC;YACrB,MAAMC,SAAS,IAAI,CAACX,aAAa,CAACU,IAAIR;YACtCM,eAAeD,SAASC,gBAAgBG,SAASH,gBAAgBG;QACnE;QAEA,OAAOH;IACT;IAEAX,cAAcE,QAAgB,EAAE;QAC9B,MAAMnB,OAAO,IAAI,CAACH,MAAM,CAAC0B,IAAI,CAAC,CAACS,IAAMA,EAAE9B,IAAI,KAAKiB;QAChD,IAAI,CAACnB,MAAM,MAAM,IAAIiC,oCAAiB,CAAC,CAAC,+BAA+B,CAAC;QAExE,OAAOjC;IACT;IAEAkC,aAAaC,OAAiB,EAAS;QACrC,OAAOA,QAAQC,GAAG,CAAC,CAACC,SAAW,IAAI,CAACC,OAAO,CAACD;IAC9C;IAEAC,QAAQD,MAAc,EAAE;QACtB,MAAMrC,OAAO,IAAI,CAACH,MAAM,CAAC0B,IAAI,CAAC,CAACS,IAAMA,EAAE/B,EAAE,KAAKoC;QAC9C,IAAI,CAACrC,MAAM,MAAM,IAAIiC,oCAAiB,CAAC,CAAC,6BAA6B,CAAC;QAEtE,OAAOjC;IACT;IAEA,MAAMe,YAAY;QAChB,IAAI,CAAClB,MAAM,GAAG,EAAE;QAChB,KAAK,IAAIsB,YAAYoB,OAAOC,MAAM,CAACC,6BAAK,EAAG;YACzC,MAAMC,aAAa,MAAMC,YAAI,CAACC,OAAO,CAAC;gBAAE1C,MAAMiB;YAAS;YACvD,IAAI,CAACuB,YAAY;gBACf,MAAMG,UAAU,MAAMF,YAAI,CAACG,MAAM,CAAC;oBAChC5C,MAAMiB;gBACR;gBACA,IAAI,CAACtB,MAAM,CAACkD,IAAI,CAACF;YACnB,OAAO;gBACL,IAAI,CAAChD,MAAM,CAACkD,IAAI,CAACL;YACnB;QACF;IACF;IAEQjC,sBAAsBuC,YAAkC,EAAE;QAChE,MAAMC,eAAe,IAAI,CAACnD,KAAK,CAACyB,IAAI,CAAC,CAACS,IAAMA,EAAE/B,EAAE,KAAK+C,gBAAgBhB,EAAE9B,IAAI,KAAK8C;QAChF,IAAI,CAACC,cAAc;YACjBC,QAAQC,IAAI,CAAC,CAAC,6DAA6D,CAAC;YAC5E;QACF;QAEA,OAAOF,aAAa/C,IAAI;IAC1B;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/authentication/user.service.ts"],"names":["UserService","roleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","toString","listUsers","limit","User","find","findUsersByRoleId","roleId","$in","findVerifiedUsers","isUserRootUser","userId","findById","findRootUsers","getDemoUserId","findOne","findRawByUsername","getUser","throwNotFoundError","NotFoundException","getUserRoleIds","setUserRoleIds","roleIds","getManyRoles","Array","from","Set","save","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","includes","administrators","length","findByIdAndDelete","updateUsernameById","newUsername","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","setIsRootUserById","rootUsers","setVerifiedById","verifiedUsers","register","input","registerUserRules","create"],"mappings":";;;;+BAYaA;;;eAAAA;;;wBAZQ;mCACsC;4BAC7B;uCACsB;wCAC9B;6BAC4B;AAO3C,MAAMA;IACXC,YAAyB;IAEzBC,YAAY,EAAED,WAAW,EAAgC,CAAE;QACzD,IAAI,CAACA,WAAW,GAAGA;IACrB;IAEAE,MAAMC,IAAW,EAAW;QAC1B,OAAO;YACLC,IAAID,KAAKC,EAAE;YACXC,WAAWF,KAAKE,SAAS;YACzBC,YAAYH,KAAKG,UAAU;YAC3BC,YAAYJ,KAAKI,UAAU;YAC3BC,YAAYL,KAAKK,UAAU;YAC3BC,UAAUN,KAAKM,QAAQ;YACvBC,qBAAqBP,KAAKO,mBAAmB;YAC7CC,OAAOR,KAAKQ,KAAK,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,QAAQ;QACzC;IACF;IAEA,MAAMC,UAAUC,QAAQ,EAAE,EAAE;QAC1B,OAAOC,YAAI,CAACC,IAAI,GAAGF,KAAK,CAACA;IAC3B;IAEA,MAAMG,kBAAkBC,MAAmB,EAAE;QAC3C,OAAOH,YAAI,CAACC,IAAI,CAAC;YAAEP,OAAO;gBAAEU,KAAK;oBAACD;iBAAO;YAAC;QAAE;IAC9C;IAEA,MAAME,oBAAoB;QACxB,OAAOL,YAAI,CAACC,IAAI,CAAC;YAAEZ,YAAY;QAAK;IACtC;IAEA,MAAMiB,eAAeC,MAAmB,EAAE;QACxC,OAAQ,CAAA,MAAMP,YAAI,CAACQ,QAAQ,CAACD,OAAM,GAAIhB;IACxC;IAEA,MAAMkB,gBAAgB;QACpB,OAAOT,YAAI,CAACC,IAAI,CAAC;YAAEV,YAAY;QAAK;IACtC;IAEA,MAAMmB,gBAAgB;QACpB,OAAQ,CAAA,MAAMV,YAAI,CAACW,OAAO,CAAC;YAAErB,YAAY;QAAK,EAAC,GAAIH;IACrD;IAEA,MAAMyB,kBAAkBpB,QAAgB,EAAE;QACxC,OAAOQ,YAAI,CAACW,OAAO,CAAC;YAClBnB;QACF;IACF;IAEA,MAAMqB,QAAQN,MAAmB,EAAEO,qBAA8B,IAAI,EAAkB;QACrF,MAAM5B,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,QAAQ4B,oBAAoB,MAAM,IAAIC,oCAAiB,CAAC;QAE7D,OAAO7B;IACT;IAEA,MAAM8B,eAAeT,MAAmB,EAAE;QACxC,MAAMrB,OAAO,MAAM,IAAI,CAAC2B,OAAO,CAACN;QAChC,OAAOrB,KAAKQ,KAAK,EAAEC,IAAI,CAACC,IAAMA,EAAEC,QAAQ;IAC1C;IAEA,MAAMoB,eAAeV,MAAmB,EAAEW,OAAsB,EAAkB;QAChF,MAAMhC,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QACvC,MAAMrB,QAAQ,IAAI,CAACX,WAAW,CAACoC,YAAY,CAACD;QAE5ChC,KAAKQ,KAAK,GAAGA,MAAMC,GAAG,CAAC,CAACC,IAAMA,EAAET,EAAE;QAClCD,KAAKQ,KAAK,GAAG0B,MAAMC,IAAI,CAAC,IAAIC,IAAIpC,KAAKQ,KAAK;QAE1C,OAAO,MAAMR,KAAKqC,IAAI;IACxB;IAEA,MAAMC,WAAWjB,MAAmB,EAAE;QAEpC,MAAMrB,OAAO,MAAM,IAAI,CAAC2B,OAAO,CAACN;QAEhC,IAAIrB,KAAKK,UAAU,EAAE;YACnB,MAAM,IAAIkC,0CAAuB,CAAC;QACpC;QAGA,MAAMC,OAAO,IAAI,CAAC3C,WAAW,CAAC4C,aAAa,CAACC,6BAAK,CAACC,KAAK;QACvD,IAAI3C,KAAKQ,KAAK,CAACoC,QAAQ,CAACJ,KAAKvC,EAAE,GAAG;YAChC,MAAM4C,iBAAiB,MAAM,IAAI,CAAC7B,iBAAiB,CAACwB,KAAKvC,EAAE;YAC3D,IAAI4C,gBAAgBC,WAAW,GAAG;gBAChC,MAAM,IAAIP,0CAAuB,CAAC;YACpC;QACF;QAEA,MAAMzB,YAAI,CAACiC,iBAAiB,CAAC/C,KAAKC,EAAE;IACtC;IAEA,MAAM+C,mBAAmB3B,MAAmB,EAAE4B,WAAmB,EAAE;QACjE,MAAMjD,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC7B,KAAKM,QAAQ,GAAG2C;QAChB,OAAO,MAAMjD,KAAKqC,IAAI;IACxB;IAEA,MAAMa,mBAAmB7B,MAAmB,EAAE8B,WAAmB,EAAEC,WAAmB,EAAE;QACtF,MAAMpD,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC,IAAI,CAACwB,IAAAA,gCAAmB,EAACF,aAAanD,KAAKsD,YAAY,GAAG;YACxD,MAAM,IAAIzB,oCAAiB,CAAC;QAC9B;QAEA,MAAM,EAAE0B,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUH;QAAY,GAAGK,uCAAgB;QACpFzD,KAAKsD,YAAY,GAAGI,IAAAA,yBAAY,EAACH;QACjCvD,KAAKO,mBAAmB,GAAG;QAC3B,OAAO,MAAMP,KAAKqC,IAAI;IACxB;IAEA,MAAMsB,+BAA+BrD,QAAgB,EAAE8C,WAAmB,EAAE;QAC1E,MAAM,EAAEG,QAAQ,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAAC;YAAED,UAAUH;QAAY,GAAGK,uCAAgB;QACpF,MAAMH,eAAeI,IAAAA,yBAAY,EAACH;QAClC,MAAMvD,OAAO,MAAM,IAAI,CAAC0B,iBAAiB,CAACpB;QAC1C,IAAI,CAACN,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC7B,KAAKsD,YAAY,GAAGA;QACpBtD,KAAKO,mBAAmB,GAAG;QAC3B,OAAO,MAAMP,KAAKqC,IAAI;IACxB;IAEA,MAAMuB,kBAAkBvC,MAAmB,EAAEhB,UAAmB,EAAE;QAChE,MAAML,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC,IAAI,CAACxB,YAAY;YAEf,MAAMwD,YAAY,MAAM,IAAI,CAACtC,aAAa;YAC1C,IAAIsC,UAAUf,MAAM,KAAK,GAAG;gBAC1B,MAAM,IAAIP,0CAAuB,CAAC;YACpC;QACF;QAEAvC,KAAKK,UAAU,GAAGA;QAClB,MAAML,KAAKqC,IAAI;IACjB;IAEA,MAAMyB,gBAAgBzC,MAAmB,EAAElB,UAAmB,EAAE;QAC9D,MAAMH,OAAO,MAAMc,YAAI,CAACQ,QAAQ,CAACD;QACjC,IAAI,CAACrB,MAAM,MAAM,IAAI6B,oCAAiB,CAAC;QAEvC,IAAI,CAAC1B,YAAY;YACf,IAAIH,KAAKK,UAAU,EAAE;gBACnB,MAAM,IAAIkC,0CAAuB,CAAC;YACpC;YAGA,MAAMwB,gBAAgB,MAAM,IAAI,CAAC5C,iBAAiB;YAClD,IAAI4C,cAAcjB,MAAM,KAAK,GAAG;gBAC9B,MAAM,IAAIP,0CAAuB,CAAC;YACpC;QACF;QAEAvC,KAAKG,UAAU,GAAGA;QAClB,MAAMH,KAAKqC,IAAI;IACjB;IAEA,MAAM2B,SAASC,KAAmC,EAAE;QAClD,MAAM,EAAE3D,QAAQ,EAAEiD,QAAQ,EAAE/C,KAAK,EAAEJ,UAAU,EAAEC,UAAU,EAAEE,mBAAmB,EAAEJ,UAAU,EAAE,GAAG,MAAMqD,IAAAA,yBAAa,EAChHS,OACAC,IAAAA,wCAAiB,EAAC;QAGpB,MAAMZ,eAAeI,IAAAA,yBAAY,EAACH;QAClC,OAAO,MAAMzC,YAAI,CAACqD,MAAM,CAAC;YACvB7D;YACAgD;YACA9C;YACAL,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BC,YAAYA,cAAc;YAC1BE,qBAAqBA,uBAAuB;QAC9C;IACF;AACF"}