@spinajs/rbac-http 2.0.28 → 2.0.44

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.
Files changed (73) hide show
  1. package/lib/2fa/SpeakEasy2FaToken.d.ts +13 -0
  2. package/lib/2fa/SpeakEasy2FaToken.js +91 -0
  3. package/lib/2fa/SpeakEasy2FaToken.js.map +1 -0
  4. package/lib/config/rbac-http.js +19 -0
  5. package/lib/config/rbac-http.js.map +1 -1
  6. package/lib/controllers/LoginController.d.ts +26 -4
  7. package/lib/controllers/LoginController.js +240 -24
  8. package/lib/controllers/LoginController.js.map +1 -1
  9. package/lib/controllers/TwoFactorAuthController.d.ts +11 -0
  10. package/lib/controllers/TwoFactorAuthController.js +71 -0
  11. package/lib/controllers/TwoFactorAuthController.js.map +1 -0
  12. package/lib/controllers/UserController.d.ts +1 -1
  13. package/lib/controllers/UserController.js +7 -11
  14. package/lib/controllers/UserController.js.map +1 -1
  15. package/lib/controllers/UserMetadata.js +4 -0
  16. package/lib/controllers/UserMetadata.js.map +1 -1
  17. package/lib/decorators.js +6 -10
  18. package/lib/decorators.js.map +1 -1
  19. package/lib/dto/login-dto.d.ts +1 -6
  20. package/lib/dto/login-dto.js +7 -8
  21. package/lib/dto/login-dto.js.map +1 -1
  22. package/lib/dto/restore-password-dto.d.ts +23 -0
  23. package/lib/dto/restore-password-dto.js +34 -0
  24. package/lib/dto/restore-password-dto.js.map +1 -0
  25. package/lib/dto/token-dto.d.ts +15 -0
  26. package/lib/dto/token-dto.js +32 -0
  27. package/lib/dto/token-dto.js.map +1 -0
  28. package/lib/dto/userLogin-dto.d.ts +21 -0
  29. package/lib/dto/userLogin-dto.js +34 -0
  30. package/lib/dto/userLogin-dto.js.map +1 -0
  31. package/lib/events/UserLoginFailed.d.ts +5 -0
  32. package/lib/events/UserLoginFailed.js +25 -0
  33. package/lib/events/UserLoginFailed.js.map +1 -0
  34. package/lib/events/UserLoginSuccess.d.ts +5 -0
  35. package/lib/events/UserLoginSuccess.js +25 -0
  36. package/lib/events/UserLoginSuccess.js.map +1 -0
  37. package/lib/events/UserPassordRestore.d.ts +6 -0
  38. package/lib/events/UserPassordRestore.js +26 -0
  39. package/lib/events/UserPassordRestore.js.map +1 -0
  40. package/lib/fingerprint/FingerprintJs.d.ts +3 -0
  41. package/lib/fingerprint/FingerprintJs.js +18 -0
  42. package/lib/fingerprint/FingerprintJs.js.map +1 -0
  43. package/lib/index.d.ts +1 -1
  44. package/lib/index.js +1 -1
  45. package/lib/index.js.map +1 -1
  46. package/lib/interfaces.d.ts +35 -0
  47. package/lib/interfaces.js +7 -0
  48. package/lib/interfaces.js.map +1 -1
  49. package/lib/middlewares/AttributeFilter.d.ts +10 -0
  50. package/lib/middlewares/AttributeFilter.js +19 -0
  51. package/lib/middlewares/AttributeFilter.js.map +1 -0
  52. package/lib/middlewares.d.ts +1 -1
  53. package/lib/middlewares.js +1 -1
  54. package/lib/middlewares.js.map +1 -1
  55. package/lib/policies/2FaPolicy.d.ts +7 -0
  56. package/lib/policies/2FaPolicy.js +32 -0
  57. package/lib/policies/2FaPolicy.js.map +1 -0
  58. package/lib/policies/AuthPolicy.d.ts +9 -0
  59. package/lib/policies/AuthPolicy.js +23 -0
  60. package/lib/policies/AuthPolicy.js.map +1 -0
  61. package/lib/policies/LoggedPolicy.d.ts +9 -0
  62. package/lib/policies/LoggedPolicy.js +23 -0
  63. package/lib/policies/LoggedPolicy.js.map +1 -0
  64. package/lib/policies/NotLoggedPolicy.d.ts +9 -0
  65. package/lib/policies/NotLoggedPolicy.js +22 -0
  66. package/lib/policies/NotLoggedPolicy.js.map +1 -0
  67. package/lib/policies/RbacPolicy.d.ts +15 -0
  68. package/lib/policies/RbacPolicy.js +60 -0
  69. package/lib/policies/RbacPolicy.js.map +1 -0
  70. package/lib/policies/captchaPolicy.d.ts +0 -0
  71. package/lib/policies/captchaPolicy.js +1 -0
  72. package/lib/policies/captchaPolicy.js.map +1 -0
  73. package/package.json +19 -13
