@spinajs/rbac 2.0.180 → 2.0.181

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 (225) hide show
  1. package/lib/cjs/auth.d.ts +15 -15
  2. package/lib/cjs/auth.js +103 -103
  3. package/lib/cjs/auth.js.map +1 -1
  4. package/lib/cjs/cli/ActivateUser.d.ts +8 -8
  5. package/lib/cjs/cli/ActivateUser.js +47 -47
  6. package/lib/cjs/cli/ActivateUser.js.map +1 -1
  7. package/lib/cjs/cli/BanUser.d.ts +8 -8
  8. package/lib/cjs/cli/BanUser.js +63 -63
  9. package/lib/cjs/cli/BanUser.js.map +1 -1
  10. package/lib/cjs/cli/ChangeUserPassword.d.ts +11 -11
  11. package/lib/cjs/cli/ChangeUserPassword.js +58 -58
  12. package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
  13. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
  14. package/lib/cjs/cli/ClearUserTimelineSchedule.js +54 -54
  15. package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +1 -1
  16. package/lib/cjs/cli/CreateUser.d.ts +17 -17
  17. package/lib/cjs/cli/CreateUser.js +69 -69
  18. package/lib/cjs/cli/CreateUser.js.map +1 -1
  19. package/lib/cjs/cli/DeleteUser.d.ts +8 -8
  20. package/lib/cjs/cli/DeleteUser.js +40 -40
  21. package/lib/cjs/cli/DeleteUser.js.map +1 -1
  22. package/lib/cjs/cli/FindUser.d.ts +12 -12
  23. package/lib/cjs/cli/FindUser.js +44 -44
  24. package/lib/cjs/cli/FindUser.js.map +1 -1
  25. package/lib/cjs/cli/GrantUserRole.d.ts +8 -8
  26. package/lib/cjs/cli/GrantUserRole.js +47 -47
  27. package/lib/cjs/cli/GrantUserRole.js.map +1 -1
  28. package/lib/cjs/cli/LatestUserEvents.d.ts +6 -6
  29. package/lib/cjs/cli/LatestUserEvents.js +37 -37
  30. package/lib/cjs/cli/LatestUserEvents.js.map +1 -1
  31. package/lib/cjs/cli/RevokeUserRole.d.ts +8 -8
  32. package/lib/cjs/cli/RevokeUserRole.js +46 -46
  33. package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
  34. package/lib/cjs/cli/UnbanUserSchedule.d.ts +8 -8
  35. package/lib/cjs/cli/UnbanUserSchedule.js +54 -54
  36. package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
  37. package/lib/cjs/config/rbac.d.ts +115 -115
  38. package/lib/cjs/config/rbac.js +120 -120
  39. package/lib/cjs/decorators/Resource.d.ts +8 -8
  40. package/lib/cjs/decorators/Resource.js +17 -17
  41. package/lib/cjs/events/NewUser.d.ts +12 -12
  42. package/lib/cjs/events/NewUser.js +16 -16
  43. package/lib/cjs/events/NewUser.js.map +1 -1
  44. package/lib/cjs/events/UserActivated.d.ts +5 -5
  45. package/lib/cjs/events/UserActivated.js +24 -24
  46. package/lib/cjs/events/UserActivated.js.map +1 -1
  47. package/lib/cjs/events/UserBanned.d.ts +6 -6
  48. package/lib/cjs/events/UserBanned.js +25 -25
  49. package/lib/cjs/events/UserBanned.js.map +1 -1
  50. package/lib/cjs/events/UserDeactivated.d.ts +5 -5
  51. package/lib/cjs/events/UserDeactivated.js +24 -24
  52. package/lib/cjs/events/UserDeactivated.js.map +1 -1
  53. package/lib/cjs/events/UserDeleted.d.ts +5 -5
  54. package/lib/cjs/events/UserDeleted.js +24 -24
  55. package/lib/cjs/events/UserDeleted.js.map +1 -1
  56. package/lib/cjs/events/UserMetadataAdded.d.ts +5 -5
  57. package/lib/cjs/events/UserMetadataAdded.js +24 -24
  58. package/lib/cjs/events/UserMetadataAdded.js.map +1 -1
  59. package/lib/cjs/events/UserMetadataChanged.d.ts +5 -5
  60. package/lib/cjs/events/UserMetadataChanged.js +24 -24
  61. package/lib/cjs/events/UserMetadataChanged.js.map +1 -1
  62. package/lib/cjs/events/UserMetadataDeleted.d.ts +5 -5
  63. package/lib/cjs/events/UserMetadataDeleted.js +24 -24
  64. package/lib/cjs/events/UserMetadataDeleted.js.map +1 -1
  65. package/lib/cjs/events/UserPasswordChanged.d.ts +5 -5
  66. package/lib/cjs/events/UserPasswordChanged.js +24 -24
  67. package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
  68. package/lib/cjs/events/UserPropertyChanged.d.ts +7 -7
  69. package/lib/cjs/events/UserPropertyChanged.js +16 -16
  70. package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
  71. package/lib/cjs/events/UserRoleGranted.d.ts +6 -6
  72. package/lib/cjs/events/UserRoleGranted.js +25 -25
  73. package/lib/cjs/events/UserRoleGranted.js.map +1 -1
  74. package/lib/cjs/events/UserRoleRevoked.d.ts +6 -6
  75. package/lib/cjs/events/UserRoleRevoked.js +25 -25
  76. package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
  77. package/lib/cjs/events/UserUnbanned.d.ts +5 -5
  78. package/lib/cjs/events/UserUnbanned.js +24 -24
  79. package/lib/cjs/events/UserUnbanned.js.map +1 -1
  80. package/lib/cjs/events/index.d.ts +13 -13
  81. package/lib/cjs/events/index.js +29 -29
  82. package/lib/cjs/index.d.ts +20 -20
  83. package/lib/cjs/index.js +85 -85
  84. package/lib/cjs/index.js.map +1 -1
  85. package/lib/cjs/interfaces.d.ts +259 -259
  86. package/lib/cjs/interfaces.js +45 -45
  87. package/lib/cjs/interfaces.js.map +1 -1
  88. package/lib/cjs/jobs/UnbanUser.d.ts +9 -9
  89. package/lib/cjs/jobs/UnbanUser.js +43 -43
  90. package/lib/cjs/jobs/UnbanUser.js.map +1 -1
  91. package/lib/cjs/middleware.d.ts +5 -5
  92. package/lib/cjs/middleware.js +24 -24
  93. package/lib/cjs/middleware.js.map +1 -1
  94. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
  95. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +56 -56
  96. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  97. package/lib/cjs/models/User.d.ts +96 -96
  98. package/lib/cjs/models/User.js +229 -229
  99. package/lib/cjs/models/User.js.map +1 -1
  100. package/lib/cjs/models/UserMetadata.d.ts +9 -9
  101. package/lib/cjs/models/UserMetadata.js +32 -32
  102. package/lib/cjs/models/UserMetadata.js.map +1 -1
  103. package/lib/cjs/models/UserTimeline.d.ts +28 -28
  104. package/lib/cjs/models/UserTimeline.js +46 -46
  105. package/lib/cjs/models/UserTimeline.js.map +1 -1
  106. package/lib/cjs/password.d.ts +25 -25
  107. package/lib/cjs/password.js +91 -91
  108. package/lib/cjs/password.js.map +1 -1
  109. package/lib/cjs/session.d.ts +33 -33
  110. package/lib/cjs/session.js +100 -100
  111. package/lib/cjs/session.js.map +1 -1
  112. package/lib/mjs/auth.d.ts +15 -15
  113. package/lib/mjs/auth.js +100 -100
  114. package/lib/mjs/auth.js.map +1 -1
  115. package/lib/mjs/cli/ActivateUser.d.ts +8 -8
  116. package/lib/mjs/cli/ActivateUser.js +44 -44
  117. package/lib/mjs/cli/ActivateUser.js.map +1 -1
  118. package/lib/mjs/cli/BanUser.d.ts +8 -8
  119. package/lib/mjs/cli/BanUser.js +60 -60
  120. package/lib/mjs/cli/BanUser.js.map +1 -1
  121. package/lib/mjs/cli/ChangeUserPassword.d.ts +11 -11
  122. package/lib/mjs/cli/ChangeUserPassword.js +55 -55
  123. package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
  124. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
  125. package/lib/mjs/cli/ClearUserTimelineSchedule.js +51 -51
  126. package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +1 -1
  127. package/lib/mjs/cli/CreateUser.d.ts +17 -17
  128. package/lib/mjs/cli/CreateUser.js +66 -66
  129. package/lib/mjs/cli/CreateUser.js.map +1 -1
  130. package/lib/mjs/cli/DeleteUser.d.ts +8 -8
  131. package/lib/mjs/cli/DeleteUser.js +37 -37
  132. package/lib/mjs/cli/DeleteUser.js.map +1 -1
  133. package/lib/mjs/cli/FindUser.d.ts +12 -12
  134. package/lib/mjs/cli/FindUser.js +41 -41
  135. package/lib/mjs/cli/FindUser.js.map +1 -1
  136. package/lib/mjs/cli/GrantUserRole.d.ts +8 -8
  137. package/lib/mjs/cli/GrantUserRole.js +41 -41
  138. package/lib/mjs/cli/GrantUserRole.js.map +1 -1
  139. package/lib/mjs/cli/LatestUserEvents.d.ts +6 -6
  140. package/lib/mjs/cli/LatestUserEvents.js +34 -34
  141. package/lib/mjs/cli/LatestUserEvents.js.map +1 -1
  142. package/lib/mjs/cli/RevokeUserRole.d.ts +8 -8
  143. package/lib/mjs/cli/RevokeUserRole.js +40 -40
  144. package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
  145. package/lib/mjs/cli/UnbanUserSchedule.d.ts +8 -8
  146. package/lib/mjs/cli/UnbanUserSchedule.js +51 -51
  147. package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
  148. package/lib/mjs/config/rbac.d.ts +115 -115
  149. package/lib/mjs/config/rbac.js +118 -118
  150. package/lib/mjs/decorators/Resource.d.ts +8 -8
  151. package/lib/mjs/decorators/Resource.js +13 -13
  152. package/lib/mjs/events/NewUser.d.ts +12 -12
  153. package/lib/mjs/events/NewUser.js +13 -13
  154. package/lib/mjs/events/NewUser.js.map +1 -1
  155. package/lib/mjs/events/UserActivated.d.ts +5 -5
  156. package/lib/mjs/events/UserActivated.js +21 -21
  157. package/lib/mjs/events/UserActivated.js.map +1 -1
  158. package/lib/mjs/events/UserBanned.d.ts +6 -6
  159. package/lib/mjs/events/UserBanned.js +22 -22
  160. package/lib/mjs/events/UserBanned.js.map +1 -1
  161. package/lib/mjs/events/UserDeactivated.d.ts +5 -5
  162. package/lib/mjs/events/UserDeactivated.js +21 -21
  163. package/lib/mjs/events/UserDeactivated.js.map +1 -1
  164. package/lib/mjs/events/UserDeleted.d.ts +5 -5
  165. package/lib/mjs/events/UserDeleted.js +21 -21
  166. package/lib/mjs/events/UserDeleted.js.map +1 -1
  167. package/lib/mjs/events/UserMetadataAdded.d.ts +5 -5
  168. package/lib/mjs/events/UserMetadataAdded.js +21 -21
  169. package/lib/mjs/events/UserMetadataAdded.js.map +1 -1
  170. package/lib/mjs/events/UserMetadataChanged.d.ts +5 -5
  171. package/lib/mjs/events/UserMetadataChanged.js +21 -21
  172. package/lib/mjs/events/UserMetadataChanged.js.map +1 -1
  173. package/lib/mjs/events/UserMetadataDeleted.d.ts +5 -5
  174. package/lib/mjs/events/UserMetadataDeleted.js +21 -21
  175. package/lib/mjs/events/UserMetadataDeleted.js.map +1 -1
  176. package/lib/mjs/events/UserPasswordChanged.d.ts +5 -5
  177. package/lib/mjs/events/UserPasswordChanged.js +21 -21
  178. package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
  179. package/lib/mjs/events/UserPropertyChanged.d.ts +7 -7
  180. package/lib/mjs/events/UserPropertyChanged.js +13 -13
  181. package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
  182. package/lib/mjs/events/UserRoleGranted.d.ts +6 -6
  183. package/lib/mjs/events/UserRoleGranted.js +22 -22
  184. package/lib/mjs/events/UserRoleGranted.js.map +1 -1
  185. package/lib/mjs/events/UserRoleRevoked.d.ts +6 -6
  186. package/lib/mjs/events/UserRoleRevoked.js +22 -22
  187. package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
  188. package/lib/mjs/events/UserUnbanned.d.ts +5 -5
  189. package/lib/mjs/events/UserUnbanned.js +21 -21
  190. package/lib/mjs/events/UserUnbanned.js.map +1 -1
  191. package/lib/mjs/events/index.d.ts +13 -13
  192. package/lib/mjs/events/index.js +13 -13
  193. package/lib/mjs/index.d.ts +20 -20
  194. package/lib/mjs/index.js +64 -64
  195. package/lib/mjs/index.js.map +1 -1
  196. package/lib/mjs/interfaces.d.ts +259 -259
  197. package/lib/mjs/interfaces.js +37 -37
  198. package/lib/mjs/interfaces.js.map +1 -1
  199. package/lib/mjs/jobs/UnbanUser.d.ts +9 -9
  200. package/lib/mjs/jobs/UnbanUser.js +40 -40
  201. package/lib/mjs/jobs/UnbanUser.js.map +1 -1
  202. package/lib/mjs/middleware.d.ts +5 -5
  203. package/lib/mjs/middleware.js +21 -21
  204. package/lib/mjs/middleware.js.map +1 -1
  205. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
  206. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +53 -53
  207. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  208. package/lib/mjs/models/User.d.ts +96 -96
  209. package/lib/mjs/models/User.js +225 -225
  210. package/lib/mjs/models/User.js.map +1 -1
  211. package/lib/mjs/models/UserMetadata.d.ts +9 -9
  212. package/lib/mjs/models/UserMetadata.js +29 -29
  213. package/lib/mjs/models/UserMetadata.js.map +1 -1
  214. package/lib/mjs/models/UserTimeline.d.ts +28 -28
  215. package/lib/mjs/models/UserTimeline.js +43 -43
  216. package/lib/mjs/models/UserTimeline.js.map +1 -1
  217. package/lib/mjs/password.d.ts +25 -25
  218. package/lib/mjs/password.js +65 -65
  219. package/lib/mjs/password.js.map +1 -1
  220. package/lib/mjs/session.d.ts +33 -33
  221. package/lib/mjs/session.js +94 -94
  222. package/lib/mjs/session.js.map +1 -1
  223. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  224. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  225. package/package.json +10 -10
