diff --git a/docs/assets/style.css b/docs/assets/style.css
index 108428c..07a385b 100644
--- a/docs/assets/style.css
+++ b/docs/assets/style.css
@@ -11,6 +11,7 @@
--light-color-text-aside: #6e6e6e;
--light-color-link: #1f70c2;
+ --light-color-ts-keyword: #056bd6;
--light-color-ts-project: #b111c9;
--light-color-ts-module: var(--light-color-ts-project);
--light-color-ts-namespace: var(--light-color-ts-project);
@@ -50,6 +51,7 @@
--dark-color-text-aside: #dddddd;
--dark-color-link: #00aff4;
+ --dark-color-ts-keyword: #3399ff;
--dark-color-ts-project: #e358ff;
--dark-color-ts-module: var(--dark-color-ts-project);
--dark-color-ts-namespace: var(--dark-color-ts-project);
@@ -91,6 +93,7 @@
--color-text-aside: var(--light-color-text-aside);
--color-link: var(--light-color-link);
+ --color-ts-keyword: var(--light-color-ts-keyword);
--color-ts-module: var(--light-color-ts-module);
--color-ts-namespace: var(--light-color-ts-namespace);
--color-ts-enum: var(--light-color-ts-enum);
@@ -132,6 +135,7 @@
--color-text-aside: var(--dark-color-text-aside);
--color-link: var(--dark-color-link);
+ --color-ts-keyword: var(--dark-color-ts-keyword);
--color-ts-module: var(--dark-color-ts-module);
--color-ts-namespace: var(--dark-color-ts-namespace);
--color-ts-enum: var(--dark-color-ts-enum);
@@ -180,6 +184,7 @@ body {
--color-text-aside: var(--light-color-text-aside);
--color-link: var(--light-color-link);
+ --color-ts-keyword: var(--light-color-ts-keyword);
--color-ts-module: var(--light-color-ts-module);
--color-ts-namespace: var(--light-color-ts-namespace);
--color-ts-enum: var(--light-color-ts-enum);
@@ -219,6 +224,7 @@ body {
--color-text-aside: var(--dark-color-text-aside);
--color-link: var(--dark-color-link);
+ --color-ts-keyword: var(--dark-color-ts-keyword);
--color-ts-module: var(--dark-color-ts-module);
--color-ts-namespace: var(--dark-color-ts-namespace);
--color-ts-enum: var(--dark-color-ts-enum);
@@ -984,6 +990,11 @@ a.tsd-index-link {
overflow-x: auto;
}
+.tsd-signature-keyword {
+ color: var(--color-ts-keyword);
+ font-weight: normal;
+}
+
.tsd-signature-symbol {
color: var(--color-text-aside);
font-weight: normal;
diff --git a/docs/classes/AccessControl.html b/docs/classes/AccessControl.html
index 729fdd9..015ff0a 100644
--- a/docs/classes/AccessControl.html
+++ b/docs/classes/AccessControl.html
@@ -1,230 +1,10 @@
-
AccessControl | abacl
-
-
-
-
-
-- Preparing search index...
-- The search index is not available
abacl
-
-
-
-
-
-
Class AccessControl<Sub, Act, Obj>
-
-Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
-
-
- Index
-
-
-
-Properties
-driver
+
AccessControl | abaclClass AccessControl<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
-
-Constructors
-
-constructor
-
-- new AccessControl<Sub, Act, Obj>(policies?, options?): AccessControl<Sub, Act, Obj>
--
-
-
Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
Parameters
-
--
-
Optional
policies: Policy<Sub, Act, Obj>[]
--
-
-
-
-Properties
-
-
-Protected
Readonly
options
-
-
-Methods
-
-can
-
-- can(subjects, action, object, options?): Promise<Permission<Sub, Act, Obj>>
--
-
-
Parameters
-
--
-
--
-
--
-
--
-
Optional
options: CanOptions<Sub, Act, Obj>
-Returns Promise<Permission<Sub, Act, Obj>>
-
-clear
-
-- clear(): Promise<"OK">
--
-
Returns Promise<"OK">
-
-delete
-
-- delete(policy): Promise<"OK">
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns Promise<"OK">
-
-exists
-
-- exists(policy): Promise<boolean>
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns Promise<boolean>
-
-Protected
setDriver
-
-- setDriver(driver?): Promise<void>
--
-
-
Returns Promise<void>
-
-update
-
-- update(policy): Promise<"OK">
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns Promise<"OK">
-
-
-
\ No newline at end of file
+
Constructors
constructor
- new AccessControl<Sub, Act, Obj>(policies?, options?): AccessControl<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
Parameters
Optional
policies: Policy<Sub, Act, Obj>[]
Properties
Protected
Readonly
options
Methods
can
- can(subjects, action, object, options?): Promise<Permission<Sub, Act, Obj>>
Returns Promise<Permission<Sub, Act, Obj>>
clear
- clear(): Promise<"OK">
Returns Promise<"OK">
delete
- delete(policy): Promise<"OK">
Returns Promise<"OK">
exists
- exists(policy): Promise<boolean>
Returns Promise<boolean>
Protected
setDriver
- setDriver(driver?): Promise<void>
Returns Promise<void>
update
- update(policy): Promise<"OK">
Returns Promise<"OK">
\ No newline at end of file
diff --git a/docs/classes/Grant.html b/docs/classes/Grant.html
index 3955a82..1517b60 100644
--- a/docs/classes/Grant.html
+++ b/docs/classes/Grant.html
@@ -1,56 +1,8 @@
-Grant | abacl
-
-
-
-
-
-- Preparing search index...
-- The search index is not available
abacl
-
-
-
-
-
-
Class Grant<Sub, Act, Obj>
-
-Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
-
-
- Index
-
-
-
-Properties
-options
+
Grant | abaclClass Grant<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
-
-Constructors
-
-constructor
-
-- new Grant<Sub, Act, Obj>(policies?, options?): Grant<Sub, Act, Obj>
--
-
-
Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
Parameters
-
--
-
Optional
policies: Policy<Sub, Act, Obj>[]
--
-
-Returns Grant<Sub, Act, Obj>
-
-Properties
-
-Protected
Readonly
options
-
-
-Protected
present
-present: Record<string, Policy<Sub, Act, Obj>> = {}
-
-Accessors
-
-policies
-
-- get policies(): Policy<Sub, Act, Obj>[]
--
-
Returns Policy<Sub, Act, Obj>[]
-- set policies(policies): void
--
-
-
Parameters
-
--
-
policies: Policy<Sub, Act, Obj>[]
-Returns void
-
-Methods
-
-delete
-
-- delete(policy): boolean
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns boolean
-
-exists
-
-- exists(policy): boolean
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns boolean
-
-field
-
-- field<Data>(data, cKey?): Promise<Data>
--
-
-
-
Parameters
-
--
-
data: any
--
-
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
-Returns Promise<Data>
-
-filter
-
-- filter<Data>(data, cKey?): Promise<Data>
--
-
-
-
Parameters
-
--
-
data: any
--
-
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
-Returns Promise<Data>
-
-has
-
-- has(cKey): boolean
--
-
-
Returns boolean
-
-location
-
-- location(ip, cKey?): boolean
--
-
-
Parameters
-
--
-
ip: string
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns boolean
-
-Protected
notations
-
-- notations(policies, data, type, cKey?): Promise<string[][]>
--
-
-
Parameters
-
--
-
policies: Policy<Sub, Act, Obj>[]
--
-
data: any
--
-
type: "filter" | "field"
--
-
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
-Returns Promise<string[][]>
-
-scopes
-
-- scopes<S>(prop, cKey?): S[]
--
-
-
-
Parameters
-
--
-
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns S[]
-
-subjects
-
-- subjects(cKey?): Sub[]
--
-
-
Parameters
-
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns Sub[]
-
-time
-
-- time(options?, cKey?): boolean
--
-
-
Parameters
-
--
-
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns boolean
-
-update
-
-- update(policy): void
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns void
-
-
-
\ No newline at end of file
+
Constructors
constructor
- new Grant<Sub, Act, Obj>(policies?, options?): Grant<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
Parameters
Optional
policies: Policy<Sub, Act, Obj>[]
Returns Grant<Sub, Act, Obj>
Properties
Protected
Readonly
options
Protected
present
present: Record<string, Policy<Sub, Act, Obj>> = {} Accessors
policies
- get policies(): Policy<Sub, Act, Obj>[]
Returns Policy<Sub, Act, Obj>[]
- set policies(policies): void
Parameters
policies: Policy<Sub, Act, Obj>[]
Returns void
Methods
delete
- delete(policy): boolean
Returns boolean
exists
- exists(policy): boolean
Returns boolean
field
- field<Data>(data, cKey?): Promise<Data>
Parameters
data: any
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
Returns Promise<Data>
filter
- filter<Data>(data, cKey?): Promise<Data>
Parameters
data: any
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
Returns Promise<Data>
has
- has(cKey): boolean
Returns boolean
location
- location(ip, cKey?): boolean
Parameters
ip: string
Optional
cKey: CacheKey<Sub, Act, Obj>
Returns boolean
Protected
notations
- notations(policies, data, type, cKey?): Promise<string[][]>
Parameters
policies: Policy<Sub, Act, Obj>[]
data: any
type: "filter" | "field"
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
Returns Promise<string[][]>
scopes
- scopes<S>(prop, cKey?): S[]
Returns S[]
subjects
- subjects(cKey?): Sub[]
Returns Sub[]
time
- time(options?, cKey?): boolean
Returns boolean
update
- update(policy): void
Returns void
\ No newline at end of file
diff --git a/docs/classes/MemoryDriver.html b/docs/classes/MemoryDriver.html
index d710cdf..182ef08 100644
--- a/docs/classes/MemoryDriver.html
+++ b/docs/classes/MemoryDriver.html
@@ -1,240 +1,10 @@
-MemoryDriver | abacl
-
-
-
-
-
-- Preparing search index...
-- The search index is not available
abacl
-
-
-
-
-
-
Class MemoryDriver<Sub, Act, Obj>
-
-Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
-
-
-
- Index
-
-
-
-Properties
-options
+
MemoryDriver | abaclClass MemoryDriver<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
-
-Constructors
-
-constructor
-
-- new MemoryDriver<Sub, Act, Obj>(options?): MemoryDriver<Sub, Act, Obj>
--
-
-
Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
-
-Properties
-
-
-Protected
present
-present: Record<string, Policy<Sub, Act, Obj>> = {}
-
-Methods
-
-clear
-
-- clear(): "OK"
--
-
Returns "OK"
-
-del
-
-- del(policy): "OK"
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns "OK"
-
-get
-
-- get(cKey): Policy<Sub, Act, Obj>[]
--
-
-
Returns Policy<Sub, Act, Obj>[]
-
-has
-
-- has(policy): boolean
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns boolean
-
-set
-
-- set(policy): "OK"
--
-
-
Parameters
-
--
-
policy: Policy<Sub, Act, Obj>
-Returns "OK"
-
-Static
build
-
-- build<Sub, Act, Obj>(options?): MemoryDriver<Sub, Act, Obj>
--
-
-
Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
-
-
-
\ No newline at end of file
+
Constructors
constructor
- new MemoryDriver<Sub, Act, Obj>(options?): MemoryDriver<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
Properties
Protected
present
present: Record<string, Policy<Sub, Act, Obj>> = {} Methods
clear
- clear(): "OK"
Returns "OK"
del
- del(policy): "OK"
Returns "OK"
get
- get(cKey): Policy<Sub, Act, Obj>[]
Returns Policy<Sub, Act, Obj>[]
has
- has(policy): boolean
Returns boolean
set
- set(policy): "OK"
Returns "OK"
Static
build
- build<Sub, Act, Obj>(options?): MemoryDriver<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
\ No newline at end of file
diff --git a/docs/classes/Permission.html b/docs/classes/Permission.html
index 4918fa7..67bcd24 100644
--- a/docs/classes/Permission.html
+++ b/docs/classes/Permission.html
@@ -1,56 +1,8 @@
-Permission | abacl
-
-
-
-
-
-- Preparing search index...
-- The search index is not available
abacl
-
-
-
-
-
-
Class Permission<Sub, Act, Obj>
-
-Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
-
-
- Index
-
-
-
-Properties
-grant
+
Permission | abaclClass Permission<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
-
-Constructors
-
-constructor
-
-- new Permission<Sub, Act, Obj>(granted, grant): Permission<Sub, Act, Obj>
--
-
-
Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
Parameters
-
--
-
granted: boolean
--
-
grant: Grant<Sub, Act, Obj>
-Returns Permission<Sub, Act, Obj>
-
-Properties
-
-Readonly
grant
-grant: Grant<Sub, Act, Obj>
-
-Readonly
granted
-granted: boolean
-
-Accessors
-
-policies
-
-- get policies(): Policy<Sub, Act, Obj>[]
--
-
Returns Policy<Sub, Act, Obj>[]
-
-Methods
-
-field
-
-- field<Data>(data, cKey?): Promise<Data>
--
-
-
-
Parameters
-
--
-
data: any
--
-
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
-Returns Promise<Data>
-
-filter
-
-- filter<Data>(data, cKey?): Promise<Data>
--
-
-
-
Parameters
-
--
-
data: any
--
-
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
-Returns Promise<Data>
-
-has
-
-- has(cKey): boolean
--
-
-
Returns boolean
-
-location
-
-- location(ip, cKey?): boolean
--
-
-
Parameters
-
--
-
ip: string
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns boolean
-
-scopes
-
-- scopes<Scope>(prop, cKey?): Scope[]
--
-
-
-
Parameters
-
--
-
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns Scope[]
-
-subjects
-
-- subjects(cKey?): Sub[]
--
-
-
Parameters
-
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns Sub[]
-
-time
-
-- time(options?, cKey?): boolean
--
-
-
Parameters
-
--
-
--
-
Optional
cKey: CacheKey<Sub, Act, Obj>
-Returns boolean
-
-Static
build
-
-- build<Sub, Act, Obj>(granted, policies, options?): Permission<Sub, Act, Obj>
--
-
-
Type Parameters
-
--
-
Sub = string
--
-
Act = string
--
-
Obj = string
-
-
Parameters
-
--
-
granted: boolean
--
-
policies: Policy<Sub, Act, Obj>[]
--
-
-Returns Permission<Sub, Act, Obj>
-
-
-
\ No newline at end of file
+
Constructors
constructor
- new Permission<Sub, Act, Obj>(granted, grant): Permission<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
Parameters
granted: boolean
grant: Grant<Sub, Act, Obj>
Returns Permission<Sub, Act, Obj>
Properties
Readonly
grant
grant: Grant<Sub, Act, Obj> Readonly
granted
granted: boolean
Accessors
policies
- get policies(): Policy<Sub, Act, Obj>[]
Returns Policy<Sub, Act, Obj>[]
Methods
field
- field<Data>(data, cKey?): Promise<Data>
Parameters
data: any
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
Returns Promise<Data>
filter
- filter<Data>(data, cKey?): Promise<Data>
Parameters
data: any
Optional
cKey: CacheKey<Sub, Act, Obj> | ((data) => CacheKey<Sub, Act, Obj> | Promise<CacheKey<Sub, Act, Obj>>)
Returns Promise<Data>
has
- has(cKey): boolean
Returns boolean
location
- location(ip, cKey?): boolean
Parameters
ip: string
Optional
cKey: CacheKey<Sub, Act, Obj>
Returns boolean
scopes
- scopes<Scope>(prop, cKey?): Scope[]
Returns Scope[]
subjects
- subjects(cKey?): Sub[]
Returns Sub[]
time
- time(options?, cKey?): boolean
Returns boolean
Static
build
- build<Sub, Act, Obj>(granted, policies, options?): Permission<Sub, Act, Obj>
Type Parameters
Sub = string
Act = string
Obj = string
Parameters
granted: boolean
policies: Policy<Sub, Act, Obj>[]
Returns Permission<Sub, Act, Obj>
\ No newline at end of file
diff --git a/docs/coverage/coverage-summary.json b/docs/coverage/coverage-summary.json
index 24933d9..d9f97ad 100644
--- a/docs/coverage/coverage-summary.json
+++ b/docs/coverage/coverage-summary.json
@@ -1,24 +1,24 @@
{"total": {"lines":{"total":754,"covered":737,"skipped":0,"pct":97.74},"statements":{"total":754,"covered":737,"skipped":0,"pct":97.74},"functions":{"total":60,"covered":58,"skipped":0,"pct":96.66},"branches":{"total":254,"covered":220,"skipped":0,"pct":86.61},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/classes/acl.class.ts": {"lines":{"total":83,"covered":81,"skipped":0,"pct":97.59},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":83,"covered":81,"skipped":0,"pct":97.59},"branches":{"total":32,"covered":23,"skipped":0,"pct":71.87}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/classes/grant.class.ts": {"lines":{"total":211,"covered":199,"skipped":0,"pct":94.31},"functions":{"total":21,"covered":21,"skipped":0,"pct":100},"statements":{"total":211,"covered":199,"skipped":0,"pct":94.31},"branches":{"total":114,"covered":99,"skipped":0,"pct":86.84}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/classes/index.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/classes/permission.class.ts": {"lines":{"total":59,"covered":59,"skipped":0,"pct":100},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":59,"covered":59,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/consts/acl.const.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/consts/index.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/driver/index.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/driver/memory/index.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/driver/memory/memory.driver.ts": {"lines":{"total":48,"covered":45,"skipped":0,"pct":93.75},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":48,"covered":45,"skipped":0,"pct":93.75},"branches":{"total":9,"covered":8,"skipped":0,"pct":88.88}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/driver/memory/memory.tools.ts": {"lines":{"total":63,"covered":63,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":63,"covered":63,"skipped":0,"pct":100},"branches":{"total":36,"covered":33,"skipped":0,"pct":91.66}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/types/cache.type.ts": {"lines":{"total":28,"covered":28,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":28,"covered":28,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/types/common.type.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/types/index.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/types/pattern.type.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/types/policy.type.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/utils/index.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/utils/other.util.ts": {"lines":{"total":44,"covered":44,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":44,"covered":44,"skipped":0,"pct":100},"branches":{"total":21,"covered":17,"skipped":0,"pct":80.95}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/utils/regex.util.ts": {"lines":{"total":29,"covered":29,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":29,"covered":29,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/utils/strict.util.ts": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":7,"covered":7,"skipped":0,"pct":100}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/src/utils/validate.util.ts": {"lines":{"total":28,"covered":28,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":28,"covered":28,"skipped":0,"pct":100},"branches":{"total":24,"covered":22,"skipped":0,"pct":91.66}}
-,"/home/vahid/WorkSpace/vhidvz/abacl/test/mock.ts": {"lines":{"total":77,"covered":77,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":77,"covered":77,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/classes/acl.class.ts": {"lines":{"total":83,"covered":81,"skipped":0,"pct":97.59},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":83,"covered":81,"skipped":0,"pct":97.59},"branches":{"total":32,"covered":23,"skipped":0,"pct":71.87}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/classes/grant.class.ts": {"lines":{"total":211,"covered":199,"skipped":0,"pct":94.31},"functions":{"total":21,"covered":21,"skipped":0,"pct":100},"statements":{"total":211,"covered":199,"skipped":0,"pct":94.31},"branches":{"total":114,"covered":99,"skipped":0,"pct":86.84}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/classes/index.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/classes/permission.class.ts": {"lines":{"total":59,"covered":59,"skipped":0,"pct":100},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":59,"covered":59,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/consts/acl.const.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/consts/index.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/driver/index.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/driver/memory/index.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/driver/memory/memory.driver.ts": {"lines":{"total":48,"covered":45,"skipped":0,"pct":93.75},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":48,"covered":45,"skipped":0,"pct":93.75},"branches":{"total":9,"covered":8,"skipped":0,"pct":88.88}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/driver/memory/memory.tools.ts": {"lines":{"total":63,"covered":63,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":63,"covered":63,"skipped":0,"pct":100},"branches":{"total":36,"covered":33,"skipped":0,"pct":91.66}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/types/cache.type.ts": {"lines":{"total":28,"covered":28,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":28,"covered":28,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/types/common.type.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/types/index.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/types/pattern.type.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/types/policy.type.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/utils/index.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/utils/other.util.ts": {"lines":{"total":44,"covered":44,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":44,"covered":44,"skipped":0,"pct":100},"branches":{"total":21,"covered":17,"skipped":0,"pct":80.95}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/utils/regex.util.ts": {"lines":{"total":29,"covered":29,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":29,"covered":29,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/utils/strict.util.ts": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":7,"covered":7,"skipped":0,"pct":100}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/src/utils/validate.util.ts": {"lines":{"total":28,"covered":28,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":28,"covered":28,"skipped":0,"pct":100},"branches":{"total":24,"covered":22,"skipped":0,"pct":91.66}}
+,"/home/vahid/WorkSpace/vhidvz-github/abacl/test/mock.ts": {"lines":{"total":77,"covered":77,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":77,"covered":77,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
}
diff --git a/docs/coverage/lcov-report/index.html b/docs/coverage/lcov-report/index.html
index 272a8a1..14917bb 100644
--- a/docs/coverage/lcov-report/index.html
+++ b/docs/coverage/lcov-report/index.html
@@ -206,7 +206,7 @@ All files
-
-
-
-
-
-- Preparing search index...
-- The search index is not available
abacl
-
-
-
-
-
-
-- IP_CIDR(str): boolean
--
-
-
Returns boolean
-
-
-