@unchainedshop/roles 3.1.13 → 4.0.0-rc.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/lib/roles.d.ts CHANGED
@@ -1,29 +1,23 @@
1
- type RoleUserContext = {
1
+ interface RoleUserContext {
2
2
  userId?: string;
3
3
  user?: any;
4
- };
4
+ }
5
5
  export interface RoleInterface {
6
6
  name: string;
7
- allowRules: {
8
- [name: string]: any;
9
- };
7
+ allowRules: Record<string, any>;
10
8
  allow(action: string, fn: (root: any, props: any, context: RoleUserContext) => Promise<boolean>): void;
11
9
  helpers: Record<string, unknown>;
12
10
  }
13
- export interface RoleInterfaceFactory {
14
- new (key: string): RoleInterface;
15
- }
11
+ export type RoleInterfaceFactory = new (key: string) => RoleInterface;
16
12
  export type CheckPermissionArgs = [obj?: any, params?: any];
17
13
  export interface RolesInterface {
18
- roles: {
19
- [name: string]: RoleInterface;
20
- };
14
+ roles: Record<string, RoleInterface>;
21
15
  actions: string[];
22
16
  helpers: string[];
23
17
  registerAction(name: string): void;
24
18
  registerHelper(name: string): void;
25
- getUserRoles(userId: string, roles: Array<string>, includeSpecial: boolean): string[];
26
- allow(context: RoleUserContext, roles: Array<string>, action?: string, args?: CheckPermissionArgs): Promise<boolean>;
19
+ getUserRoles(userId: string, roles: string[], includeSpecial: boolean): string[];
20
+ allow(context: RoleUserContext, roles: string[], action?: string, args?: CheckPermissionArgs): Promise<boolean>;
27
21
  userHasPermission(context: RoleUserContext, action: string, args: CheckPermissionArgs): Promise<boolean>;
28
22
  adminRole?: RoleInterface;
29
23
  loggedInRole?: RoleInterface;
@@ -31,15 +25,13 @@ export interface RolesInterface {
31
25
  }
32
26
  export interface RoleInterface {
33
27
  name: string;
34
- allowRules: {
35
- [name: string]: any;
36
- };
28
+ allowRules: Record<string, any>;
37
29
  allow(action: string, fn: (root: any, props: any, context: RoleUserContext) => Promise<boolean>): void;
38
30
  helpers: Record<string, unknown>;
39
31
  }
40
32
  export interface IRoleOptionConfig {
41
33
  additionalRoles?: Record<string, (role: RolesInterface, actions: Record<string, string>) => void>;
42
- additionalActions?: Array<string>;
34
+ additionalActions?: string[];
43
35
  }
44
36
  export declare const Roles: RolesInterface;
45
37
  /**
@@ -47,12 +39,8 @@ export declare const Roles: RolesInterface;
47
39
  */
48
40
  export declare class Role implements RoleInterface {
49
41
  name: string;
50
- allowRules: {
51
- [name: string]: any;
52
- };
53
- helpers: {
54
- [name: string]: any;
55
- };
42
+ allowRules: Record<string, any>;
43
+ helpers: Record<string, any>;
56
44
  constructor(name: string);
57
45
  /**
58
46
  * Adds a helper to a role
@@ -1 +1 @@
1
- {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../src/roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../src/roles.ts"],"names":[],"mappings":"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"}
package/lib/roles.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../src/roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../src/roles.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
- export declare const has: (obj: {
2
- [key: string]: any;
3
- }, key: string) => boolean;
1
+ export declare const has: (obj: Record<string, any>, key: string) => boolean;
4
2
  //# sourceMappingURL=has.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"has.d.ts","sourceRoot":"","sources":["../../src/utils/has.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,GAAI,KAAK;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,KAAK,MAAM,KAAG,OAS9D,CAAC"}
1
+ {"version":3,"file":"has.d.ts","sourceRoot":"","sources":["../../src/utils/has.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,MAAM,KAAG,OAS3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"has.js","sourceRoot":"","sources":["../../src/utils/has.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAA2B,EAAE,GAAW,EAAW,EAAE;IACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,OAAO,CACL,CAAC,CAAC,GAAG;QACL,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"has.js","sourceRoot":"","sources":["../../src/utils/has.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAwB,EAAE,GAAW,EAAW,EAAE;IACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,OAAO,CACL,CAAC,CAAC,GAAG;QACL,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/roles",
3
- "version": "3.1.13",
3
+ "version": "4.0.0-rc.3",
4
4
  "description": "Roles package for unchained engine",
5
5
  "main": "lib/roles-index.js",
6
6
  "types": "lib/roles-index.d.ts",
package/src/roles.ts CHANGED
@@ -1,34 +1,31 @@
1
1
  import { has } from './utils/has.js';
2
2
  import { isFunction } from './utils/isFunction.js';
3
3
 
4
- type RoleUserContext = { userId?: string; user?: any };
4
+ interface RoleUserContext {
5
+ userId?: string;
6
+ user?: any;
7
+ }
5
8
  export interface RoleInterface {
6
9
  name: string;
7
- allowRules: {
8
- [name: string]: any;
9
- };
10
+ allowRules: Record<string, any>;
10
11
  allow(action: string, fn: (root: any, props: any, context: RoleUserContext) => Promise<boolean>): void;
11
12
  helpers: Record<string, unknown>;
12
13
  }
13
14
 
14
- export interface RoleInterfaceFactory {
15
- new (key: string): RoleInterface;
16
- }
15
+ export type RoleInterfaceFactory = new (key: string) => RoleInterface;
17
16
 
18
17
  export type CheckPermissionArgs = [obj?: any, params?: any];
19
18
 
20
19
  export interface RolesInterface {
21
- roles: {
22
- [name: string]: RoleInterface;
23
- };
20
+ roles: Record<string, RoleInterface>;
24
21
  actions: string[];
25
22
  helpers: string[];
26
23
  registerAction(name: string): void;
27
24
  registerHelper(name: string): void;
28
- getUserRoles(userId: string, roles: Array<string>, includeSpecial: boolean): string[];
25
+ getUserRoles(userId: string, roles: string[], includeSpecial: boolean): string[];
29
26
  allow(
30
27
  context: RoleUserContext,
31
- roles: Array<string>,
28
+ roles: string[],
32
29
  action?: string,
33
30
  args?: CheckPermissionArgs,
34
31
  ): Promise<boolean>;
@@ -44,16 +41,14 @@ export interface RolesInterface {
44
41
 
45
42
  export interface RoleInterface {
46
43
  name: string;
47
- allowRules: {
48
- [name: string]: any;
49
- };
44
+ allowRules: Record<string, any>;
50
45
  allow(action: string, fn: (root: any, props: any, context: RoleUserContext) => Promise<boolean>): void;
51
46
  helpers: Record<string, unknown>;
52
47
  }
53
48
 
54
49
  export interface IRoleOptionConfig {
55
50
  additionalRoles?: Record<string, (role: RolesInterface, actions: Record<string, string>) => void>;
56
- additionalActions?: Array<string>;
51
+ additionalActions?: string[];
57
52
  }
58
53
 
59
54
  export const Roles: RolesInterface = {
@@ -139,9 +134,9 @@ export const Roles: RolesInterface = {
139
134
  * Constructs a new role
140
135
  */
141
136
  export class Role implements RoleInterface {
142
- allowRules: { [name: string]: any };
137
+ allowRules: Record<string, any>;
143
138
 
144
- helpers: { [name: string]: any };
139
+ helpers: Record<string, any>;
145
140
 
146
141
  constructor(public name: string) {
147
142
  if (has(Roles.roles, name)) throw new Error(`"${name}" role is already defined`);
package/src/utils/has.ts CHANGED
@@ -1,4 +1,4 @@
1
- export const has = (obj: { [key: string]: any }, key: string): boolean => {
1
+ export const has = (obj: Record<string, any>, key: string): boolean => {
2
2
  const keyParts = key.split('.');
3
3
 
4
4
  return (