@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.
- package/lib/cjs/auth.d.ts +15 -15
- package/lib/cjs/auth.js +103 -103
- package/lib/cjs/auth.js.map +1 -1
- package/lib/cjs/cli/ActivateUser.d.ts +8 -8
- package/lib/cjs/cli/ActivateUser.js +47 -47
- package/lib/cjs/cli/ActivateUser.js.map +1 -1
- package/lib/cjs/cli/BanUser.d.ts +8 -8
- package/lib/cjs/cli/BanUser.js +63 -63
- package/lib/cjs/cli/BanUser.js.map +1 -1
- package/lib/cjs/cli/ChangeUserPassword.d.ts +11 -11
- package/lib/cjs/cli/ChangeUserPassword.js +58 -58
- package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
- package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
- package/lib/cjs/cli/ClearUserTimelineSchedule.js +54 -54
- package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +1 -1
- package/lib/cjs/cli/CreateUser.d.ts +17 -17
- package/lib/cjs/cli/CreateUser.js +69 -69
- package/lib/cjs/cli/CreateUser.js.map +1 -1
- package/lib/cjs/cli/DeleteUser.d.ts +8 -8
- package/lib/cjs/cli/DeleteUser.js +40 -40
- package/lib/cjs/cli/DeleteUser.js.map +1 -1
- package/lib/cjs/cli/FindUser.d.ts +12 -12
- package/lib/cjs/cli/FindUser.js +44 -44
- package/lib/cjs/cli/FindUser.js.map +1 -1
- package/lib/cjs/cli/GrantUserRole.d.ts +8 -8
- package/lib/cjs/cli/GrantUserRole.js +47 -47
- package/lib/cjs/cli/GrantUserRole.js.map +1 -1
- package/lib/cjs/cli/LatestUserEvents.d.ts +6 -6
- package/lib/cjs/cli/LatestUserEvents.js +37 -37
- package/lib/cjs/cli/LatestUserEvents.js.map +1 -1
- package/lib/cjs/cli/RevokeUserRole.d.ts +8 -8
- package/lib/cjs/cli/RevokeUserRole.js +46 -46
- package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
- package/lib/cjs/cli/UnbanUserSchedule.d.ts +8 -8
- package/lib/cjs/cli/UnbanUserSchedule.js +54 -54
- package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/cjs/config/rbac.d.ts +115 -115
- package/lib/cjs/config/rbac.js +120 -120
- package/lib/cjs/decorators/Resource.d.ts +8 -8
- package/lib/cjs/decorators/Resource.js +17 -17
- package/lib/cjs/events/NewUser.d.ts +12 -12
- package/lib/cjs/events/NewUser.js +16 -16
- package/lib/cjs/events/NewUser.js.map +1 -1
- package/lib/cjs/events/UserActivated.d.ts +5 -5
- package/lib/cjs/events/UserActivated.js +24 -24
- package/lib/cjs/events/UserActivated.js.map +1 -1
- package/lib/cjs/events/UserBanned.d.ts +6 -6
- package/lib/cjs/events/UserBanned.js +25 -25
- package/lib/cjs/events/UserBanned.js.map +1 -1
- package/lib/cjs/events/UserDeactivated.d.ts +5 -5
- package/lib/cjs/events/UserDeactivated.js +24 -24
- package/lib/cjs/events/UserDeactivated.js.map +1 -1
- package/lib/cjs/events/UserDeleted.d.ts +5 -5
- package/lib/cjs/events/UserDeleted.js +24 -24
- package/lib/cjs/events/UserDeleted.js.map +1 -1
- package/lib/cjs/events/UserMetadataAdded.d.ts +5 -5
- package/lib/cjs/events/UserMetadataAdded.js +24 -24
- package/lib/cjs/events/UserMetadataAdded.js.map +1 -1
- package/lib/cjs/events/UserMetadataChanged.d.ts +5 -5
- package/lib/cjs/events/UserMetadataChanged.js +24 -24
- package/lib/cjs/events/UserMetadataChanged.js.map +1 -1
- package/lib/cjs/events/UserMetadataDeleted.d.ts +5 -5
- package/lib/cjs/events/UserMetadataDeleted.js +24 -24
- package/lib/cjs/events/UserMetadataDeleted.js.map +1 -1
- package/lib/cjs/events/UserPasswordChanged.d.ts +5 -5
- package/lib/cjs/events/UserPasswordChanged.js +24 -24
- package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
- package/lib/cjs/events/UserPropertyChanged.d.ts +7 -7
- package/lib/cjs/events/UserPropertyChanged.js +16 -16
- package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
- package/lib/cjs/events/UserRoleGranted.d.ts +6 -6
- package/lib/cjs/events/UserRoleGranted.js +25 -25
- package/lib/cjs/events/UserRoleGranted.js.map +1 -1
- package/lib/cjs/events/UserRoleRevoked.d.ts +6 -6
- package/lib/cjs/events/UserRoleRevoked.js +25 -25
- package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
- package/lib/cjs/events/UserUnbanned.d.ts +5 -5
- package/lib/cjs/events/UserUnbanned.js +24 -24
- package/lib/cjs/events/UserUnbanned.js.map +1 -1
- package/lib/cjs/events/index.d.ts +13 -13
- package/lib/cjs/events/index.js +29 -29
- package/lib/cjs/index.d.ts +20 -20
- package/lib/cjs/index.js +85 -85
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +259 -259
- package/lib/cjs/interfaces.js +45 -45
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/jobs/UnbanUser.d.ts +9 -9
- package/lib/cjs/jobs/UnbanUser.js +43 -43
- package/lib/cjs/jobs/UnbanUser.js.map +1 -1
- package/lib/cjs/middleware.d.ts +5 -5
- package/lib/cjs/middleware.js +24 -24
- package/lib/cjs/middleware.js.map +1 -1
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +56 -56
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/cjs/models/User.d.ts +96 -96
- package/lib/cjs/models/User.js +229 -229
- package/lib/cjs/models/User.js.map +1 -1
- package/lib/cjs/models/UserMetadata.d.ts +9 -9
- package/lib/cjs/models/UserMetadata.js +32 -32
- package/lib/cjs/models/UserMetadata.js.map +1 -1
- package/lib/cjs/models/UserTimeline.d.ts +28 -28
- package/lib/cjs/models/UserTimeline.js +46 -46
- package/lib/cjs/models/UserTimeline.js.map +1 -1
- package/lib/cjs/password.d.ts +25 -25
- package/lib/cjs/password.js +91 -91
- package/lib/cjs/password.js.map +1 -1
- package/lib/cjs/session.d.ts +33 -33
- package/lib/cjs/session.js +100 -100
- package/lib/cjs/session.js.map +1 -1
- package/lib/mjs/auth.d.ts +15 -15
- package/lib/mjs/auth.js +100 -100
- package/lib/mjs/auth.js.map +1 -1
- package/lib/mjs/cli/ActivateUser.d.ts +8 -8
- package/lib/mjs/cli/ActivateUser.js +44 -44
- package/lib/mjs/cli/ActivateUser.js.map +1 -1
- package/lib/mjs/cli/BanUser.d.ts +8 -8
- package/lib/mjs/cli/BanUser.js +60 -60
- package/lib/mjs/cli/BanUser.js.map +1 -1
- package/lib/mjs/cli/ChangeUserPassword.d.ts +11 -11
- package/lib/mjs/cli/ChangeUserPassword.js +55 -55
- package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
- package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
- package/lib/mjs/cli/ClearUserTimelineSchedule.js +51 -51
- package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +1 -1
- package/lib/mjs/cli/CreateUser.d.ts +17 -17
- package/lib/mjs/cli/CreateUser.js +66 -66
- package/lib/mjs/cli/CreateUser.js.map +1 -1
- package/lib/mjs/cli/DeleteUser.d.ts +8 -8
- package/lib/mjs/cli/DeleteUser.js +37 -37
- package/lib/mjs/cli/DeleteUser.js.map +1 -1
- package/lib/mjs/cli/FindUser.d.ts +12 -12
- package/lib/mjs/cli/FindUser.js +41 -41
- package/lib/mjs/cli/FindUser.js.map +1 -1
- package/lib/mjs/cli/GrantUserRole.d.ts +8 -8
- package/lib/mjs/cli/GrantUserRole.js +41 -41
- package/lib/mjs/cli/GrantUserRole.js.map +1 -1
- package/lib/mjs/cli/LatestUserEvents.d.ts +6 -6
- package/lib/mjs/cli/LatestUserEvents.js +34 -34
- package/lib/mjs/cli/LatestUserEvents.js.map +1 -1
- package/lib/mjs/cli/RevokeUserRole.d.ts +8 -8
- package/lib/mjs/cli/RevokeUserRole.js +40 -40
- package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
- package/lib/mjs/cli/UnbanUserSchedule.d.ts +8 -8
- package/lib/mjs/cli/UnbanUserSchedule.js +51 -51
- package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/mjs/config/rbac.d.ts +115 -115
- package/lib/mjs/config/rbac.js +118 -118
- package/lib/mjs/decorators/Resource.d.ts +8 -8
- package/lib/mjs/decorators/Resource.js +13 -13
- package/lib/mjs/events/NewUser.d.ts +12 -12
- package/lib/mjs/events/NewUser.js +13 -13
- package/lib/mjs/events/NewUser.js.map +1 -1
- package/lib/mjs/events/UserActivated.d.ts +5 -5
- package/lib/mjs/events/UserActivated.js +21 -21
- package/lib/mjs/events/UserActivated.js.map +1 -1
- package/lib/mjs/events/UserBanned.d.ts +6 -6
- package/lib/mjs/events/UserBanned.js +22 -22
- package/lib/mjs/events/UserBanned.js.map +1 -1
- package/lib/mjs/events/UserDeactivated.d.ts +5 -5
- package/lib/mjs/events/UserDeactivated.js +21 -21
- package/lib/mjs/events/UserDeactivated.js.map +1 -1
- package/lib/mjs/events/UserDeleted.d.ts +5 -5
- package/lib/mjs/events/UserDeleted.js +21 -21
- package/lib/mjs/events/UserDeleted.js.map +1 -1
- package/lib/mjs/events/UserMetadataAdded.d.ts +5 -5
- package/lib/mjs/events/UserMetadataAdded.js +21 -21
- package/lib/mjs/events/UserMetadataAdded.js.map +1 -1
- package/lib/mjs/events/UserMetadataChanged.d.ts +5 -5
- package/lib/mjs/events/UserMetadataChanged.js +21 -21
- package/lib/mjs/events/UserMetadataChanged.js.map +1 -1
- package/lib/mjs/events/UserMetadataDeleted.d.ts +5 -5
- package/lib/mjs/events/UserMetadataDeleted.js +21 -21
- package/lib/mjs/events/UserMetadataDeleted.js.map +1 -1
- package/lib/mjs/events/UserPasswordChanged.d.ts +5 -5
- package/lib/mjs/events/UserPasswordChanged.js +21 -21
- package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
- package/lib/mjs/events/UserPropertyChanged.d.ts +7 -7
- package/lib/mjs/events/UserPropertyChanged.js +13 -13
- package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
- package/lib/mjs/events/UserRoleGranted.d.ts +6 -6
- package/lib/mjs/events/UserRoleGranted.js +22 -22
- package/lib/mjs/events/UserRoleGranted.js.map +1 -1
- package/lib/mjs/events/UserRoleRevoked.d.ts +6 -6
- package/lib/mjs/events/UserRoleRevoked.js +22 -22
- package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
- package/lib/mjs/events/UserUnbanned.d.ts +5 -5
- package/lib/mjs/events/UserUnbanned.js +21 -21
- package/lib/mjs/events/UserUnbanned.js.map +1 -1
- package/lib/mjs/events/index.d.ts +13 -13
- package/lib/mjs/events/index.js +13 -13
- package/lib/mjs/index.d.ts +20 -20
- package/lib/mjs/index.js +64 -64
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +259 -259
- package/lib/mjs/interfaces.js +37 -37
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/jobs/UnbanUser.d.ts +9 -9
- package/lib/mjs/jobs/UnbanUser.js +40 -40
- package/lib/mjs/jobs/UnbanUser.js.map +1 -1
- package/lib/mjs/middleware.d.ts +5 -5
- package/lib/mjs/middleware.js +21 -21
- package/lib/mjs/middleware.js.map +1 -1
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +53 -53
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/mjs/models/User.d.ts +96 -96
- package/lib/mjs/models/User.js +225 -225
- package/lib/mjs/models/User.js.map +1 -1
- package/lib/mjs/models/UserMetadata.d.ts +9 -9
- package/lib/mjs/models/UserMetadata.js +29 -29
- package/lib/mjs/models/UserMetadata.js.map +1 -1
- package/lib/mjs/models/UserTimeline.d.ts +28 -28
- package/lib/mjs/models/UserTimeline.js +43 -43
- package/lib/mjs/models/UserTimeline.js.map +1 -1
- package/lib/mjs/password.d.ts +25 -25
- package/lib/mjs/password.js +65 -65
- package/lib/mjs/password.js.map +1 -1
- package/lib/mjs/session.d.ts +33 -33
- package/lib/mjs/session.js +94 -94
- package/lib/mjs/session.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- 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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
UserAction
|
|
43
|
-
|
|
44
|
-
(0, orm_1.
|
|
45
|
-
|
|
46
|
-
|
|
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;
|
|
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"}
|
package/lib/cjs/password.d.ts
CHANGED
|
@@ -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
|
package/lib/cjs/password.js
CHANGED
|
@@ -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 =
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
BasicPasswordValidationProvider
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
package/lib/cjs/password.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/cjs/session.d.ts
CHANGED
|
@@ -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
|
package/lib/cjs/session.js
CHANGED
|
@@ -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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Session
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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 =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
package/lib/cjs/session.js.map
CHANGED
|
@@ -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;
|
|
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"}
|