@@ -34,9 +34,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
34
34
  var __param = (this && this.__param) || function (paramIndex, decorator) {
35
35
  return function (target, key) { decorator(target, key, paramIndex); }
36
36
  };
37
- var __importDefault = (this && this.__importDefault) || function (mod) {
38
- return (mod && mod.__esModule) ? mod : { "default": mod };
39
- };
40
37
  Object.defineProperty(exports, "__esModule", { value: true });
41
38
  exports.UserController = void 0;
42
39
  const password_dto_1 = require("../dto/password-dto");
@@ -47,11 +44,11 @@ const di_1 = require("@spinajs/di");
47
44
  const decorators_1 = require("../decorators");
48
45
  const configuration_1 = require("@spinajs/configuration");
49
46
  const cs = __importStar(require("cookie-signature"));
50
- const lodash_1 = __importDefault(require("lodash"));
51
47
  let UserController = class UserController extends http_1.BaseController {
52
48
  async refresh(user, ssid) {
53
49
  // get user data from db
54
50
  await user.refresh();
51
+ await user.Metadata.populate();
55
52
  // refresh session data from DB
56
53
  const sId = cs.unsign(ssid, this.CoockieSecret);
57
54
  if (sId) {
@@ -60,16 +57,15 @@ let UserController = class UserController extends http_1.BaseController {
60
57
  session.Data.set('User', user.dehydrate());
61
58
  }
62
59
  }
63
- return new http_1.Ok(lodash_1.default.omit(user.dehydrate(), ['Id']));
60
+ return new http_1.Ok(user.dehydrate());
64
61
  }
65
- async newPassword(login, pwd) {
62
+ async newPassword(user, pwd) {
66
63
  if (pwd.Password !== pwd.ConfirmPassword) {
67
64
  throw new exceptions_1.InvalidArgument('password does not match');
68
65
  }
69
- const user = await rbac_1.User.where({ Login: login }).firstOrFail();
70
66
  const isValid = await this.PasswordProvider.verify(user.Password, pwd.OldPassword);
71
67
  if (!isValid) {
72
- throw new exceptions_1.Forbidden('Invalid login or password');
68
+ throw new exceptions_1.Forbidden('old password do not match');
73
69
  }
74
70
  const hashedPassword = await this.PasswordProvider.hash(pwd.Password);
75
71
  user.Password = hashedPassword;
@@ -99,11 +95,11 @@ __decorate([
99
95
  __metadata("design:returntype", Promise)
100
96
  ], UserController.prototype, "refresh", null);
101
97
  __decorate([
102
- (0, http_1.Patch)('/password/:login'),
103
- __param(0, (0, http_1.Param)()),
98
+ (0, http_1.Patch)('/password'),
99
+ __param(0, (0, decorators_1.User)()),
104
100
  __param(1, (0, http_1.Body)()),
105
101
  __metadata("design:type", Function),
106
- __metadata("design:paramtypes", [String, password_dto_1.PasswordDto]),
102
+ __metadata("design:paramtypes", [rbac_1.User, password_dto_1.PasswordDto]),
107
103
  __metadata("design:returntype", Promise)
108
104
  ], UserController.prototype, "newPassword", null);
109
105
  UserController = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAkD;AAClD,wCAAqF;AACrF,wCAA8F;AAC9F,oDAAiE;AACjE,oCAAyC;AACzC,8CAA2D;AAC3D,0DAAgD;AAChD,qDAAuC;AACvC,oDAAuB;AAIvB,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,qBAAc;IAYzC,KAAK,CAAC,OAAO,CAAS,IAAe,EAAY,IAAY;QAClE,wBAAwB;QACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,+BAA+B;QAC/B,MAAM,GAAG,GAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,GAAG,EAAE;YACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAC5C;SACF;QAED,OAAO,IAAI,SAAE,CAAC,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAGM,KAAK,CAAC,WAAW,CAAU,KAAa,EAAU,GAAgB;QACvE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,eAAe,EAAE;YACxC,MAAM,IAAI,4BAAe,CAAC,yBAAyB,CAAC,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,WAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAEnF,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,sBAAS,CAAC,2BAA2B,CAAC,CAAC;SAClD;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC/B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,SAAE,EAAE,CAAC;IAClB,CAAC;CACF,CAAA;AA5CC;IADC,IAAA,eAAU,GAAE;8BACe,uBAAgB;wDAAC;AAG7C;IADC,IAAA,sBAAM,EAAC,oBAAoB,CAAC;;qDACG;AAGhC;IADC,IAAA,eAAU,GAAE;8BACc,sBAAe;uDAAC;AAI3C;IAFC,IAAA,UAAG,GAAE;IACL,IAAA,uBAAU,EAAC,SAAS,CAAC;IACA,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAmB,WAAA,IAAA,aAAM,GAAE,CAAA;;qCAApB,WAAS;;6CAc3C;AAGD;IADC,IAAA,YAAK,EAAC,kBAAkB,CAAC;IACA,WAAA,IAAA,YAAK,GAAE,CAAA;IAAiB,WAAA,IAAA,WAAI,GAAE,CAAA;;6CAAM,0BAAW;;iDAgBxE;AA7CU,cAAc;IAF1B,IAAA,eAAQ,EAAC,MAAM,CAAC;IAChB,IAAA,qBAAQ,EAAC,MAAM,CAAC;GACJ,cAAc,CA8C1B;AA9CY,wCAAc"}
1
+ {"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAkD;AAClD,wCAAqF;AACrF,wCAAuF;AACvF,oDAAiE;AACjE,oCAAyC;AACzC,8CAA2D;AAC3D,0DAAgD;AAChD,qDAAuC;AAKvC,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,qBAAc;IAYzC,KAAK,CAAC,OAAO,CAAS,IAAe,EAAY,IAAY;QAClE,wBAAwB;QACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAE/B,+BAA+B;QAC/B,MAAM,GAAG,GAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,GAAG,EAAE;YACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAC5C;SACF;QAED,OAAO,IAAI,SAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAClC,CAAC;IAGM,KAAK,CAAC,WAAW,CAAS,IAAe,EAAU,GAAgB;QACxE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,eAAe,EAAE;YACxC,MAAM,IAAI,4BAAe,CAAC,yBAAyB,CAAC,CAAC;SACtD;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAEnF,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,sBAAS,CAAC,2BAA2B,CAAC,CAAC;SAClD;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC/B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,SAAE,EAAE,CAAC;IAClB,CAAC;CACF,CAAA;AA5CC;IADC,IAAA,eAAU,GAAE;8BACe,uBAAgB;wDAAC;AAG7C;IADC,IAAA,sBAAM,EAAC,oBAAoB,CAAC;;qDACG;AAGhC;IADC,IAAA,eAAU,GAAE;8BACc,sBAAe;uDAAC;AAI3C;IAFC,IAAA,UAAG,GAAE;IACL,IAAA,uBAAU,EAAC,SAAS,CAAC;IACA,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAmB,WAAA,IAAA,aAAM,GAAE,CAAA;;qCAApB,WAAS;;6CAe3C;AAGD;IADC,IAAA,YAAK,EAAC,WAAW,CAAC;IACO,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAmB,WAAA,IAAA,WAAI,GAAE,CAAA;;qCAAlB,WAAS,EAAe,0BAAW;;iDAezE;AA7CU,cAAc;IAF1B,IAAA,eAAQ,EAAC,MAAM,CAAC;IAChB,IAAA,qBAAQ,EAAC,MAAM,CAAC;GACJ,cAAc,CA8C1B;AA9CY,wCAAc"}
@@ -63,4 +63,8 @@ UserMetaController = __decorate([
63
63
  (0, decorators_1.Resource)('user.metadata')
64
64
  ], UserMetaController);
65
65
  exports.UserMetaController = UserMetaController;
66
+ // function userOwnerPermissionStrategy(){
67
+ // // 1. obtain current logged user
68
+ // // 2. find
69
+ // }
66
70
  //# sourceMappingURL=UserMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../src/controllers/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wCAAqE;AACrE,wCAAgE;AAChE,gDAA2C;AAC3C,8CAAiD;AACjD,gDAAuD;AAIvD,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAGtB,KAAK,CAAC,WAAW,CAAS,MAAiB,EAAe,IAAe,EAAa,IAAkB;QAC7G,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACzB,MAAM,IAAI,gBAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,SAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAIM,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAe,IAAe,EAAe,IAAkB;QAClH,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACzB,MAAM,IAAI,gBAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;YACpC,MAAM,IAAI,gBAAS,CAAC,8CAA8C,CAAC,CAAC;SACrE;QAED,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,OAAO,IAAI,SAAE,EAAE,CAAC;IAClB,CAAC;CACF,CAAA;AAzBC;IAFC,IAAA,WAAI,GAAE;IACN,IAAA,uBAAU,EAAC,WAAW,CAAC;IACE,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,oBAAS,GAAE,CAAA;IAAmB,WAAA,IAAA,kBAAO,GAAE,CAAA;;qCAAnD,WAAS,EAAqB,WAAS,EAAmB,mBAAY;;qDAO9G;AAID;IAFC,IAAA,YAAK,EAAC,2BAA2B,CAAC;IAClC,IAAA,uBAAU,EAAC,WAAW,CAAC;IACK,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,oBAAS,GAAE,CAAA;IAAmB,WAAA,IAAA,oBAAS,GAAE,CAAA;;qCAArD,WAAS,EAAqB,WAAS,EAAqB,mBAAY;;wDAanH;AA3BU,kBAAkB;IAF9B,IAAA,eAAQ,EAAC,qBAAqB,CAAC;IAC/B,IAAA,qBAAQ,EAAC,eAAe,CAAC;GACb,kBAAkB,CA4B9B;AA5BY,gDAAkB"}
1
+ {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../src/controllers/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wCAAqE;AACrE,wCAAgE;AAChE,gDAA2C;AAC3C,8CAAiD;AACjD,gDAAuD;AAIvD,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAGtB,KAAK,CAAC,WAAW,CAAS,MAAiB,EAAe,IAAe,EAAa,IAAkB;QAC7G,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACzB,MAAM,IAAI,gBAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,SAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAIM,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAe,IAAe,EAAe,IAAkB;QAClH,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACzB,MAAM,IAAI,gBAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;YACpC,MAAM,IAAI,gBAAS,CAAC,8CAA8C,CAAC,CAAC;SACrE;QAED,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,OAAO,IAAI,SAAE,EAAE,CAAC;IAClB,CAAC;CACF,CAAA;AAzBC;IAFC,IAAA,WAAI,GAAE;IACN,IAAA,uBAAU,EAAC,WAAW,CAAC;IACE,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,oBAAS,GAAE,CAAA;IAAmB,WAAA,IAAA,kBAAO,GAAE,CAAA;;qCAAnD,WAAS,EAAqB,WAAS,EAAmB,mBAAY;;qDAO9G;AAID;IAFC,IAAA,YAAK,EAAC,2BAA2B,CAAC;IAClC,IAAA,uBAAU,EAAC,WAAW,CAAC;IACK,WAAA,IAAA,iBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,oBAAS,GAAE,CAAA;IAAmB,WAAA,IAAA,oBAAS,GAAE,CAAA;;qCAArD,WAAS,EAAqB,WAAS,EAAqB,mBAAY;;wDAanH;AA3BU,kBAAkB;IAF9B,IAAA,eAAQ,EAAC,qBAAqB,CAAC;IAC/B,IAAA,qBAAQ,EAAC,eAAe,CAAC;GACb,kBAAkB,CA4B9B;AA5BY,gDAAkB;AA8B/B,0CAA0C;AAE1C,sCAAsC;AACtC,gBAAgB;AAEhB,IAAI"}
package/lib/decorators.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Session = exports.User = exports.Permission = exports.Resource = exports.setRbacMetadata = exports.ACL_CONTROLLER_DESCRIPTOR = void 0;
4
4
  const http_1 = require("@spinajs/http");
5
- const policies_1 = require("./policies");
5
+ const RbacPolicy_1 = require("./policies/RbacPolicy");
6
6
  exports.ACL_CONTROLLER_DESCRIPTOR = Symbol('ACL_CONTROLLER_DESCRIPTOR_SYMBOL');
7
7
  function setRbacMetadata(target, callback) {
8
8
  let metadata = Reflect.getMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, target.prototype || target);
@@ -43,7 +43,7 @@ function descriptor(callback) {
43
43
  */
44
44
  function Resource(resource, permission = 'readOwn') {
45
45
  return descriptor((metadata, target) => {
46
- (0, http_1.Policy)(policies_1.RbacPolicy)(target, null, null);
46
+ (0, http_1.Policy)(RbacPolicy_1.RbacPolicy)(target, null, null);
47
47
  metadata.Resource = resource;
48
48
  metadata.Permission = permission;
49
49
  });
@@ -57,19 +57,15 @@ exports.Resource = Resource;
57
57
  */
58
58
  function Permission(permission = 'readOwn') {
59
59
  return descriptor((metadata, target, propertyKey) => {
60
- let route = null;
61
60
  if (propertyKey) {
62
- if (metadata.Routes.has(propertyKey)) {
63
- route = metadata.Routes.get(propertyKey);
64
- }
65
- else {
66
- route = {
61
+ if (!metadata.Routes.has(propertyKey)) {
62
+ const route = {
67
63
  Permission: permission,
68
64
  };
65
+ metadata.Routes.set(propertyKey, route);
69
66
  }
70
- metadata.Routes.set(propertyKey, route);
71
67
  }
72
- (0, http_1.Policy)(policies_1.RbacPolicy)(target, propertyKey, null);
68
+ (0, http_1.Policy)(RbacPolicy_1.RbacPolicy)(target, propertyKey, null);
73
69
  });
74
70
  }
75
71
  exports.Permission = Permission;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AACA,wCAAyD;AACzD,sDAAmD;AAEtC,QAAA,yBAAyB,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAEpF,SAAgB,eAAe,CAAC,MAAW,EAAE,QAAyC;IACpF,IAAI,QAAQ,GAAoB,OAAO,CAAC,WAAW,CAAC,iCAAyB,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC3G,IAAI,CAAC,QAAQ,EAAE;QACb,QAAQ,GAAG;YACT,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI,GAAG,EAA0C;YACzD,UAAU,EAAE,SAAS;SACtB,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,iCAAyB,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;KACzF;IAED,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACpB;AACH,CAAC;AAfD,0CAeC;AAED,SAAS,UAAU,CAAC,QAA0I;IAC5J,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,iBAA8C,EAAE,EAAE;QACnG,IAAI,QAAQ,GAAoB,OAAO,CAAC,WAAW,CAAC,iCAAyB,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QAC3G,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG;gBACT,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,IAAI,GAAG,EAA0C;gBACzD,UAAU,EAAE,SAAS;aACtB,CAAC;YAEF,OAAO,CAAC,cAAc,CAAC,iCAAyB,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;SACzF;QAED,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;SAC5D;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,QAAgB,EAAE,aAA6B,SAAS;IAC/E,OAAO,UAAU,CAAC,CAAC,QAAyB,EAAE,MAAW,EAAE,EAAE;QAC3D,IAAA,aAAM,EAAC,uBAAU,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAPD,4BAOC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,aAA6B,SAAS;IAC/D,OAAO,UAAU,CAAC,CAAC,QAAyB,EAAE,MAAW,EAAE,WAAmB,EAAE,EAAE;QAChF,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBACrC,MAAM,KAAK,GAAG;oBACZ,UAAU,EAAE,UAAU;iBACvB,CAAC;gBACF,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACzC;SACF;QAED,IAAA,aAAM,EAAC,uBAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,gCAaC;AAED;;GAEG;AACH,SAAgB,IAAI;IAClB,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,oBAEC;AAED;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,YAAY,CAAC,CAAC,CAAC;AACxC,CAAC;AAFD,0BAEC"}
@@ -7,15 +7,10 @@ export declare const LoginDtoSchema: {
7
7
  type: string;
8
8
  format: string;
9
9
  };
10
- Password: {
11
- type: string;
12
- maxLength: number;
13
- };
14
10
  };
15
11
  required: string[];
16
12
  };
17
- export declare class LoginDto {
13
+ export declare class UserLoginDto {
18
14
  Email: string;
19
- Password: string;
20
15
  constructor(data: any);
21
16
  }
@@ -9,26 +9,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.LoginDto = exports.LoginDtoSchema = void 0;
12
+ exports.UserLoginDto = exports.LoginDtoSchema = void 0;
13
13
  const validation_1 = require("@spinajs/validation");
14
14
  exports.LoginDtoSchema = {
15
15
  $schema: 'http://json-schema.org/draft-07/schema#',
16
- title: 'User login DTO',
16
+ title: 'login DTO',
17
17
  type: 'object',
18
18
  properties: {
19
19
  Login: { type: 'string', format: 'email' },
20
- Password: { type: 'string', maxLength: 32 },
21
20
  },
22
- required: ['Email', 'Password'],
21
+ required: ['Email'],
23
22
  };
24
- let LoginDto = class LoginDto {
23
+ let UserLoginDto = class UserLoginDto {
25
24
  constructor(data) {
26
25
  Object.assign(this, data);
27
26
  }
28
27
  };
29
- LoginDto = __decorate([
28
+ UserLoginDto = __decorate([
30
29
  (0, validation_1.Schema)(exports.LoginDtoSchema),
31
30
  __metadata("design:paramtypes", [Object])
32
- ], LoginDto);
33
- exports.LoginDto = LoginDto;
31
+ ], UserLoginDto);
32
+ exports.UserLoginDto = UserLoginDto;
34
33
  //# sourceMappingURL=login-dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-dto.js","sourceRoot":"","sources":["../../src/dto/login-dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAEhC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;KAC5C;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;CAChC,CAAC;AAGF,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAKnB,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AARY,QAAQ;IADpB,IAAA,mBAAM,EAAC,sBAAc,CAAC;;GACV,QAAQ,CAQpB;AARY,4BAAQ"}
1
+ {"version":3,"file":"login-dto.js","sourceRoot":"","sources":["../../src/dto/login-dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAEhC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;KAC3C;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAGF,IAAa,YAAY,GAAzB,MAAa,YAAY;IAGvB,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AANY,YAAY;IADxB,IAAA,mBAAM,EAAC,sBAAc,CAAC;;GACV,YAAY,CAMxB;AANY,oCAAY"}
@@ -0,0 +1,23 @@
1
+ export declare const RestorePasswordDtoSchema: {
2
+ $schema: string;
3
+ title: string;
4
+ type: string;
5
+ properties: {
6
+ Password: {
7
+ type: string;
8
+ maxLength: number;
9
+ minLength: number;
10
+ };
11
+ ConfirmPassword: {
12
+ type: string;
13
+ maxLength: number;
14
+ minLength: number;
15
+ };
16
+ };
17
+ required: string[];
18
+ };
19
+ export declare class RestorePasswordDto {
20
+ Password: string;
21
+ ConfirmPassword: string;
22
+ constructor(data: any);
23
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RestorePasswordDto = exports.RestorePasswordDtoSchema = void 0;
13
+ const validation_1 = require("@spinajs/validation");
14
+ exports.RestorePasswordDtoSchema = {
15
+ $schema: 'http://json-schema.org/draft-07/schema#',
16
+ title: 'User password DTO',
17
+ type: 'object',
18
+ properties: {
19
+ Password: { type: 'string', maxLength: 32, minLength: 6 },
20
+ ConfirmPassword: { type: 'string', maxLength: 32, minLength: 6 },
21
+ },
22
+ required: ['Password', 'ConfirmPassword'],
23
+ };
24
+ let RestorePasswordDto = class RestorePasswordDto {
25
+ constructor(data) {
26
+ Object.assign(this, data);
27
+ }
28
+ };
29
+ RestorePasswordDto = __decorate([
30
+ (0, validation_1.Schema)(exports.RestorePasswordDtoSchema),
31
+ __metadata("design:paramtypes", [Object])
32
+ ], RestorePasswordDto);
33
+ exports.RestorePasswordDto = RestorePasswordDto;
34
+ //# sourceMappingURL=restore-password-dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-password-dto.js","sourceRoot":"","sources":["../../src/dto/restore-password-dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAEhC,QAAA,wBAAwB,GAAG;IACtC,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,mBAAmB;IAC1B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;QACzD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;KACjE;IACD,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC;CAC1C,CAAC;AAGF,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAK7B,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AARY,kBAAkB;IAD9B,IAAA,mBAAM,EAAC,gCAAwB,CAAC;;GACpB,kBAAkB,CAQ9B;AARY,gDAAkB"}
@@ -0,0 +1,15 @@
1
+ export declare const TokenDtoSchema: {
2
+ $schema: string;
3
+ title: string;
4
+ type: string;
5
+ properties: {
6
+ Token: {
7
+ type: string;
8
+ maxLength: number;
9
+ };
10
+ };
11
+ };
12
+ export declare class TokenDto {
13
+ Token: string;
14
+ constructor(data: any);
15
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TokenDto = exports.TokenDtoSchema = void 0;
13
+ const validation_1 = require("@spinajs/validation");
14
+ exports.TokenDtoSchema = {
15
+ $schema: 'http://json-schema.org/draft-07/schema#',
16
+ title: 'Token DTO',
17
+ type: 'object',
18
+ properties: {
19
+ Token: { type: 'string', maxLength: 64 },
20
+ },
21
+ };
22
+ let TokenDto = class TokenDto {
23
+ constructor(data) {
24
+ Object.assign(this, data);
25
+ }
26
+ };
27
+ TokenDto = __decorate([
28
+ (0, validation_1.Schema)(exports.TokenDtoSchema),
29
+ __metadata("design:paramtypes", [Object])
30
+ ], TokenDto);
31
+ exports.TokenDto = TokenDto;
32
+ //# sourceMappingURL=token-dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-dto.js","sourceRoot":"","sources":["../../src/dto/token-dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAChC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;KACzC;CACF,CAAC;AAGF,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAGnB,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AANY,QAAQ;IADpB,IAAA,mBAAM,EAAC,sBAAc,CAAC;;GACV,QAAQ,CAMpB;AANY,4BAAQ"}
@@ -0,0 +1,21 @@
1
+ export declare const UserLoginDtoSchema: {
2
+ $schema: string;
3
+ title: string;
4
+ type: string;
5
+ properties: {
6
+ Login: {
7
+ type: string;
8
+ format: string;
9
+ };
10
+ Password: {
11
+ type: string;
12
+ maxLength: number;
13
+ };
14
+ };
15
+ required: string[];
16
+ };
17
+ export declare class UserLoginDto {
18
+ Email: string;
19
+ Password: string;
20
+ constructor(data: any);
21
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserLoginDto = exports.UserLoginDtoSchema = void 0;
13
+ const validation_1 = require("@spinajs/validation");
14
+ exports.UserLoginDtoSchema = {
15
+ $schema: 'http://json-schema.org/draft-07/schema#',
16
+ title: 'User login DTO',
17
+ type: 'object',
18
+ properties: {
19
+ Login: { type: 'string', format: 'email' },
20
+ Password: { type: 'string', maxLength: 32 },
21
+ },
22
+ required: ['Email', 'Password'],
23
+ };
24
+ let UserLoginDto = class UserLoginDto {
25
+ constructor(data) {
26
+ Object.assign(this, data);
27
+ }
28
+ };
29
+ UserLoginDto = __decorate([
30
+ (0, validation_1.Schema)(exports.UserLoginDtoSchema),
31
+ __metadata("design:paramtypes", [Object])
32
+ ], UserLoginDto);
33
+ exports.UserLoginDto = UserLoginDto;
34
+ //# sourceMappingURL=userLogin-dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userLogin-dto.js","sourceRoot":"","sources":["../../src/dto/userLogin-dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAEhC,QAAA,kBAAkB,GAAG;IAChC,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;KAC5C;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;CAChC,CAAC;AAGF,IAAa,YAAY,GAAzB,MAAa,YAAY;IAKvB,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AARY,YAAY;IADxB,IAAA,mBAAM,EAAC,0BAAkB,CAAC;;GACd,YAAY,CAQxB;AARY,oCAAY"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserLoginFailed extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserLoginFailed = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserLoginFailed = class UserLoginFailed extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserLoginFailed = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserLoginFailed);
24
+ exports.UserLoginFailed = UserLoginFailed;
25
+ //# sourceMappingURL=UserLoginFailed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserLoginFailed.js","sourceRoot":"","sources":["../../src/events/UserLoginFailed.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,kBAAU;IAC7C,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,eAAe;IAD3B,IAAA,aAAK,GAAE;;GACK,eAAe,CAI3B;AAJY,0CAAe"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserLoginSuccess extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserLoginSuccess = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserLoginSuccess = class UserLoginSuccess extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserLoginSuccess = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserLoginSuccess);
24
+ exports.UserLoginSuccess = UserLoginSuccess;
25
+ //# sourceMappingURL=UserLoginSuccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserLoginSuccess.js","sourceRoot":"","sources":["../../src/events/UserLoginSuccess.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,kBAAU;IAC9C,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,gBAAgB;IAD5B,IAAA,aAAK,GAAE;;GACK,gBAAgB,CAI5B;AAJY,4CAAgB"}
@@ -0,0 +1,6 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserPasswordRestore extends QueueEvent {
3
+ UserUUID: string;
4
+ resetToken: string;
5
+ constructor(UserUUID: string, resetToken: string);
6
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserPasswordRestore = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserPasswordRestore = class UserPasswordRestore extends queue_1.QueueEvent {
15
+ constructor(UserUUID, resetToken) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ this.resetToken = resetToken;
19
+ }
20
+ };
21
+ UserPasswordRestore = __decorate([
22
+ (0, queue_1.Event)(),
23
+ __metadata("design:paramtypes", [String, String])
24
+ ], UserPasswordRestore);
25
+ exports.UserPasswordRestore = UserPasswordRestore;
26
+ //# sourceMappingURL=UserPassordRestore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPassordRestore.js","sourceRoot":"","sources":["../../src/events/UserPassordRestore.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAU;IACjD,YAAmB,QAAgB,EAAS,UAAkB;QAC5D,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;QAAS,eAAU,GAAV,UAAU,CAAQ;IAE9D,CAAC;CACF,CAAA;AAJY,mBAAmB;IAD/B,IAAA,aAAK,GAAE;;GACK,mBAAmB,CAI/B;AAJY,kDAAmB"}
@@ -0,0 +1,3 @@
1
+ import { FingerprintProvider } from '../interfaces';
2
+ export declare class FingerprintJs extends FingerprintProvider {
3
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FingerprintJs = void 0;
10
+ const di_1 = require("@spinajs/di");
11
+ const interfaces_1 = require("../interfaces");
12
+ let FingerprintJs = class FingerprintJs extends interfaces_1.FingerprintProvider {
13
+ };
14
+ FingerprintJs = __decorate([
15
+ (0, di_1.Injectable)(interfaces_1.FingerprintProvider)
16
+ ], FingerprintJs);
17
+ exports.FingerprintJs = FingerprintJs;
18
+ //# sourceMappingURL=FingerprintJs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FingerprintJs.js","sourceRoot":"","sources":["../../src/fingerprint/FingerprintJs.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oCAAyC;AACzC,8CAAoD;AAGpD,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,gCAAmB;CAAG,CAAA;AAA5C,aAAa;IADzB,IAAA,eAAU,EAAC,gCAAmB,CAAC;GACnB,aAAa,CAA+B;AAA5C,sCAAa"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './decorators';
2
2
  export * from './interfaces';
3
3
  export * from './middlewares';
4
- export * from './policies';
4
+ export * from './policies/RbacPolicy';
5
5
  export * from './controllers/LoginController';
6
6
  export * from './controllers/UserController';
7
7
  export * from './transformers';
package/lib/index.js CHANGED
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./decorators"), exports);
18
18
  __exportStar(require("./interfaces"), exports);
19
19
  __exportStar(require("./middlewares"), exports);
20
- __exportStar(require("./policies"), exports);
20
+ __exportStar(require("./policies/RbacPolicy"), exports);
21
21
  __exportStar(require("./controllers/LoginController"), exports);
22
22
  __exportStar(require("./controllers/UserController"), exports);
23
23
  __exportStar(require("./transformers"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,6CAA2B;AAC3B,gEAA8C;AAC9C,+DAA6C;AAC7C,iDAA+B;AAC/B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,wDAAsC;AACtC,gEAA8C;AAC9C,+DAA6C;AAC7C,iDAA+B;AAC/B,+CAA6B"}
@@ -28,3 +28,38 @@ export interface IRbacRoutePermissionDescriptor {
28
28
  */
29
29
  Permission: PermissionType;
30
30
  }
31
+ export declare abstract class TwoFactorAuthProvider {
32
+ /**
33
+ * generate secret key if this provider use is needs it or null
34
+ */
35
+ abstract initialize(user: User): Promise<any | null>;
36
+ /**
37
+ * Perform action eg. send sms or email. Some 2fac implementations do nothing eg. google auth or hardware keys
38
+ */
39
+ abstract execute(user: User): Promise<void>;
40
+ /**
41
+ * verifies token send by user
42
+ */
43
+ abstract verifyToken(token: string, user: User): Promise<boolean>;
44
+ /**
45
+ * Checks if 2fa is enabled for given user
46
+ */
47
+ abstract isEnabled(user: User): Promise<boolean>;
48
+ /**
49
+ * Checks if 2fa is initialized eg. some
50
+ * 2fa systems requires to generate private software key and pass it
51
+ * to user ( like google authenticator)
52
+ */
53
+ abstract isInitialized(user: User): Promise<boolean>;
54
+ }
55
+ export declare abstract class FingerprintProvider {
56
+ }
57
+ export interface TwoFactorAuthConfig {
58
+ enabled: boolean;
59
+ service: string;
60
+ }
61
+ export interface FingerpringConfig {
62
+ enabled: boolean;
63
+ maxDevices: number;
64
+ service: string;
65
+ }
package/lib/interfaces.js CHANGED
@@ -1,3 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FingerprintProvider = exports.TwoFactorAuthProvider = void 0;
4
+ class TwoFactorAuthProvider {
5
+ }
6
+ exports.TwoFactorAuthProvider = TwoFactorAuthProvider;
7
+ class FingerprintProvider {
8
+ }
9
+ exports.FingerprintProvider = FingerprintProvider;
3
10
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAqCA,MAAsB,qBAAqB;CA2B1C;AA3BD,sDA2BC;AAED,MAAsB,mBAAmB;CAAG;AAA5C,kDAA4C"}
@@ -0,0 +1,10 @@
1
+ import { RouteMiddleware, IController, IRoute } from '@spinajs/http';
2
+ /**
3
+ * Filters attributes of db models
4
+ */
5
+ export declare class FilterAttribute extends RouteMiddleware {
6
+ onResponse(): Promise<void>;
7
+ isEnabled(_action: IRoute, _instance: IController): boolean;
8
+ onBefore(): Promise<void>;
9
+ onAfter(): Promise<void>;
10
+ }