@dereekb/model 9.18.2 → 9.18.4
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [9.18.4](https://github.com/dereekb/dbx-components/compare/v9.18.3-dev...v9.18.4) (2022-12-09)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [9.18.3](https://github.com/dereekb/dbx-components/compare/v9.18.2-dev...v9.18.3) (2022-12-09)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
5
13
|
## [9.18.2](https://github.com/dereekb/dbx-components/compare/v9.18.1-dev...v9.18.2) (2022-12-08)
|
|
6
14
|
|
|
7
15
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/model",
|
|
3
|
-
"version": "9.18.
|
|
3
|
+
"version": "9.18.4",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {},
|
|
8
8
|
"peerDependencies": {
|
|
9
9
|
"class-validator": "^0.13.2",
|
|
10
|
-
"@dereekb/util": "9.18.
|
|
10
|
+
"@dereekb/util": "9.18.4",
|
|
11
11
|
"lodash.isequal": "^4.5.0",
|
|
12
12
|
"make-error": "^1.3.0",
|
|
13
13
|
"ts-essentials": "^9.1.2",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArrayOrValue, Maybe, SetIncludesMode } from '@dereekb/util';
|
|
1
|
+
import { ArrayOrValue, IterableOrValue, Maybe, SetIncludesMode } from '@dereekb/util';
|
|
2
2
|
/**
|
|
3
3
|
* A granted role for a model.
|
|
4
4
|
*/
|
|
@@ -62,11 +62,32 @@ export declare type GrantedRoleMap<R extends GrantedRole = string> = NoAccessRol
|
|
|
62
62
|
export declare type GrantedRoleKeysMap<R extends GrantedRole = string> = {
|
|
63
63
|
[key in R]?: Maybe<boolean>;
|
|
64
64
|
};
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Values keyed by roles.
|
|
67
|
+
*/
|
|
68
|
+
export declare type GrantedRoleTruthMapObject<T, R extends GrantedRole> = Partial<{
|
|
69
|
+
[K in R]: T;
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Output that removes the keys of all roles that are not contained.
|
|
73
|
+
*/
|
|
74
|
+
export declare type GrantedRoleTruthMap<M extends GrantedRoleTruthMapObject<any, any>> = M extends GrantedRoleTruthMapObject<infer T, infer R> ? Partial<{
|
|
75
|
+
[K in R]: T;
|
|
76
|
+
}> : never;
|
|
77
|
+
/**
|
|
78
|
+
* Reader used for parsing/reading role values from a given context.
|
|
79
|
+
*/
|
|
80
|
+
export interface GrantedRoleMapReader<R extends GrantedRole = GrantedRole> {
|
|
66
81
|
/**
|
|
67
82
|
* Returns true if no access has been given.
|
|
68
83
|
*/
|
|
69
84
|
hasNoAccess(): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Creates a truth map from the input.
|
|
87
|
+
*
|
|
88
|
+
* @param values
|
|
89
|
+
*/
|
|
90
|
+
truthMap<M extends GrantedRoleTruthMapObject<any, R>>(input: M): GrantedRoleTruthMap<M>;
|
|
70
91
|
/**
|
|
71
92
|
* Returns true if the role is granted.
|
|
72
93
|
*/
|
|
@@ -74,22 +95,29 @@ export interface GrantedRoleMapReader<R extends GrantedRole = string> {
|
|
|
74
95
|
/**
|
|
75
96
|
* Returns true if the roles are granted.
|
|
76
97
|
*/
|
|
77
|
-
hasRoles(setIncludes: SetIncludesMode, roles: ArrayOrValue<R>): boolean;
|
|
98
|
+
hasRoles(setIncludes: SetIncludesMode, roles: ArrayOrValue<R> | IterableOrValue<R>): boolean;
|
|
78
99
|
/**
|
|
79
100
|
* Returns true if the map explicitly contains the role.
|
|
80
101
|
*/
|
|
81
|
-
containsRoles(setIncludes: SetIncludesMode, roles: ArrayOrValue<R>): boolean;
|
|
102
|
+
containsRoles(setIncludes: SetIncludesMode, roles: ArrayOrValue<R> | IterableOrValue<R>): boolean;
|
|
82
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Creates a GrantedRoleMapReader.
|
|
106
|
+
*
|
|
107
|
+
* @param map
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
83
110
|
export declare function grantedRoleMapReader<R extends GrantedRole = string>(map: GrantedRoleMap<R>): GrantedRoleMapReader<R>;
|
|
84
111
|
export declare class GrantedRoleMapReaderInstance<R extends GrantedRole = string> implements GrantedRoleMapReader<R> {
|
|
85
112
|
private readonly _map;
|
|
86
113
|
constructor(_map: GrantedRoleMap<R>);
|
|
87
114
|
hasNoAccess(): boolean;
|
|
115
|
+
truthMap<M extends GrantedRoleTruthMapObject<any, R>>(input: M): GrantedRoleTruthMap<M>;
|
|
88
116
|
hasRole(role: R): boolean;
|
|
89
|
-
hasRoles(setIncludes: SetIncludesMode, inputRoles:
|
|
90
|
-
containsRoles(setIncludes: SetIncludesMode, inputRoles:
|
|
91
|
-
containsAnyRole(roles:
|
|
92
|
-
containsEachRole(roles:
|
|
117
|
+
hasRoles(setIncludes: SetIncludesMode, inputRoles: IterableOrValue<R>): boolean;
|
|
118
|
+
containsRoles(setIncludes: SetIncludesMode, inputRoles: IterableOrValue<R>): boolean;
|
|
119
|
+
containsAnyRole(roles: ArrayOrValue<R>): boolean;
|
|
120
|
+
containsEachRole(roles: ArrayOrValue<R>): boolean;
|
|
93
121
|
}
|
|
94
122
|
/**
|
|
95
123
|
* Converts the input array of roles to a GrantedRoleKeysMap.
|
|
@@ -40,6 +40,12 @@ function isFullAccessRoleMap(input) {
|
|
|
40
40
|
return input[exports.FULL_ACCESS_ROLE_KEY] === true;
|
|
41
41
|
}
|
|
42
42
|
exports.isFullAccessRoleMap = isFullAccessRoleMap;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a GrantedRoleMapReader.
|
|
45
|
+
*
|
|
46
|
+
* @param map
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
43
49
|
function grantedRoleMapReader(map) {
|
|
44
50
|
return new GrantedRoleMapReaderInstance(map);
|
|
45
51
|
}
|
|
@@ -51,6 +57,17 @@ class GrantedRoleMapReaderInstance {
|
|
|
51
57
|
hasNoAccess() {
|
|
52
58
|
return this._map[exports.NO_ACCESS_ROLE_KEY];
|
|
53
59
|
}
|
|
60
|
+
truthMap(input) {
|
|
61
|
+
const result = {};
|
|
62
|
+
(0, util_1.forEachKeyValue)(input, {
|
|
63
|
+
forEach: ([role, value]) => {
|
|
64
|
+
if (this.hasRole(role)) {
|
|
65
|
+
result[role] = value;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
54
71
|
hasRole(role) {
|
|
55
72
|
return this.hasRoles('any', role);
|
|
56
73
|
}
|
|
@@ -63,7 +80,7 @@ class GrantedRoleMapReaderInstance {
|
|
|
63
80
|
}
|
|
64
81
|
}
|
|
65
82
|
containsRoles(setIncludes, inputRoles) {
|
|
66
|
-
const roles = (0, util_1.
|
|
83
|
+
const roles = (0, util_1.iterableToArray)(inputRoles);
|
|
67
84
|
if (setIncludes === 'any') {
|
|
68
85
|
return this.containsAnyRole(roles);
|
|
69
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../../../../../packages/model/src/lib/service/permission/role.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../../../../../packages/model/src/lib/service/permission/role.ts"],"names":[],"mappings":"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"}
|