@@ -1,47 +1,47 @@
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.UserAction = void 0;
13
- const orm_1 = require("@spinajs/orm");
14
- const luxon_1 = require("luxon");
15
- /**
16
- * Timeline table for storing user actions / interactions
17
- * eg. login attempts, failed logins, resource deletions, alterations etc.
18
- */
19
- let UserAction = class UserAction extends orm_1.ModelBase {
20
- asNumber() {
21
- return parseInt(this.Data, 10);
22
- }
23
- asFloat() {
24
- return parseFloat(this.Data);
25
- }
26
- asJsonObject() {
27
- return JSON.parse(this.Data);
28
- }
29
- };
30
- __decorate([
31
- (0, orm_1.Primary)(),
32
- __metadata("design:type", Number)
33
- ], UserAction.prototype, "Id", void 0);
34
- __decorate([
35
- (0, orm_1.BelongsTo)('User'),
36
- __metadata("design:type", orm_1.SingleRelation)
37
- ], UserAction.prototype, "User", void 0);
38
- __decorate([
39
- (0, orm_1.CreatedAt)(),
40
- __metadata("design:type", luxon_1.DateTime)
41
- ], UserAction.prototype, "CreatedAt", void 0);
42
- UserAction = __decorate([
43
- (0, orm_1.Connection)('default'),
44
- (0, orm_1.Model)('user_actions')
45
- ], UserAction);
46
- exports.UserAction = UserAction;
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.UserAction = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ const luxon_1 = require("luxon");
15
+ /**
16
+ * Timeline table for storing user actions / interactions
17
+ * eg. login attempts, failed logins, resource deletions, alterations etc.
18
+ */
19
+ let UserAction = class UserAction extends orm_1.ModelBase {
20
+ asNumber() {
21
+ return parseInt(this.Data, 10);
22
+ }
23
+ asFloat() {
24
+ return parseFloat(this.Data);
25
+ }
26
+ asJsonObject() {
27
+ return JSON.parse(this.Data);
28
+ }
29
+ };
30
+ exports.UserAction = UserAction;
31
+ __decorate([
32
+ (0, orm_1.Primary)(),
33
+ __metadata("design:type", Number)
34
+ ], UserAction.prototype, "Id", void 0);
35
+ __decorate([
36
+ (0, orm_1.BelongsTo)('User'),
37
+ __metadata("design:type", orm_1.SingleRelation)
38
+ ], UserAction.prototype, "User", void 0);
39
+ __decorate([
40
+ (0, orm_1.CreatedAt)(),
41
+ __metadata("design:type", luxon_1.DateTime)
42
+ ], UserAction.prototype, "CreatedAt", void 0);
43
+ exports.UserAction = UserAction = __decorate([
44
+ (0, orm_1.Connection)('default'),
45
+ (0, orm_1.Model)('user_actions')
46
+ ], UserAction);
47
47
  //# sourceMappingURL=UserTimeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserTimeline.js","sourceRoot":"","sources":["../../../src/models/UserTimeline.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAA2G;AAC3G,iCAAiC;AAGjC;;;GAGG;AAGI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,eAAqB;IAwB5C,QAAQ;QACb,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAM,CAAC;IACpC,CAAC;CAIF,CAAA;AArCC;IAAC,IAAA,aAAO,GAAE;;sCACQ;AAElB;IAAC,IAAA,eAAS,EAAC,MAAM,CAAC;8BACL,oBAAc;wCAAO;AA+BlC;IAAC,IAAA,eAAS,GAAE;8BACM,gBAAQ;6CAAC;AArChB,UAAU;IAFtB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,cAAc,CAAC;GACT,UAAU,CAsCtB;AAtCY,gCAAU"}
