@alanszp/jwt 16.0.2 → 16.0.3
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/dist/BitmaskUtils.d.ts +15 -0
- package/dist/BitmaskUtils.js +21 -0
- package/dist/BitmaskUtils.js.map +1 -1
- package/dist/JWTUser.d.ts +6 -6
- package/dist/JWTUser.js +14 -15
- package/dist/JWTUser.js.map +1 -1
- package/dist/PermissionService.d.ts +2 -0
- package/dist/PermissionService.js +18 -2
- package/dist/PermissionService.js.map +1 -1
- package/package.json +2 -2
package/dist/BitmaskUtils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Permission } from "./types";
|
|
1
2
|
/**
|
|
2
3
|
* Bitmask utility class
|
|
3
4
|
* - Use to handle binary numbers
|
|
@@ -45,4 +46,18 @@ export declare class BitmaskUtils {
|
|
|
45
46
|
* @example Bitmask.encodeToBase64(2) // "Ag=="
|
|
46
47
|
*/
|
|
47
48
|
static encodeToBase64(bitmask: bigint): string;
|
|
49
|
+
/**
|
|
50
|
+
* Similar to #encodeFromPosition but takes a Permission object and encodes it to
|
|
51
|
+
* a binary number, based on the Permission.position property.
|
|
52
|
+
*/
|
|
53
|
+
static encodePermission(permission: Permission): bigint;
|
|
54
|
+
/**
|
|
55
|
+
* Converts an array of Permissions to a binary number. Will combine all the permissions
|
|
56
|
+
* bitmasks into one.
|
|
57
|
+
*/
|
|
58
|
+
static encodePermissions(permissions: Permission[]): bigint;
|
|
59
|
+
/**
|
|
60
|
+
* Converts an array of Permissions to an encoded string ready to use in JWTUser.permission
|
|
61
|
+
*/
|
|
62
|
+
static encodePermissionsToBase64(permissions: Permission[]): string;
|
|
48
63
|
}
|
package/dist/BitmaskUtils.js
CHANGED
|
@@ -59,6 +59,27 @@ class BitmaskUtils {
|
|
|
59
59
|
static encodeToBase64(bitmask) {
|
|
60
60
|
return Buffer.from(bitmask.toString()).toString("base64");
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Similar to #encodeFromPosition but takes a Permission object and encodes it to
|
|
64
|
+
* a binary number, based on the Permission.position property.
|
|
65
|
+
*/
|
|
66
|
+
static encodePermission(permission) {
|
|
67
|
+
return BitmaskUtils.encodeFromPosition(permission.position);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Converts an array of Permissions to a binary number. Will combine all the permissions
|
|
71
|
+
* bitmasks into one.
|
|
72
|
+
*/
|
|
73
|
+
static encodePermissions(permissions) {
|
|
74
|
+
const bitmasks = permissions.map((p) => BitmaskUtils.encodePermission(p));
|
|
75
|
+
return BitmaskUtils.combineBitmasks(bitmasks);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Converts an array of Permissions to an encoded string ready to use in JWTUser.permission
|
|
79
|
+
*/
|
|
80
|
+
static encodePermissionsToBase64(permissions) {
|
|
81
|
+
return BitmaskUtils.encodeToBase64(this.encodePermissions(permissions));
|
|
82
|
+
}
|
|
62
83
|
}
|
|
63
84
|
exports.BitmaskUtils = BitmaskUtils;
|
|
64
85
|
//# sourceMappingURL=BitmaskUtils.js.map
|
package/dist/BitmaskUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitmaskUtils.js","sourceRoot":"","sources":["../src/BitmaskUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"BitmaskUtils.js","sourceRoot":"","sources":["../src/BitmaskUtils.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,YAAY;IACvB;;;;;;OAMG;IACI,MAAM,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,KAAa;QACvD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,eAAe,CAAC,QAAkB;QAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,MAAc;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,OAAe;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,UAAsB;QACnD,OAAO,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,iBAAiB,CAAC,WAAyB;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,yBAAyB,CAAC,WAAyB;QAC/D,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AAjFD,oCAiFC"}
|
package/dist/JWTUser.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IPermissionService } from "./PermissionService";
|
|
2
|
-
import { IJWTUser, JWTPayload } from "./types";
|
|
2
|
+
import { IJWTUser, JWTPayload, Permission } from "./types";
|
|
3
3
|
export declare class JWTUser implements IJWTUser {
|
|
4
4
|
#private;
|
|
5
5
|
id: string;
|
|
@@ -27,6 +27,11 @@ export declare class JWTUser implements IJWTUser {
|
|
|
27
27
|
* @throws {PermissionServiceNotInstantiated}
|
|
28
28
|
*/
|
|
29
29
|
static getPermissionService(): IPermissionService;
|
|
30
|
+
/**
|
|
31
|
+
* @throws {PermissionDefinitionNotFound}
|
|
32
|
+
* @throws {PermissionServiceNotInstantiated}
|
|
33
|
+
*/
|
|
34
|
+
static getPermissionDefinition(permissionCode: string): Promise<Permission>;
|
|
30
35
|
constructor({ id, employeeReference, organizationReference, roles, roleReferences, permissions, segmentReference, originalOrganizationReference, originalId, originalEmployeeReference, expirationTime, }: IJWTUser);
|
|
31
36
|
/**
|
|
32
37
|
* Set the raw token from the original request
|
|
@@ -106,11 +111,6 @@ export declare class JWTUser implements IJWTUser {
|
|
|
106
111
|
* @throws {PermissionServiceNotInstantiated}
|
|
107
112
|
*/
|
|
108
113
|
validateSomePermission(permissionCodes: string[]): Promise<void>;
|
|
109
|
-
/**
|
|
110
|
-
* @throws {PermissionDefinitionNotFound}
|
|
111
|
-
* @throws {PermissionServiceNotInstantiated}
|
|
112
|
-
*/
|
|
113
|
-
private getPermissionDefinition;
|
|
114
114
|
isImpersonating(): boolean;
|
|
115
115
|
isServiceAccount(): boolean;
|
|
116
116
|
}
|
package/dist/JWTUser.js
CHANGED
|
@@ -58,6 +58,19 @@ class JWTUser {
|
|
|
58
58
|
}
|
|
59
59
|
return __classPrivateFieldGet(JWTUser, _a, "f", _JWTUser_permissionService);
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* @throws {PermissionDefinitionNotFound}
|
|
63
|
+
* @throws {PermissionServiceNotInstantiated}
|
|
64
|
+
*/
|
|
65
|
+
static getPermissionDefinition(permissionCode) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
const definition = yield JWTUser.getPermissionService().getPermission(permissionCode);
|
|
68
|
+
if (!definition) {
|
|
69
|
+
throw new PermissionNotFound_1.PermissionDefinitionNotFound(permissionCode);
|
|
70
|
+
}
|
|
71
|
+
return definition;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
61
74
|
/**
|
|
62
75
|
* Set the raw token from the original request
|
|
63
76
|
* @description Do not include the Bearer prefix
|
|
@@ -138,7 +151,7 @@ class JWTUser {
|
|
|
138
151
|
*/
|
|
139
152
|
hasPermission(permissionCode) {
|
|
140
153
|
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
const definition = yield
|
|
154
|
+
const definition = yield JWTUser.getPermissionDefinition(permissionCode);
|
|
142
155
|
const checkBitmask = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(definition.position);
|
|
143
156
|
const permissionsBitmask = BitmaskUtils_1.BitmaskUtils.decodeFromBase64(this.permissions);
|
|
144
157
|
return BitmaskUtils_1.BitmaskUtils.checkBitmask(permissionsBitmask, checkBitmask);
|
|
@@ -232,20 +245,6 @@ class JWTUser {
|
|
|
232
245
|
}
|
|
233
246
|
});
|
|
234
247
|
}
|
|
235
|
-
/**
|
|
236
|
-
* @throws {PermissionDefinitionNotFound}
|
|
237
|
-
* @throws {PermissionServiceNotInstantiated}
|
|
238
|
-
*/
|
|
239
|
-
getPermissionDefinition(permissionCode) {
|
|
240
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
241
|
-
const definitions = yield JWTUser.getPermissionService().getPermissions();
|
|
242
|
-
const definition = definitions.find((def) => def.code === permissionCode);
|
|
243
|
-
if (!definition) {
|
|
244
|
-
throw new PermissionNotFound_1.PermissionDefinitionNotFound(permissionCode);
|
|
245
|
-
}
|
|
246
|
-
return definition;
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
248
|
isImpersonating() {
|
|
250
249
|
return this.id !== this.originalId;
|
|
251
250
|
}
|
package/dist/JWTUser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JWTUser.js","sourceRoot":"","sources":["../src/JWTUser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA8C;AAE9C,oEAA2E;AAC3E,gGAA6F;AAE7F,kEAA+D;AAE/D,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"JWTUser.js","sourceRoot":"","sources":["../src/JWTUser.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { Permission } from "./types";
|
|
|
3
3
|
import { PermissionsResolutionFunction } from "./axiosPermissionsResolutionFactory";
|
|
4
4
|
export interface IPermissionService {
|
|
5
5
|
getPermissions(): Promise<Permission[]>;
|
|
6
|
+
getPermission(code: string): Promise<Permission | undefined>;
|
|
6
7
|
}
|
|
7
8
|
export declare class PermissionService implements IPermissionService {
|
|
8
9
|
#private;
|
|
@@ -19,6 +20,7 @@ export declare class PermissionService implements IPermissionService {
|
|
|
19
20
|
* @returns {Promise<Permission[]>}
|
|
20
21
|
*/
|
|
21
22
|
getPermissions(checkCache?: boolean): Promise<Permission[]>;
|
|
23
|
+
getPermission(code: string): Promise<Permission | undefined>;
|
|
22
24
|
isPermissionsCacheReady(): Promise<boolean>;
|
|
23
25
|
reloadPermissionCache(): Promise<void>;
|
|
24
26
|
startPermissionObserver(permissionRefetchInMs?: number): void;
|
|
@@ -19,7 +19,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
19
19
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
20
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
21
|
};
|
|
22
|
-
var _PermissionService_permissionsResolutionFn, _PermissionService_cachedPermissions, _PermissionService_observerInterval, _PermissionService_permissionsPreheatedSuccessfully;
|
|
22
|
+
var _PermissionService_permissionsResolutionFn, _PermissionService_cachedPermissions, _PermissionService_cachedPermissionMap, _PermissionService_observerInterval, _PermissionService_permissionsPreheatedSuccessfully;
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.PermissionService = void 0;
|
|
25
25
|
const DEFAULT_PERMISSIONS_REFETCH_TIMEOUT = 1000 * 60 * 60; // 1hs
|
|
@@ -27,12 +27,14 @@ class PermissionService {
|
|
|
27
27
|
constructor(logger, permissionsResolutionFn) {
|
|
28
28
|
_PermissionService_permissionsResolutionFn.set(this, void 0);
|
|
29
29
|
_PermissionService_cachedPermissions.set(this, void 0);
|
|
30
|
+
_PermissionService_cachedPermissionMap.set(this, void 0);
|
|
30
31
|
_PermissionService_observerInterval.set(this, void 0);
|
|
31
32
|
_PermissionService_permissionsPreheatedSuccessfully.set(this, void 0);
|
|
32
33
|
this.logger = logger;
|
|
33
34
|
__classPrivateFieldSet(this, _PermissionService_permissionsResolutionFn, permissionsResolutionFn, "f");
|
|
34
35
|
__classPrivateFieldSet(this, _PermissionService_cachedPermissions, null, "f");
|
|
35
36
|
__classPrivateFieldSet(this, _PermissionService_observerInterval, null, "f");
|
|
37
|
+
__classPrivateFieldSet(this, _PermissionService_cachedPermissionMap, null, "f");
|
|
36
38
|
__classPrivateFieldSet(this, _PermissionService_permissionsPreheatedSuccessfully, Promise.resolve(), "f");
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
@@ -73,9 +75,23 @@ class PermissionService {
|
|
|
73
75
|
}
|
|
74
76
|
const permissions = yield this.getAllPagesFromPaginatedRequest(__classPrivateFieldGet(this, _PermissionService_permissionsResolutionFn, "f"));
|
|
75
77
|
__classPrivateFieldSet(this, _PermissionService_cachedPermissions, permissions, "f");
|
|
78
|
+
const newMap = new Map();
|
|
79
|
+
permissions.forEach((permission) => {
|
|
80
|
+
newMap.set(permission.code, permission);
|
|
81
|
+
});
|
|
82
|
+
__classPrivateFieldSet(this, _PermissionService_cachedPermissionMap, newMap, "f");
|
|
76
83
|
return permissions;
|
|
77
84
|
});
|
|
78
85
|
}
|
|
86
|
+
getPermission(code) {
|
|
87
|
+
var _a;
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
if (!__classPrivateFieldGet(this, _PermissionService_cachedPermissionMap, "f")) {
|
|
90
|
+
yield this.getPermissions(false);
|
|
91
|
+
}
|
|
92
|
+
return (_a = __classPrivateFieldGet(this, _PermissionService_cachedPermissionMap, "f")) === null || _a === void 0 ? void 0 : _a.get(code);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
79
95
|
isPermissionsCacheReady() {
|
|
80
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
97
|
yield __classPrivateFieldGet(this, _PermissionService_permissionsPreheatedSuccessfully, "f");
|
|
@@ -104,5 +120,5 @@ class PermissionService {
|
|
|
104
120
|
}
|
|
105
121
|
}
|
|
106
122
|
exports.PermissionService = PermissionService;
|
|
107
|
-
_PermissionService_permissionsResolutionFn = new WeakMap(), _PermissionService_cachedPermissions = new WeakMap(), _PermissionService_observerInterval = new WeakMap(), _PermissionService_permissionsPreheatedSuccessfully = new WeakMap();
|
|
123
|
+
_PermissionService_permissionsResolutionFn = new WeakMap(), _PermissionService_cachedPermissions = new WeakMap(), _PermissionService_cachedPermissionMap = new WeakMap(), _PermissionService_observerInterval = new WeakMap(), _PermissionService_permissionsPreheatedSuccessfully = new WeakMap();
|
|
108
124
|
//# sourceMappingURL=PermissionService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionService.js","sourceRoot":"","sources":["../src/PermissionService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PermissionService.js","sourceRoot":"","sources":["../src/PermissionService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alanszp/jwt",
|
|
3
|
-
"version": "16.0.
|
|
3
|
+
"version": "16.0.3",
|
|
4
4
|
"description": "Alan's jwt validator & signer.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"@alanszp/logger": "^16.0.0",
|
|
35
35
|
"jose": "^5.2.2"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "686e7789c34b93c67edfe59ef57ac926182cf131"
|
|
38
38
|
}
|