rbac 4.0.2 → 6.0.0
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/HISTORY.md +21 -3
- package/LICENSE +21 -0
- package/README.md +43 -104
- package/dist/Base.js +31 -65
- package/dist/Base.js.map +1 -0
- package/dist/Memory.js +139 -0
- package/dist/Memory.js.map +1 -0
- package/dist/Permission.js +99 -137
- package/dist/Permission.js.map +1 -0
- package/dist/RBAC.js +420 -798
- package/dist/RBAC.js.map +1 -0
- package/dist/Role.js +67 -142
- package/dist/Role.js.map +1 -0
- package/dist/Storage.js +160 -0
- package/dist/Storage.js.map +1 -0
- package/dist/index.js +45 -35
- package/dist/index.js.map +1 -0
- package/package.json +22 -45
- package/.babelrc +0 -9
- package/.eslintignore +0 -7
- package/.eslintrc +0 -5
- package/.npmignore +0 -4
- package/.travis.yml +0 -14
- package/__tests__/role.spec.js +0 -410
- package/controllers/express.js +0 -72
- package/coverage/clover.xml +0 -526
- package/coverage/coverage-final.json +0 -9
- package/coverage/lcov-report/base.css +0 -212
- package/coverage/lcov-report/index.html +0 -106
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -1
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -158
- package/coverage/lcov-report/tests/index.html +0 -93
- package/coverage/lcov-report/tests/role.spec.js.html +0 -1316
- package/coverage/lcov.info +0 -1115
- package/dist/storages/Memory.js +0 -219
- package/dist/storages/Mongoose.js +0 -303
- package/dist/storages/index.js +0 -300
- package/example/simple.js +0 -25
- package/gulpfile.js +0 -16
- package/jsdocConfig.js +0 -20
package/dist/RBAC.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RBAC.js","names":["_Base","_interopRequireDefault","require","_Role","_Permission","_Storage","_Memory","e","__esModule","default","isPlainObject","value","proto","Object","getPrototypeOf","prototype","DEFAULT_OPTIONS","permissions","roles","grant","delimiter","RBAC","getPermissionNames","Error","map","permission","Permission","createName","constructor","options","storage","MemoryStorage","useRBAC","init","grants","create","get","name","add","item","rbac","remove","removeByName","role","child","Role","revoke","revokeByName","roleName","childName","Promise","all","grantByName","createRole","createPermission","action","resource","exists","existsRole","existsPermission","getRole","getRoles","getPermission","getPermissionByName","data","decodeName","getPermissions","createPermissions","resources","keys","actions","createRoles","roleNames","permissionNames","grantsData","traverseGrants","cb","next","used","actualRole","shift","getGrants","i","length","push","result","undefined","can","canAny","includes","canAll","founded","foundedCount","hasRole","roleChildName","has","getScope","scope","exports"],"sources":["../src/RBAC.js"],"sourcesContent":["// @flow\nimport Base from './Base';\n\nfunction isPlainObject(value) {\n if (typeof value !== 'object' || value === null) return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\nimport Role from './Role';\nimport Permission from './Permission';\nimport Storage from './Storage';\nimport MemoryStorage from './Memory';\n\nconst DEFAULT_OPTIONS = {\n permissions: {},\n roles: [],\n grant: {},\n delimiter: '_',\n};\n\nexport default class RBAC {\n /**\n * Convert Array of permissions to permission name\n * @function getPermissionNames\n * @memberof RBAC\n * @param {Array} permissions List of array items of permission names. It contan action and resource\n * @param {string} delimiter\n * @return {string[]}\n * @static\n */\n static getPermissionNames(permissions, delimiter: string): string[] {\n if (!delimiter) {\n throw new Error('Delimiter is not defined');\n }\n\n return permissions.map(\n permission => Permission.createName(permission[0], permission[1], delimiter),\n );\n }\n\n /**\n * RBAC constructor\n * @constructor RBAC\n * @param {Object} options Options for RBAC\n * @param {Storage} [options.storage] Storage of grants\n * @param {Array} [options.roles] List of role names (String)\n * @param {Object} [options.permissions] List of permissions\n * @param {Object} [options.grants] List of grants\n */\n constructor(options: Object) {\n this.options = {\n ...DEFAULT_OPTIONS,\n ...options,\n };\n\n this.storage = this.options.storage || new MemoryStorage();\n this.storage.useRBAC(this);\n }\n\n async init() {\n const { roles, permissions, grants } = this.options;\n\n return this.create(roles, permissions, grants);\n }\n\n /**\n * Get instance of Role or Permission by his name\n * @method RBAC#get\n * @param {String} name Name of item\n */\n async get(name: string): ?Base {\n return this.storage.get(name);\n }\n\n /**\n * Register role or permission to actual RBAC instance\n * @method RBAC#add\n * @param {Base} item Instance of Base\n */\n async add(item: Base): boolean {\n if (!item) {\n throw new Error('Item is undefined');\n }\n\n if (item.rbac !== this) {\n throw new Error('Item is associated to another RBAC instance');\n }\n\n return this.storage.add(item);\n }\n\n /**\n * Remove role or permission from RBAC\n * @method RBAC#remove\n * @param {Base} item Instance of role or permission\n */\n async remove(item: Base): boolean {\n if (!item) {\n throw new Error('Item is undefined');\n }\n\n if (item.rbac !== this) {\n throw new Error('Item is associated to another RBAC instance');\n }\n\n return this.storage.remove(item);\n }\n\n /**\n * Remove role or permission from RBAC\n * @method RBAC#removeByName\n * @param {String} name Name of role or permission\n */\n async removeByName(name: string): boolean {\n const item = await this.get(name);\n if (!item) {\n return true;\n }\n\n return item.remove();\n }\n\n /**\n * Grant permission or role to the role\n * @method RBAC#grant\n * @param {Role} role Instance of the role\n * @param {Base} child Instance of the role or permission\n */\n async grant(role: Role, child: Base): boolean {\n if (!role || !child) {\n throw new Error('One of item is undefined');\n }\n\n if (role.rbac !== this || child.rbac !== this) {\n throw new Error('Item is associated to another RBAC instance');\n }\n\n if (!(role instanceof Role)) {\n throw new Error('Role is not instance of Role');\n }\n\n return this.storage.grant(role, child);\n }\n\n /**\n * Revoke permission or role from the role\n * @method RBAC#revoke\n * @param {Role} role Instance of the role\n * @param {Base} child Instance of the role or permission\n */\n async revoke(role: Role, child: Base): boolean {\n if (!role || !child) {\n throw new Error('One of item is undefined');\n }\n\n if (role.rbac !== this || child.rbac !== this) {\n throw new Error('Item is associated to another RBAC instance');\n }\n\n return this.storage.revoke(role, child);\n }\n\n /**\n * Revoke permission or role from the role by names\n * @method RBAC#revokeByName\n * @param {String} roleName Instance of the role\n * @param {String} childName Instance of the role or permission\n */\n async revokeByName(roleName: string, childName: string): void {\n const [role, child] = await Promise.all([\n this.get(roleName),\n this.get(childName),\n ]);\n\n return this.revoke(role, child);\n }\n\n /**\n * Grant permission or role from the role by names\n * @method RBAC#grantByName\n * @param {String} roleName Instance of the role\n * @param {String} childName Instance of the role or permission\n */\n async grantByName(roleName: string, childName: string): void {\n const [role, child] = await Promise.all([\n this.get(roleName),\n this.get(childName),\n ]);\n\n return this.grant(role, child);\n }\n\n /**\n * Create a new role assigned to actual instance of RBAC\n * @method RBAC#createRole\n * @param {String} roleName Name of new Role\n * @param {Boolean} [add] True if you need to add it to the storage\n * @return {Role} Instance of the Role\n */\n async createRole(roleName: string, add?: boolean): Role {\n const role = new Role(this, roleName);\n if (add) {\n await role.add();\n }\n\n return role;\n }\n\n /**\n * Create a new permission assigned to actual instance of RBAC\n * @method RBAC#createPermission\n * @param {String} action Name of action\n * @param {String} resource Name of resource\n * @param {Boolean} [add] True if you need to add it to the storage\n * @return {Permission} Instance of the Permission\n */\n async createPermission(action:string, resource: string, add?: boolean): Permission {\n const permission = new Permission(this, action, resource);\n if (add) {\n await permission.add();\n }\n\n return permission;\n }\n\n /**\n * Callback returns true if role or permission exists\n * @method RBAC#exists\n * @param {String} name Name of item\n */\n async exists(name: string): boolean {\n return this.storage.exists(name);\n }\n\n /**\n * Callback returns true if role exists\n * @method RBAC#existsRole\n * @param {String} name Name of item\n */\n async existsRole(name: string): boolean {\n return this.storage.existsRole(name);\n }\n\n /**\n * Callback returns true if permission exists\n * @method RBAC#existsPermission\n * @param {String} action Name of action\n * @param {String} resource Name of resource\n */\n async existsPermission(action: string, resource: string): boolean {\n return this.storage.existsPermission(action, resource);\n }\n\n /**\n * Return instance of Role by his name\n * @method RBAC#getRole\n * @param {String} name Name of role\n */\n async getRole(name: string): ?Role {\n return this.storage.getRole(name);\n }\n\n /**\n * Return all instances of Role\n * @method RBAC#getRoles\n */\n async getRoles(): Role[] {\n return this.storage.getRoles();\n }\n\n /**\n * Return instance of Permission by his action and resource\n * @method RBAC#getPermission\n * @param {String} action Name of action\n * @param {String} resource Name of resource\n */\n async getPermission(action: string, resource: string): ?Permission {\n return this.storage.getPermission(action, resource);\n }\n\n /**\n * Return instance of Permission by his name\n * @method RBAC#getPermission\n * @param {String} name Name of permission\n */\n async getPermissionByName(name: string): ?Permission {\n const data = Permission.decodeName(name, this.options.delimiter);\n return this.storage.getPermission(data.action, data.resource);\n }\n\n /**\n * Return all instances of Permission\n * @method RBAC#getPermissions\n */\n async getPermissions(): Permission[] {\n return this.storage.getPermissions();\n }\n\n /**\n * Create multiple permissions in one step\n * @method RBAC#createPermissions\n * @param {Object} permissions Object of permissions\n * @param {Boolean} [add=true] True if you need to add it to the storage\n */\n async createPermissions(resources: Object, add?: boolean = true): Permission[] {\n if (!isPlainObject(resources)) {\n throw new Error('Resources is not a plain object');\n }\n\n const permissions = {};\n\n await Promise.all(Object.keys(resources).map(async (resource) => {\n const actions = resources[resource];\n\n await Promise.all(actions.map(async (action) => {\n const permission = await this.createPermission(action, resource, add);\n permissions[permission.name] = permission;\n }));\n }));\n\n return permissions;\n }\n\n /**\n * Create multiple roles in one step assigned to actual instance of RBAC\n * @method RBAC#createRoles\n * @param {Array} roleNames Array of role names\n * @param {Boolean} [add=true] True if you need to add it to the storage\n */\n async createRoles(roleNames: string[], add?: boolean = true): Role[] {\n const roles = {};\n await Promise.all(roleNames.map(async (roleName) => {\n const role = await this.createRole(roleName, add);\n\n roles[role.name] = role;\n }));\n\n return roles;\n }\n\n /**\n * Grant multiple items in one function\n * @method RBAC#grants\n * @param {Object} List of roles\n */\n async grants(roles: Object) {\n if (!isPlainObject(roles)) {\n throw new Error('Grants is not a plain object');\n }\n\n await Promise.all(Object.keys(roles).map(async (roleName) => {\n const grants = roles[roleName];\n\n await Promise.all(grants.map(async (grant) => {\n await this.grantByName(roleName, grant);\n }));\n }));\n }\n\n /**\n * Create multiple permissions and roles in one step\n * @method RBAC#create\n * @param {Object[]} roleNames List of role names\n * @param {Object[]} permissionNames List of permission names\n * @param {Object} [grants] List of grants\n */\n async create(roleNames, permissionNames, grantsData): Object {\n const [permissions, roles] = await Promise.all([\n this.createPermissions(permissionNames),\n this.createRoles(roleNames),\n ]);\n\n\n if (grantsData) {\n await this.grants(grantsData);\n }\n\n return {\n permissions,\n roles,\n };\n }\n\n /**\n * Traverse hierarchy of roles.\n * Callback function returns as second parameter item from hierarchy or null if we are on the end of hierarchy.\n * @method RBAC#_traverseGrants\n * @param {string} roleName Name of role\n * @param {Function} cb Callback function\n * @private\n */\n async traverseGrants(roleName: string, cb: Function, next: String[] = [roleName], used: Object = {}): any {\n const actualRole = next.shift();\n used[actualRole] = true;\n\n const grants = await this.storage.getGrants(actualRole);\n for (let i = 0; i < grants.length; i += 1) {\n const item = grants[i];\n const { name } = item;\n\n if (item instanceof Role && !used[name]) {\n used[name] = true;\n next.push(name);\n }\n\n const result = await cb(item);\n if (result !== undefined) {\n return result;\n }\n }\n\n if (next.length) {\n return this.traverseGrants(null, cb, next, used);\n }\n }\n\n /**\n * Return true if role has allowed permission\n * @method RBAC#can\n * @param {string} roleName Name of role\n * @param {string} action Name of action\n * @param {string} resource Name of resource\n * @return {boolean}\n */\n async can(roleName: string, action: string, resource: string): boolean {\n const can = await this.traverseGrants(roleName, (item) => {\n if (item instanceof Permission && item.can(action, resource)) {\n return true;\n }\n });\n\n return can || false;\n }\n\n\n /**\n * Check if the role has any of the given permissions.\n * @method RBAC#canAny\n * @param {string} roleName Name of role\n * @param {Object[]} permissions Array (String action, String resource)\n * @return {boolean}\n */\n async canAny(roleName: string, permissions: Object[]): boolean {\n // prepare the names of permissions\n const permissionNames = RBAC.getPermissionNames(permissions, this.options.delimiter);\n\n // traverse hierarchy\n const can = await this.traverseGrants(roleName, (item) => {\n if (item instanceof Permission && permissionNames.includes(item.name)) {\n return true;\n }\n\n return undefined;\n });\n\n return can || false;\n }\n\n /**\n * Check if the model has all of the given permissions.\n * @method RBAC#canAll\n * @param {string} roleName Name of role\n * @param {Object[]} permissions Array (String action, String resource)\n * @return {boolean} Current instance\n */\n async canAll(roleName: string, permissions: Object[]) {\n // prepare the names of permissions\n const permissionNames = RBAC.getPermissionNames(permissions, this.options.delimiter);\n const founded = {};\n let foundedCount = 0;\n\n // traverse hierarchy\n await this.traverseGrants(roleName, (item) => {\n if (item instanceof Permission && permissionNames.includes(item.name) && !founded[item.name]) {\n founded[item.name] = true;\n foundedCount += 1;\n\n if (foundedCount === permissionNames.length) {\n return true;\n }\n }\n\n return undefined;\n });\n\n return foundedCount === permissionNames.length;\n }\n\n /**\n * Return true if role has allowed permission\n * @method RBAC#hasRole\n * @param {String} roleName Name of role\n * @param {String} roleChildName Name of child role\n * @return {boolean}\n */\n async hasRole(roleName: string, roleChildName: string): boolean {\n if (roleName === roleChildName) {\n return true;\n }\n\n const has = await this.traverseGrants(roleName, (item) => {\n if (item instanceof Role && item.name === roleChildName) {\n return true;\n }\n\n return undefined;\n });\n\n return has || false;\n }\n\n /**\n * Return array of all permission assigned to role of RBAC\n * @method RBAC#getScope\n * @param {string} roleName Name of role\n * @return {string[]}\n */\n async getScope(roleName: string): string[] {\n const scope = [];\n\n // traverse hierarchy\n await this.traverseGrants(roleName, (item) => {\n if (item instanceof Permission && !scope.includes(item.name)) {\n scope.push(item.name);\n }\n });\n\n return scope;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/Role.js
CHANGED
|
@@ -1,164 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _Base3 = _interopRequireDefault(_Base2);
|
|
12
|
-
|
|
13
|
-
var _Permission = require('./Permission');
|
|
14
|
-
|
|
15
|
-
var _Permission2 = _interopRequireDefault(_Permission);
|
|
16
|
-
|
|
17
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
|
|
19
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
20
|
-
|
|
21
|
-
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
22
|
-
|
|
23
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
24
|
-
|
|
25
|
-
var Role = function (_Base) {
|
|
26
|
-
_inherits(Role, _Base);
|
|
27
|
-
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _Base = _interopRequireDefault(require("./Base"));
|
|
8
|
+
var _Permission = _interopRequireDefault(require("./Permission"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
class Role extends _Base.default {
|
|
28
11
|
/**
|
|
29
12
|
* Role constructor
|
|
30
13
|
* @constructor Role
|
|
31
14
|
* @extends {Base}
|
|
32
|
-
* @param
|
|
33
|
-
* @param
|
|
34
|
-
* @param {Boolean} [add=true] True if you need to save it to storage
|
|
35
|
-
* @param {Function} cb Callback function after add
|
|
15
|
+
* @param {RBAC} rbac Instance of the RBAC
|
|
16
|
+
* @param {String} name Name of the role
|
|
36
17
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (typeof add === 'function') {
|
|
41
|
-
cb = add;
|
|
42
|
-
add = true;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (!_Permission2.default.isValidName(name)) {
|
|
46
|
-
var _ret;
|
|
47
|
-
|
|
48
|
-
return _ret = cb(new Error('Role has no valid name')), _possibleConstructorReturn(_this, _ret);
|
|
18
|
+
constructor(rbac, name) {
|
|
19
|
+
if (!_Permission.default.isValidName(name, rbac.options.delimiter)) {
|
|
20
|
+
throw new Error('Role has no valid name');
|
|
49
21
|
}
|
|
50
|
-
|
|
51
|
-
return _possibleConstructorReturn(this, (Role.__proto__ || Object.getPrototypeOf(Role)).call(this, rbac, name, add, cb));
|
|
22
|
+
super(rbac, name);
|
|
52
23
|
}
|
|
53
24
|
|
|
54
25
|
/**
|
|
55
26
|
* Add role or permission to current role
|
|
56
27
|
* @method Role#grant
|
|
57
|
-
* @param
|
|
58
|
-
* @param {Function} cb Callback function
|
|
59
|
-
* @return {Role} Return current instance of role
|
|
28
|
+
* @param {Role|Permission} item Instance of role or permission
|
|
60
29
|
*/
|
|
30
|
+
async grant(item) {
|
|
31
|
+
return this.rbac.grant(this, item);
|
|
32
|
+
}
|
|
61
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Remove role or permission from current role
|
|
36
|
+
* @method Role#revoke
|
|
37
|
+
* @param {Role|Permission} item Instance of role or permission
|
|
38
|
+
*/
|
|
39
|
+
async revoke(item) {
|
|
40
|
+
return this.rbac.revoke(this, item);
|
|
41
|
+
}
|
|
62
42
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
* @method Role#revoke
|
|
73
|
-
* @param {Role|Permission} item Instance of role or permission
|
|
74
|
-
* @param {Function} cb Callback function
|
|
75
|
-
* @return {Role} Return current instance of role
|
|
76
|
-
*/
|
|
77
|
-
|
|
78
|
-
}, {
|
|
79
|
-
key: 'revoke',
|
|
80
|
-
value: function revoke(item, cb) {
|
|
81
|
-
this.rbac.revoke(this, item, cb);
|
|
82
|
-
return this;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Return true if contains permission
|
|
87
|
-
* @method Role#can
|
|
88
|
-
* @param {String} action Name of action
|
|
89
|
-
* @param {String} resource Name of resource
|
|
90
|
-
* @param {Function} cb Callback function
|
|
91
|
-
* @return {Role} Return current instance of role
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
}, {
|
|
95
|
-
key: 'can',
|
|
96
|
-
value: function can(action, resource, cb) {
|
|
97
|
-
this.rbac.can(this.name, action, resource, cb);
|
|
98
|
-
return this;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Check if the role has any of the given permissions
|
|
103
|
-
* @method Role#canAny
|
|
104
|
-
* @param {Array} permissions List of permissions. Each has structure (String action, String resource)
|
|
105
|
-
* @param {Function} cb Callback function
|
|
106
|
-
* @return {Role} Return current instance of role
|
|
107
|
-
*/
|
|
108
|
-
|
|
109
|
-
}, {
|
|
110
|
-
key: 'canAny',
|
|
111
|
-
value: function canAny(permissions, cb) {
|
|
112
|
-
this.rbac.canAny(this.name, permissions, cb);
|
|
113
|
-
return this;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Check if the model has all of the given permissions
|
|
118
|
-
* @method Role#canAll
|
|
119
|
-
* @param {Array} permissions List of permissions. Each has structure (String action, String resource)
|
|
120
|
-
* @param {Function} cb Callback function
|
|
121
|
-
* @return {Role} Return current instance of role
|
|
122
|
-
*/
|
|
123
|
-
|
|
124
|
-
}, {
|
|
125
|
-
key: 'canAll',
|
|
126
|
-
value: function canAll(permissions, cb) {
|
|
127
|
-
this.rbac.canAll(this.name, permissions, cb);
|
|
128
|
-
return this;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Return true if the current role contains the specified role name
|
|
133
|
-
* @method Role#hasRole
|
|
134
|
-
* @param {String} roleChildName Name of role
|
|
135
|
-
* @param {Function} cb Callback function
|
|
136
|
-
* @return {Role} Return current instance of role
|
|
137
|
-
*/
|
|
138
|
-
|
|
139
|
-
}, {
|
|
140
|
-
key: 'hasRole',
|
|
141
|
-
value: function hasRole(roleChildName, cb) {
|
|
142
|
-
this.rbac.hasRole(this.name, roleChildName, cb);
|
|
143
|
-
return this;
|
|
144
|
-
}
|
|
43
|
+
/**
|
|
44
|
+
* Return true if contains permission
|
|
45
|
+
* @method Role#can
|
|
46
|
+
* @param {string} action Name of action
|
|
47
|
+
* @param {string} resource Name of resource
|
|
48
|
+
*/
|
|
49
|
+
async can(action, resource) {
|
|
50
|
+
return this.rbac.can(this.name, action, resource);
|
|
51
|
+
}
|
|
145
52
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Check if the role has any of the given permissions
|
|
55
|
+
* @method Role#canAny
|
|
56
|
+
* @param {Array} permissions List of permissions. Each has structure (String action, String resource)
|
|
57
|
+
*/
|
|
58
|
+
async canAny(permissions) {
|
|
59
|
+
return this.rbac.canAny(this.name, permissions);
|
|
60
|
+
}
|
|
152
61
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Check if the model has all of the given permissions
|
|
64
|
+
* @method Role#canAll
|
|
65
|
+
* @param {Array} permissions List of permissions. Each has structure (String action, String resource)
|
|
66
|
+
*/
|
|
67
|
+
async canAll(permissions) {
|
|
68
|
+
return this.rbac.canAll(this.name, permissions);
|
|
69
|
+
}
|
|
160
70
|
|
|
161
|
-
|
|
162
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Return true if the current role contains the specified role name
|
|
73
|
+
* @method Role#hasRole
|
|
74
|
+
* @param {String} roleChildName Name of role
|
|
75
|
+
*/
|
|
76
|
+
async hasRole(roleChildName) {
|
|
77
|
+
return this.rbac.hasRole(this.name, roleChildName);
|
|
78
|
+
}
|
|
163
79
|
|
|
164
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Return array of permission assigned to actual role
|
|
82
|
+
* @method Role#getScope
|
|
83
|
+
*/
|
|
84
|
+
async getScope() {
|
|
85
|
+
return this.rbac.getScope(this.name);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.default = Role;
|
|
89
|
+
//# sourceMappingURL=Role.js.map
|
package/dist/Role.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Role.js","names":["_Base","_interopRequireDefault","require","_Permission","e","__esModule","default","Role","Base","constructor","rbac","name","Permission","isValidName","options","delimiter","Error","grant","item","revoke","can","action","resource","canAny","permissions","canAll","hasRole","roleChildName","getScope","exports"],"sources":["../src/Role.js"],"sourcesContent":["// @flow\nimport Base from './Base';\nimport Permission from './Permission';\nimport type RBAC from './RBAC';\n\nexport default class Role extends Base {\n /**\n * Role constructor\n * @constructor Role\n * @extends {Base}\n * @param {RBAC} rbac Instance of the RBAC\n * @param {String} name Name of the role\n */\n constructor(rbac: RBAC, name: string) {\n if (!Permission.isValidName(name, rbac.options.delimiter)) {\n throw new Error('Role has no valid name');\n }\n\n super(rbac, name);\n }\n\n /**\n * Add role or permission to current role\n * @method Role#grant\n * @param {Role|Permission} item Instance of role or permission\n */\n async grant(item: Base) {\n return this.rbac.grant(this, item);\n }\n\n /**\n * Remove role or permission from current role\n * @method Role#revoke\n * @param {Role|Permission} item Instance of role or permission\n */\n async revoke(item: Base): boolean {\n return this.rbac.revoke(this, item);\n }\n\n /**\n * Return true if contains permission\n * @method Role#can\n * @param {string} action Name of action\n * @param {string} resource Name of resource\n */\n async can(action: string, resource: string): boolean {\n return this.rbac.can(this.name, action, resource);\n }\n\n /**\n * Check if the role has any of the given permissions\n * @method Role#canAny\n * @param {Array} permissions List of permissions. Each has structure (String action, String resource)\n */\n async canAny(permissions): boolean {\n return this.rbac.canAny(this.name, permissions);\n }\n\n /**\n * Check if the model has all of the given permissions\n * @method Role#canAll\n * @param {Array} permissions List of permissions. Each has structure (String action, String resource)\n */\n async canAll(permissions): boolean {\n return this.rbac.canAll(this.name, permissions);\n }\n\n /**\n * Return true if the current role contains the specified role name\n * @method Role#hasRole\n * @param {String} roleChildName Name of role\n */\n async hasRole(roleChildName: string): boolean {\n return this.rbac.hasRole(this.name, roleChildName);\n }\n\n /**\n * Return array of permission assigned to actual role\n * @method Role#getScope\n */\n async getScope(): Permission[] {\n return this.rbac.getScope(this.name);\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGvB,MAAMG,IAAI,SAASC,aAAI,CAAC;EACrC;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,IAAU,EAAEC,IAAY,EAAE;IACpC,IAAI,CAACC,mBAAU,CAACC,WAAW,CAACF,IAAI,EAAED,IAAI,CAACI,OAAO,CAACC,SAAS,CAAC,EAAE;MACzD,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;IAC3C;IAEA,KAAK,CAACN,IAAI,EAAEC,IAAI,CAAC;EACnB;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMM,KAAKA,CAACC,IAAU,EAAE;IACtB,OAAO,IAAI,CAACR,IAAI,CAACO,KAAK,CAAC,IAAI,EAAEC,IAAI,CAAC;EACpC;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,MAAMA,CAACD,IAAU,EAAW;IAChC,OAAO,IAAI,CAACR,IAAI,CAACS,MAAM,CAAC,IAAI,EAAED,IAAI,CAAC;EACrC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAME,GAAGA,CAACC,MAAc,EAAEC,QAAgB,EAAW;IACnD,OAAO,IAAI,CAACZ,IAAI,CAACU,GAAG,CAAC,IAAI,CAACT,IAAI,EAAEU,MAAM,EAAEC,QAAQ,CAAC;EACnD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,MAAMA,CAACC,WAAW,EAAW;IACjC,OAAO,IAAI,CAACd,IAAI,CAACa,MAAM,CAAC,IAAI,CAACZ,IAAI,EAAEa,WAAW,CAAC;EACjD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,MAAMA,CAACD,WAAW,EAAW;IACjC,OAAO,IAAI,CAACd,IAAI,CAACe,MAAM,CAAC,IAAI,CAACd,IAAI,EAAEa,WAAW,CAAC;EACjD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAME,OAAOA,CAACC,aAAqB,EAAW;IAC5C,OAAO,IAAI,CAACjB,IAAI,CAACgB,OAAO,CAAC,IAAI,CAACf,IAAI,EAAEgB,aAAa,CAAC;EACpD;;EAEA;AACF;AACA;AACA;EACE,MAAMC,QAAQA,CAAA,EAAiB;IAC7B,OAAO,IAAI,CAAClB,IAAI,CAACkB,QAAQ,CAAC,IAAI,CAACjB,IAAI,CAAC;EACtC;AACF;AAACkB,OAAA,CAAAvB,OAAA,GAAAC,IAAA","ignoreList":[]}
|
package/dist/Storage.js
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _Permission = _interopRequireDefault(require("./Permission"));
|
|
8
|
+
var _Role = _interopRequireDefault(require("./Role"));
|
|
9
|
+
var _Base = _interopRequireDefault(require("./Base"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
class Storage {
|
|
12
|
+
useRBAC(rbac) {
|
|
13
|
+
if (this.rbac) {
|
|
14
|
+
throw new Error('Storage is already in use with another instance of RBAC');
|
|
15
|
+
}
|
|
16
|
+
this.rbac = rbac;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Add permission or role
|
|
21
|
+
* @method Storage#add
|
|
22
|
+
* @param {Base} item Instance of role or permission
|
|
23
|
+
*/
|
|
24
|
+
async add(item) {
|
|
25
|
+
throw new Error('Storage method add is not implemented');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Remove permission or role
|
|
30
|
+
* @method Storage#remove
|
|
31
|
+
* @param {Base} item Instance of role or permission
|
|
32
|
+
*/
|
|
33
|
+
async remove(item) {
|
|
34
|
+
throw new Error('Storage method remove is not implemented');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Add (grant) permission or role to hierarchy of actual role
|
|
39
|
+
* @method Storage#grant
|
|
40
|
+
* @param {Role} role Instance of role
|
|
41
|
+
* @param {Base} child Instance of role or permission
|
|
42
|
+
*/
|
|
43
|
+
async grant(role, child) {
|
|
44
|
+
throw new Error('Storage method grant is not implemented');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Remove (revoke) permission or role from hierarchy of actual role
|
|
49
|
+
* @method Storage#revoke
|
|
50
|
+
* @param {Role} role Instance of role
|
|
51
|
+
* @param {Base} child Instance of role or permission
|
|
52
|
+
*/
|
|
53
|
+
async revoke(role, child) {
|
|
54
|
+
throw new Error('Storage method revoke is not implemented');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get instance of permission or role by his name
|
|
59
|
+
* @method Storage#get
|
|
60
|
+
* @param {String} name Name of role or permission
|
|
61
|
+
* @return {Base}
|
|
62
|
+
*/
|
|
63
|
+
async get(name) {
|
|
64
|
+
throw new Error('Storage method get is not implemented');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Get all instances of Roles
|
|
69
|
+
* @method Storage#getRoles
|
|
70
|
+
* @return {Role[]}
|
|
71
|
+
*/
|
|
72
|
+
async getRoles() {
|
|
73
|
+
throw new Error('Storage method getRoles is not implemented');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Get all instances of Permissions
|
|
78
|
+
* @method Storage#getPermissions
|
|
79
|
+
* @return {Permission[]}
|
|
80
|
+
*/
|
|
81
|
+
async getPermissions() {
|
|
82
|
+
throw new Error('Storage method getPermissions is not implemented');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Get instances of Roles and Permissions assigned to role
|
|
87
|
+
* @method Storage#getGrants
|
|
88
|
+
* @param {String} role Name of role
|
|
89
|
+
* @return {Base[]}
|
|
90
|
+
*/
|
|
91
|
+
async getGrants(role) {
|
|
92
|
+
throw new Error('Storage method getGrants is not implemented');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get instance of role by his name
|
|
97
|
+
* @method Storage#getRole
|
|
98
|
+
* @param {String} name Name of role
|
|
99
|
+
* @return {Role}
|
|
100
|
+
*/
|
|
101
|
+
async getRole(name) {
|
|
102
|
+
const role = await this.get(name);
|
|
103
|
+
if (role && role instanceof _Role.default) {
|
|
104
|
+
return role;
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Get instance of permission by his name
|
|
111
|
+
* @method Storage#getPermission
|
|
112
|
+
* @param {string} action Name of action
|
|
113
|
+
* @param {string} resource Name of resource
|
|
114
|
+
* @return {Permission} Instance of actual storage
|
|
115
|
+
*/
|
|
116
|
+
async getPermission(action, resource) {
|
|
117
|
+
const name = _Permission.default.createName(action, resource, this.rbac.options.delimiter);
|
|
118
|
+
const item = await this.get(name);
|
|
119
|
+
if (item && item instanceof _Permission.default) {
|
|
120
|
+
return item;
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Return true with callback if role or permission exists
|
|
127
|
+
* @method Storage#exists
|
|
128
|
+
* @param {string} name Name of role or permission
|
|
129
|
+
* @return {boolean}
|
|
130
|
+
*/
|
|
131
|
+
async exists(name) {
|
|
132
|
+
const item = await this.get(name);
|
|
133
|
+
return !!item;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Return true with callback if role exists
|
|
138
|
+
* @method Storage#existsRole
|
|
139
|
+
* @param {string} name Name of role
|
|
140
|
+
* @return {boolean}
|
|
141
|
+
*/
|
|
142
|
+
async existsRole(name) {
|
|
143
|
+
const role = await this.getRole(name);
|
|
144
|
+
return !!role;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Return true with callback if permission exists
|
|
149
|
+
* @method Storage#existsPermission
|
|
150
|
+
* @param {string} action Name of action
|
|
151
|
+
* @param {string} resource Name of resource
|
|
152
|
+
* @return {boolean}
|
|
153
|
+
*/
|
|
154
|
+
async existsPermission(action, resource) {
|
|
155
|
+
const permission = await this.getPermission(action, resource);
|
|
156
|
+
return !!permission;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.default = Storage;
|
|
160
|
+
//# sourceMappingURL=Storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Storage.js","names":["_Permission","_interopRequireDefault","require","_Role","_Base","e","__esModule","default","Storage","useRBAC","rbac","Error","add","item","remove","grant","role","child","revoke","get","name","getRoles","getPermissions","getGrants","getRole","Role","undefined","getPermission","action","resource","Permission","createName","options","delimiter","exists","existsRole","existsPermission","permission","exports"],"sources":["../src/Storage.js"],"sourcesContent":["// @flow\nimport Permission from './Permission';\nimport Role from './Role';\nimport Base from './Base';\nimport type RBAC from './RBAC';\n\nexport default class Storage {\n useRBAC(rbac: RBAC): void {\n if (this.rbac) {\n throw new Error('Storage is already in use with another instance of RBAC');\n }\n\n this.rbac = rbac;\n }\n\n /**\n * Add permission or role\n * @method Storage#add\n * @param {Base} item Instance of role or permission\n */\n async add(item: Base): boolean {\n throw new Error('Storage method add is not implemented');\n }\n\n /**\n * Remove permission or role\n * @method Storage#remove\n * @param {Base} item Instance of role or permission\n */\n async remove(item: Base): boolean {\n throw new Error('Storage method remove is not implemented');\n }\n\n /**\n * Add (grant) permission or role to hierarchy of actual role\n * @method Storage#grant\n * @param {Role} role Instance of role\n * @param {Base} child Instance of role or permission\n */\n async grant(role: Role, child: Base): boolean {\n throw new Error('Storage method grant is not implemented');\n }\n\n /**\n * Remove (revoke) permission or role from hierarchy of actual role\n * @method Storage#revoke\n * @param {Role} role Instance of role\n * @param {Base} child Instance of role or permission\n */\n async revoke(role: Role, child: Base): boolean {\n throw new Error('Storage method revoke is not implemented');\n }\n\n /**\n * Get instance of permission or role by his name\n * @method Storage#get\n * @param {String} name Name of role or permission\n * @return {Base}\n */\n async get(name: string): ?Base {\n throw new Error('Storage method get is not implemented');\n }\n\n /**\n * Get all instances of Roles\n * @method Storage#getRoles\n * @return {Role[]}\n */\n async getRoles(): Role[] {\n throw new Error('Storage method getRoles is not implemented');\n }\n\n /**\n * Get all instances of Permissions\n * @method Storage#getPermissions\n * @return {Permission[]}\n */\n async getPermissions(): Permission[] {\n throw new Error('Storage method getPermissions is not implemented');\n }\n\n /**\n * Get instances of Roles and Permissions assigned to role\n * @method Storage#getGrants\n * @param {String} role Name of role\n * @return {Base[]}\n */\n async getGrants(role: string): Base[] {\n throw new Error('Storage method getGrants is not implemented');\n }\n\n /**\n * Get instance of role by his name\n * @method Storage#getRole\n * @param {String} name Name of role\n * @return {Role}\n */\n async getRole(name: string): ?Role {\n const role = await this.get(name);\n if (role && role instanceof Role) {\n return role;\n }\n\n return undefined;\n }\n\n /**\n * Get instance of permission by his name\n * @method Storage#getPermission\n * @param {string} action Name of action\n * @param {string} resource Name of resource\n * @return {Permission} Instance of actual storage\n */\n async getPermission(action: string, resource: string): ?Permission {\n const name = Permission.createName(action, resource, this.rbac.options.delimiter);\n const item = await this.get(name);\n if (item && item instanceof Permission) {\n return item;\n }\n\n return undefined;\n }\n\n /**\n * Return true with callback if role or permission exists\n * @method Storage#exists\n * @param {string} name Name of role or permission\n * @return {boolean}\n */\n async exists(name: string): boolean {\n const item = await this.get(name);\n return !!item;\n }\n\n /**\n * Return true with callback if role exists\n * @method Storage#existsRole\n * @param {string} name Name of role\n * @return {boolean}\n */\n async existsRole(name: string): boolean {\n const role = await this.getRole(name);\n return !!role;\n }\n\n /**\n * Return true with callback if permission exists\n * @method Storage#existsPermission\n * @param {string} action Name of action\n * @param {string} resource Name of resource\n * @return {boolean}\n */\n async existsPermission(action: string, resource: string): boolean {\n const permission = await this.getPermission(action, resource);\n return !!permission;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -1,39 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
exports
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
6
|
+
Object.defineProperty(exports, "Base", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Base.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Memory", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _Memory.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "Permission", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _Permission.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "RBAC", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _RBAC.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "Role", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _Role.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "Storage", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _Storage.default;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
var _RBAC = _interopRequireDefault(require("./RBAC"));
|
|
43
|
+
var _Base = _interopRequireDefault(require("./Base"));
|
|
44
|
+
var _Role = _interopRequireDefault(require("./Role"));
|
|
45
|
+
var _Permission = _interopRequireDefault(require("./Permission"));
|
|
46
|
+
var _Storage = _interopRequireDefault(require("./Storage"));
|
|
47
|
+
var _Memory = _interopRequireDefault(require("./Memory"));
|
|
48
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_RBAC","_interopRequireDefault","require","_Base","_Role","_Permission","_Storage","_Memory","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["export RBAC from './RBAC';\nexport Base from './Base';\nexport Role from './Role';\nexport Permission from './Permission';\nexport Storage from './Storage';\nexport Memory from './Memory';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA8B,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|