1
+ {"version":3,"file":"UserTimeline.js","sourceRoot":"","sources":["../../../src/models/UserTimeline.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAA2G;AAC3G,iCAAiC;AAGjC;;;GAGG;AAGI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,eAAqB;IAwB5C,QAAQ;QACb,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAM,CAAC;IACpC,CAAC;CAIF,CAAA;AAtCY,gCAAU;AAEd;IADN,IAAA,aAAO,GAAE;;sCACQ;AAGX;IADN,IAAA,eAAS,EAAC,MAAM,CAAC;8BACL,oBAAc;wCAAO;AAgC3B;IADN,IAAA,eAAS,GAAE;8BACM,gBAAQ;6CAAC;qBArChB,UAAU;IAFtB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,cAAc,CAAC;GACT,UAAU,CAsCtB"}
@@ -1,26 +1,26 @@
1
- import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
2
- import { DataValidator } from '@spinajs/validation';
3
- /**
4
- * Simple password service that use argon2 hash alghoritm and entropy-string to generate password
5
- */
6
- export declare class BasicPasswordProvider implements PasswordProvider {
7
- hash(input: string): Promise<string>;
8
- /**
9
- *
10
- * Checks if hash is valid for given password
11
- *
12
- * @param hash - hash to validate
13
- * @param password - password to validate
14
- */
15
- verify(hash: string, password: string): Promise<boolean>;
16
- generate(): string;
17
- }
18
- /**
19
- * Simple password validation service based on JSON schema validation
20
- */
21
- export declare class BasicPasswordValidationProvider extends PasswordValidationProvider {
22
- protected ValidationSchema: object;
23
- protected Validator: DataValidator;
24
- check(password: string): boolean;
25
- }
1
+ import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
2
+ import { DataValidator } from '@spinajs/validation';
3
+ /**
4
+ * Simple password service that use argon2 hash alghoritm and entropy-string to generate password
5
+ */
6
+ export declare class BasicPasswordProvider implements PasswordProvider {
7
+ hash(input: string): Promise<string>;
8
+ /**
9
+ *
10
+ * Checks if hash is valid for given password
11
+ *
12
+ * @param hash - hash to validate
13
+ * @param password - password to validate
14
+ */
15
+ verify(hash: string, password: string): Promise<boolean>;
16
+ generate(): string;
17
+ }
18
+ /**
19
+ * Simple password validation service based on JSON schema validation
20
+ */
21
+ export declare class BasicPasswordValidationProvider extends PasswordValidationProvider {
22
+ protected ValidationSchema: object;
23
+ protected Validator: DataValidator;
24
+ check(password: string): boolean;
25
+ }
26
26
  //# sourceMappingURL=password.d.ts.map
@@ -1,92 +1,92 @@
1
- "use strict";
2
- // tslint:disable-next-line: no-var-requires
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
20
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22
- 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;
23
- return c > 3 && r && Object.defineProperty(target, key, r), r;
24
- };
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
- var __metadata = (this && this.__metadata) || function (k, v) {
33
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
- };
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.BasicPasswordValidationProvider = exports.BasicPasswordProvider = void 0;
37
- const interfaces_js_1 = require("./interfaces.js");
38
- const argon = __importStar(require("argon2"));
39
- const di_1 = require("@spinajs/di");
40
- const configuration_1 = require("@spinajs/configuration");
41
- const validation_1 = require("@spinajs/validation");
42
- const entropy_string_1 = require("entropy-string");
43
- /**
44
- * Simple password service that use argon2 hash alghoritm and entropy-string to generate password
45
- */
46
- let BasicPasswordProvider = class BasicPasswordProvider {
47
- async hash(input) {
48
- // uses default argon settings, no need to tweak
49
- return await argon.hash(input);
50
- }
51
- /**
52
- *
53
- * Checks if hash is valid for given password
54
- *
55
- * @param hash - hash to validate
56
- * @param password - password to validate
57
- */
58
- async verify(hash, password) {
59
- return await argon.verify(hash, password);
60
- }
61
- generate() {
62
- // generates password with entropy of 60 bits ( balance of ease vs value )
63
- const random = new entropy_string_1.Entropy({ charset: entropy_string_1.charset32 });
64
- return random.string(60);
65
- }
66
- };
67
- BasicPasswordProvider = __decorate([
68
- (0, di_1.Injectable)(interfaces_js_1.PasswordProvider)
69
- ], BasicPasswordProvider);
70
- exports.BasicPasswordProvider = BasicPasswordProvider;
71
- /**
72
- * Simple password validation service based on JSON schema validation
73
- */
74
- let BasicPasswordValidationProvider = class BasicPasswordValidationProvider extends interfaces_js_1.PasswordValidationProvider {
75
- check(password) {
76
- const [result] = this.Validator.tryValidate(this.ValidationSchema, password);
77
- return result;
78
- }
79
- };
80
- __decorate([
81
- (0, configuration_1.Config)('rbac.password.validation.rule'),
82
- __metadata("design:type", Object)
83
- ], BasicPasswordValidationProvider.prototype, "ValidationSchema", void 0);
84
- __decorate([
85
- (0, di_1.Autoinject)(),
86
- __metadata("design:type", validation_1.DataValidator)
87
- ], BasicPasswordValidationProvider.prototype, "Validator", void 0);
88
- BasicPasswordValidationProvider = __decorate([
89
- (0, di_1.Injectable)(interfaces_js_1.PasswordValidationProvider)
90
- ], BasicPasswordValidationProvider);
91
- exports.BasicPasswordValidationProvider = BasicPasswordValidationProvider;
1
+ "use strict";
2
+ // tslint:disable-next-line: no-var-requires
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
20
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22
+ 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;
23
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
24
+ };
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __metadata = (this && this.__metadata) || function (k, v) {
33
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BasicPasswordValidationProvider = exports.BasicPasswordProvider = void 0;
37
+ const interfaces_js_1 = require("./interfaces.js");
38
+ const argon = __importStar(require("argon2"));
39
+ const di_1 = require("@spinajs/di");
40
+ const configuration_1 = require("@spinajs/configuration");
41
+ const validation_1 = require("@spinajs/validation");
42
+ const entropy_string_1 = require("entropy-string");
43
+ /**
44
+ * Simple password service that use argon2 hash alghoritm and entropy-string to generate password
45
+ */
46
+ let BasicPasswordProvider = class BasicPasswordProvider {
47
+ async hash(input) {
48
+ // uses default argon settings, no need to tweak
49
+ return await argon.hash(input);
50
+ }
51
+ /**
52
+ *
53
+ * Checks if hash is valid for given password
54
+ *
55
+ * @param hash - hash to validate
56
+ * @param password - password to validate
57
+ */
58
+ async verify(hash, password) {
59
+ return await argon.verify(hash, password);
60
+ }
61
+ generate() {
62
+ // generates password with entropy of 60 bits ( balance of ease vs value )
63
+ const random = new entropy_string_1.Entropy({ charset: entropy_string_1.charset32 });
64
+ return random.string(60);
65
+ }
66
+ };
67
+ exports.BasicPasswordProvider = BasicPasswordProvider;
68
+ exports.BasicPasswordProvider = BasicPasswordProvider = __decorate([
69
+ (0, di_1.Injectable)(interfaces_js_1.PasswordProvider)
70
+ ], BasicPasswordProvider);
71
+ /**
72
+ * Simple password validation service based on JSON schema validation
73
+ */
74
+ let BasicPasswordValidationProvider = class BasicPasswordValidationProvider extends interfaces_js_1.PasswordValidationProvider {
75
+ check(password) {
76
+ const [result] = this.Validator.tryValidate(this.ValidationSchema, password);
77
+ return result;
78
+ }
79
+ };
80
+ exports.BasicPasswordValidationProvider = BasicPasswordValidationProvider;
81
+ __decorate([
82
+ (0, configuration_1.Config)('rbac.password.validation.rule'),
83
+ __metadata("design:type", Object)
84
+ ], BasicPasswordValidationProvider.prototype, "ValidationSchema", void 0);
85
+ __decorate([
86
+ (0, di_1.Autoinject)(),
87
+ __metadata("design:type", validation_1.DataValidator)
88
+ ], BasicPasswordValidationProvider.prototype, "Validator", void 0);
89
+ exports.BasicPasswordValidationProvider = BasicPasswordValidationProvider = __decorate([
90
+ (0, di_1.Injectable)(interfaces_js_1.PasswordValidationProvider)
91
+ ], BasicPasswordValidationProvider);
92
92
  //# sourceMappingURL=password.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5C,mDAA+E;AAC/E,8CAAgC;AAChC,oCAAqD;AACrD,0DAAgD;AAChD,oDAAoD;AACpD,mDAAoD;AAEpD;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACzB,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QAChD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,QAAQ;QACb,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,wBAAO,CAAC,EAAE,OAAO,EAAE,0BAAS,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,IAAA,eAAU,EAAC,gCAAgB,CAAC;GAChB,qBAAqB,CAsBjC;AAtBY,sDAAqB;AAwBlC;;GAEG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,0CAA0B;IAOtE,KAAK,CAAC,QAAgB;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAe,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAVC;IAAC,IAAA,sBAAM,EAAC,+BAA+B,CAAC;;yEACL;AAEnC;IAAC,IAAA,eAAU,GAAE;8BACQ,0BAAa;kEAAC;AALxB,+BAA+B;IAD3C,IAAA,eAAU,EAAC,0CAA0B,CAAC;GAC1B,+BAA+B,CAW3C;AAXY,0EAA+B"}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5C,mDAA+E;AAC/E,8CAAgC;AAChC,oCAAqD;AACrD,0DAAgD;AAChD,oDAAoD;AACpD,mDAAoD;AAEpD;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACzB,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QAChD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,QAAQ;QACb,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,wBAAO,CAAC,EAAE,OAAO,EAAE,0BAAS,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AAtBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAU,EAAC,gCAAgB,CAAC;GAChB,qBAAqB,CAsBjC;AAED;;GAEG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,0CAA0B;IAOtE,KAAK,CAAC,QAAgB;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAe,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAXY,0EAA+B;AAEhC;IADT,IAAA,sBAAM,EAAC,+BAA+B,CAAC;;yEACL;AAGzB;IADT,IAAA,eAAU,GAAE;8BACQ,0BAAa;kEAAC;0CALxB,+BAA+B;IAD3C,IAAA,eAAU,EAAC,0CAA0B,CAAC;GAC1B,+BAA+B,CAW3C"}
@@ -1,34 +1,34 @@
1
- import { DateTime } from 'luxon';
2
- import { SessionProvider, ISession } from './interfaces.js';
3
- /**
4
- * Session base class
5
- */
6
- export declare class Session implements ISession {
7
- protected SessionExpirationTime: number;
8
- SessionId: string;
9
- /**
10
- * Expiration time for session, if null it does not expire
11
- */
12
- Expiration: DateTime;
13
- Data: Map<string, unknown>;
14
- Creation: DateTime;
15
- constructor(session?: Partial<ISession>);
16
- /**
17
- * Extends lifetime of session
18
- *
19
- * @param seconds - hom mutch to extend
20
- */
21
- extend(seconds?: number): void;
22
- }
23
- /**
24
- * Simple session storage in memory, for testing or rapid prototyping
25
- */
26
- export declare class MemorySessionStore extends SessionProvider<ISession> {
27
- protected Sessions: Map<string, ISession>;
28
- truncate(): Promise<void>;
29
- touch(session: ISession): Promise<void>;
30
- restore(sessionId: string): Promise<ISession | null>;
31
- delete(sessionId: string): Promise<void>;
32
- save(idOrSession: ISession | string, data?: object): Promise<void>;
33
- }
1
+ import { DateTime } from 'luxon';
2
+ import { SessionProvider, ISession } from './interfaces.js';
3
+ /**
4
+ * Session base class
5
+ */
6
+ export declare class Session implements ISession {
7
+ protected SessionExpirationTime: number;
8
+ SessionId: string;
9
+ /**
10
+ * Expiration time for session, if null it does not expire
11
+ */
12
+ Expiration: DateTime;
13
+ Data: Map<string, unknown>;
14
+ Creation: DateTime;
15
+ constructor(session?: Partial<ISession>);
16
+ /**
17
+ * Extends lifetime of session
18
+ *
19
+ * @param seconds - hom mutch to extend
20
+ */
21
+ extend(seconds?: number): void;
22
+ }
23
+ /**
24
+ * Simple session storage in memory, for testing or rapid prototyping
25
+ */
26
+ export declare class MemorySessionStore extends SessionProvider<ISession> {
27
+ protected Sessions: Map<string, ISession>;
28
+ truncate(): Promise<void>;
29
+ touch(session: ISession): Promise<void>;
30
+ restore(sessionId: string): Promise<ISession | null>;
31
+ delete(sessionId: string): Promise<void>;
32
+ save(idOrSession: ISession | string, data?: object): Promise<void>;
33
+ }
34
34
  //# sourceMappingURL=session.d.ts.map
@@ -1,101 +1,101 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.MemorySessionStore = exports.Session = void 0;
16
- const luxon_1 = require("luxon");
17
- const interfaces_js_1 = require("./interfaces.js");
18
- const di_1 = require("@spinajs/di");
19
- const configuration_1 = require("@spinajs/configuration");
20
- const uuid_1 = require("uuid");
21
- const lodash_1 = __importDefault(require("lodash"));
22
- /**
23
- * Session base class
24
- */
25
- let Session = class Session {
26
- constructor(session) {
27
- this.SessionId = (0, uuid_1.v4)();
28
- /**
29
- * Expiration time for session, if null it does not expire
30
- */
31
- this.Expiration = null;
32
- this.Data = new Map();
33
- this.Creation = luxon_1.DateTime.now();
34
- if (session) {
35
- Object.assign(this, session);
36
- }
37
- }
38
- /**
39
- * Extends lifetime of session
40
- *
41
- * @param seconds - hom mutch to extend
42
- */
43
- extend(seconds) {
44
- this.Expiration = luxon_1.DateTime.now().plus({ seconds: seconds ? seconds : this.SessionExpirationTime });
45
- }
46
- };
47
- __decorate([
48
- (0, configuration_1.Config)('rbac.session.expiration'),
49
- __metadata("design:type", Number)
50
- ], Session.prototype, "SessionExpirationTime", void 0);
51
- Session = __decorate([
52
- (0, di_1.NewInstance)(),
53
- __metadata("design:paramtypes", [Object])
54
- ], Session);
55
- exports.Session = Session;
56
- /**
57
- * Simple session storage in memory, for testing or rapid prototyping
58
- */
59
- let MemorySessionStore = class MemorySessionStore extends interfaces_js_1.SessionProvider {
60
- constructor() {
61
- super(...arguments);
62
- this.Sessions = new Map();
63
- }
64
- async truncate() {
65
- this.Sessions = new Map();
66
- }
67
- async touch(session) {
68
- return this.save(session);
69
- }
70
- async restore(sessionId) {
71
- if (this.Sessions.has(sessionId)) {
72
- const session = this.Sessions.get(sessionId);
73
- if (!session.Expiration || session.Expiration > luxon_1.DateTime.now()) {
74
- return session;
75
- }
76
- return null;
77
- }
78
- return null;
79
- }
80
- async delete(sessionId) {
81
- if (this.Sessions.has(sessionId)) {
82
- this.Sessions.delete(sessionId);
83
- }
84
- }
85
- async save(idOrSession, data) {
86
- if (lodash_1.default.isString(idOrSession)) {
87
- const s = this.Sessions.get(idOrSession);
88
- for (const key in data) {
89
- s.Data.set(key, data[key]);
90
- }
91
- }
92
- else {
93
- this.Sessions.set(idOrSession.SessionId, idOrSession);
94
- }
95
- }
96
- };
97
- MemorySessionStore = __decorate([
98
- (0, di_1.Injectable)(interfaces_js_1.SessionProvider)
99
- ], MemorySessionStore);
100
- exports.MemorySessionStore = MemorySessionStore;
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MemorySessionStore = exports.Session = void 0;
16
+ const luxon_1 = require("luxon");
17
+ const interfaces_js_1 = require("./interfaces.js");
18
+ const di_1 = require("@spinajs/di");
19
+ const configuration_1 = require("@spinajs/configuration");
20
+ const uuid_1 = require("uuid");
21
+ const lodash_1 = __importDefault(require("lodash"));
22
+ /**
23
+ * Session base class
24
+ */
25
+ let Session = class Session {
26
+ constructor(session) {
27
+ this.SessionId = (0, uuid_1.v4)();
28
+ /**
29
+ * Expiration time for session, if null it does not expire
30
+ */
31
+ this.Expiration = null;
32
+ this.Data = new Map();
33
+ this.Creation = luxon_1.DateTime.now();
34
+ if (session) {
35
+ Object.assign(this, session);
36
+ }
37
+ }
38
+ /**
39
+ * Extends lifetime of session
40
+ *
41
+ * @param seconds - hom mutch to extend
42
+ */
43
+ extend(seconds) {
44
+ this.Expiration = luxon_1.DateTime.now().plus({ seconds: seconds ? seconds : this.SessionExpirationTime });
45
+ }
46
+ };
47
+ exports.Session = Session;
48
+ __decorate([
49
+ (0, configuration_1.Config)('rbac.session.expiration'),
50
+ __metadata("design:type", Number)
51
+ ], Session.prototype, "SessionExpirationTime", void 0);
52
+ exports.Session = Session = __decorate([
53
+ (0, di_1.NewInstance)(),
54
+ __metadata("design:paramtypes", [Object])
55
+ ], Session);
56
+ /**
57
+ * Simple session storage in memory, for testing or rapid prototyping
58
+ */
59
+ let MemorySessionStore = class MemorySessionStore extends interfaces_js_1.SessionProvider {
60
+ constructor() {
61
+ super(...arguments);
62
+ this.Sessions = new Map();
63
+ }
64
+ async truncate() {
65
+ this.Sessions = new Map();
66
+ }
67
+ async touch(session) {
68
+ return this.save(session);
69
+ }
70
+ async restore(sessionId) {
71
+ if (this.Sessions.has(sessionId)) {
72
+ const session = this.Sessions.get(sessionId);
73
+ if (!session.Expiration || session.Expiration > luxon_1.DateTime.now()) {
74
+ return session;
75
+ }
76
+ return null;
77
+ }
78
+ return null;
79
+ }
80
+ async delete(sessionId) {
81
+ if (this.Sessions.has(sessionId)) {
82
+ this.Sessions.delete(sessionId);
83
+ }
84
+ }
85
+ async save(idOrSession, data) {
86
+ if (lodash_1.default.isString(idOrSession)) {
87
+ const s = this.Sessions.get(idOrSession);
88
+ for (const key in data) {
89
+ s.Data.set(key, data[key]);
90
+ }
91
+ }
92
+ else {
93
+ this.Sessions.set(idOrSession.SessionId, idOrSession);
94
+ }
95
+ }
96
+ };
97
+ exports.MemorySessionStore = MemorySessionStore;
98
+ exports.MemorySessionStore = MemorySessionStore = __decorate([
99
+ (0, di_1.Injectable)(interfaces_js_1.SessionProvider)
100
+ ], MemorySessionStore);
101
101
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,mDAA4D;AAC5D,oCAAsD;AACtD,0DAAgD;AAChD,+BAAoC;AACpC,oDAAuB;AAEvB;;GAEG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAO;IAelB,YAAY,OAA2B;QAXhC,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;QAEpC;;WAEG;QACI,eAAU,GAAa,IAAI,CAAC;QAE5B,SAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEvC,aAAQ,GAAa,gBAAQ,CAAC,GAAG,EAAE,CAAC;QAGzC,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAgB;QAC5B,IAAI,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrG,CAAC;CACF,CAAA;AA5BC;IAAC,IAAA,sBAAM,EAAC,yBAAyB,CAAC;;sDACM;AAF7B,OAAO;IADnB,IAAA,gBAAW,GAAE;;GACD,OAAO,CA6BnB;AA7BY,0BAAO;AA+BpB;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,+BAAyB;IAA1D;;QACK,aAAQ,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAuC1E,CAAC;IArCQ,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAiB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,EAAE;gBAC9D,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAA8B,EAAE,IAAa;QAC7D,IAAI,gBAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvD;IACH,CAAC;CACF,CAAA;AAxCY,kBAAkB;IAD9B,IAAA,eAAU,EAAC,+BAAe,CAAC;GACf,kBAAkB,CAwC9B;AAxCY,gDAAkB"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,mDAA4D;AAC5D,oCAAsD;AACtD,0DAAgD;AAChD,+BAAoC;AACpC,oDAAuB;AAEvB;;GAEG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAO;IAelB,YAAY,OAA2B;QAXhC,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;QAEpC;;WAEG;QACI,eAAU,GAAa,IAAI,CAAC;QAE5B,SAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEvC,aAAQ,GAAa,gBAAQ,CAAC,GAAG,EAAE,CAAC;QAGzC,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAgB;QAC5B,IAAI,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrG,CAAC;CACF,CAAA;AA7BY,0BAAO;AAER;IADT,IAAA,sBAAM,EAAC,yBAAyB,CAAC;;sDACM;kBAF7B,OAAO;IADnB,IAAA,gBAAW,GAAE;;GACD,OAAO,CA6BnB;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,+BAAyB;IAA1D;;QACK,aAAQ,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAuC1E,CAAC;IArCQ,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAiB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,EAAE;gBAC9D,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAA8B,EAAE,IAAa;QAC7D,IAAI,gBAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvD;IACH,CAAC;CACF,CAAA;AAxCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAU,EAAC,+BAAe,CAAC;GACf,kBAAkB,CAwC9B"}