@iushev/react-rbac 1.0.32 → 1.0.35

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.
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { CheckAccessOptions } from "./RbacContext";
3
- export declare type CheckAccessProps = CheckAccessOptions & {
3
+ export type CheckAccessProps = CheckAccessOptions & {
4
4
  busy?: React.ComponentType;
5
5
  noAccess?: React.ComponentType;
6
6
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"CheckAccess.d.ts","sourceRoot":"","sources":["../src/CheckAccess.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD,oBAAY,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"CheckAccess.d.ts","sourceRoot":"","sources":["../src/CheckAccess.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { AxiosRequestConfig } from "axios";
2
2
  import { Assignment, BaseCheckAccess, BaseCheckAccessOptions, RuleParams } from "@iushev/rbac";
3
- export declare type RbacCheckAccessOptions = BaseCheckAccessOptions & {
3
+ export type RbacCheckAccessOptions = BaseCheckAccessOptions & {
4
4
  path: string;
5
5
  authorization: () => string;
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RbacCheckAccess.d.ts","sourceRoot":"","sources":["../src/RbacCheckAccess.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EACL,UAAU,EACV,eAAe,EACf,sBAAsB,EAOtB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,oBAAY,sBAAsB,GAAG,sBAAsB,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,eAAe;IAC1D,OAAO,CAAC,aAAa,CAAgB;IAErC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAa;gBAE5D,OAAO,EAAE,sBAAsB;IAsB9B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7D,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,kBAAkB;CAa3B"}
1
+ {"version":3,"file":"RbacCheckAccess.d.ts","sourceRoot":"","sources":["../src/RbacCheckAccess.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EACL,UAAU,EACV,eAAe,EACf,sBAAsB,EAOtB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,eAAe;IAC1D,OAAO,CAAC,aAAa,CAAgB;IAErC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAa;gBAE5D,OAAO,EAAE,sBAAsB;IAkB9B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7D,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -23,9 +23,6 @@ class RbacCheckAccess extends rbac_1.BaseCheckAccess {
23
23
  baseURL: options.path,
24
24
  });
25
25
  this.axiosInstance.interceptors.request.use((config) => {
26
- if (!config.headers) {
27
- config.headers = {};
28
- }
29
26
  if (options.authorization) {
30
27
  const token = options.authorization();
31
28
  config.headers.Authorization = "Bearer " + token;
@@ -98,10 +95,15 @@ class RbacCheckAccess extends rbac_1.BaseCheckAccess {
98
95
  if (!this.items.has(childName)) {
99
96
  return;
100
97
  }
101
- if (!prevValue.has(childName)) {
102
- prevValue.set(childName, new Map());
98
+ let child = prevValue.get(childName);
99
+ if (!child) {
100
+ child = new Map();
101
+ prevValue.set(childName, child);
102
+ }
103
+ const item = this.items.get(name);
104
+ if (item) {
105
+ child.set(name, item);
103
106
  }
104
- prevValue.get(childName).set(name, this.items.get(name));
105
107
  });
106
108
  return prevValue;
107
109
  }, new Map());
@@ -1,20 +1,20 @@
1
1
  import React from "react";
2
2
  import { RuleParams, Rule, RuleCtor } from "@iushev/rbac";
3
3
  import RbacCheckAccess from "./RbacCheckAccess";
4
- export declare type RuleParamsFunction = () => RuleParams;
5
- export declare type MatchFunction = () => boolean;
6
- export declare type CheckAccessOptions = {
4
+ export type RuleParamsFunction = () => RuleParams;
5
+ export type MatchFunction = () => boolean;
6
+ export type CheckAccessOptions = {
7
7
  roles: string[];
8
8
  allow?: boolean;
9
9
  params?: RuleParams | RuleParamsFunction;
10
10
  match?: MatchFunction;
11
11
  };
12
- export declare type RbacContextProps = {
12
+ export type RbacContextProps = {
13
13
  rbac: RbacCheckAccess | null;
14
14
  checkAccess: (options: CheckAccessOptions) => Promise<boolean>;
15
15
  };
16
16
  declare const RbacContext: React.Context<RbacContextProps>;
17
- export declare type RbacProviderProps = {
17
+ export type RbacProviderProps = {
18
18
  username: string;
19
19
  rbacUrl: string;
20
20
  token: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RbacContext.d.ts","sourceRoot":"","sources":["../src/RbacContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,oBAAY,kBAAkB,GAAG,MAAM,UAAU,CAAC;AAClD,oBAAY,aAAa,GAAG,MAAM,OAAO,CAAC;AAC1C,oBAAY,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE,CAAC;AAEF,QAAA,MAAM,WAAW,iCAGf,CAAC;AAEH,oBAAY,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6EpD,CAAC;AAEF,eAAO,MAAM,YAAY,kCAAuB,CAAC;AAEjD,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"RbacContext.d.ts","sourceRoot":"","sources":["../src/RbacContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;AAC1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE,CAAC;AAEF,QAAA,MAAM,WAAW,iCAGf,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6EpD,CAAC;AAEF,eAAO,MAAM,YAAY,kCAAuB,CAAC;AAEjD,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -41,7 +41,7 @@ const react_1 = __importStar(require("react"));
41
41
  const RbacCheckAccess_1 = __importDefault(require("./RbacCheckAccess"));
42
42
  const RbacContext = react_1.default.createContext({
43
43
  rbac: null,
44
- checkAccess: (_options) => __awaiter(void 0, void 0, void 0, function* () { return true; }),
44
+ checkAccess: () => __awaiter(void 0, void 0, void 0, function* () { return true; }),
45
45
  });
46
46
  const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClasses, children, }) => {
47
47
  const [rbac, setRbac] = (0, react_1.useState)(null);
@@ -1,5 +1,5 @@
1
1
  import { CheckAccessOptions } from "./RbacContext";
2
- export declare type CheckAssessState = {
2
+ export type CheckAssessState = {
3
3
  checking: boolean;
4
4
  hasAccess: boolean;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckAccess.d.ts","sourceRoot":"","sources":["../src/useCheckAccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAW,MAAM,eAAe,CAAC;AAE5D,oBAAY,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,kBAAkB,oBAyC1E;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"useCheckAccess.d.ts","sourceRoot":"","sources":["../src/useCheckAccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAW,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,kBAAkB,oBAyC1E;AAED,eAAe,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iushev/react-rbac",
3
- "version": "1.0.32",
3
+ "version": "1.0.35",
4
4
  "private": false,
5
5
  "author": "Ivaylo Ushev",
6
6
  "description": "",
@@ -21,24 +21,24 @@
21
21
  "http-status-codes": "^2.2.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@types/react": "^18.0.24",
25
- "@types/react-dom": "^18.0.8",
26
- "@typescript-eslint/eslint-plugin": "^5.41.0",
27
- "@typescript-eslint/parser": "^5.41.0",
28
- "eslint": "^8.26.0",
29
- "eslint-config-prettier": "^8.5.0",
24
+ "@types/react": "^18.0.28",
25
+ "@types/react-dom": "^18.0.11",
26
+ "@typescript-eslint/eslint-plugin": "^5.53.0",
27
+ "@typescript-eslint/parser": "^5.53.0",
28
+ "eslint": "^8.34.0",
29
+ "eslint-config-prettier": "^8.6.0",
30
30
  "eslint-plugin-prettier": "^4.2.1",
31
- "eslint-plugin-react": "^7.31.10",
31
+ "eslint-plugin-react": "^7.32.2",
32
32
  "eslint-plugin-react-hooks": "^4.6.0",
33
- "jest": "^29.2.2",
34
- "prettier": "^2.7.1",
35
- "rimraf": "^3.0.2",
36
- "ts-jest": "^29.0.3",
37
- "typescript": "^4.8.4"
33
+ "jest": "^29.4.3",
34
+ "prettier": "^2.8.4",
35
+ "rimraf": "^4.1.2",
36
+ "ts-jest": "^29.0.5",
37
+ "typescript": "^4.9.5"
38
38
  },
39
39
  "peerDependencies": {
40
- "@iushev/rbac": "^1.0.40",
41
- "axios": "^1.1.3",
40
+ "@iushev/rbac": "^1.0.43",
41
+ "axios": "^1.3.4",
42
42
  "react": "^16.14.0 || ^17.0.2 || ^18.2.0",
43
43
  "react-dom": "^16.14.0 || ^17.0.2 || ^18.2.0"
44
44
  },
@@ -32,10 +32,6 @@ export default class RbacCheckAccess extends BaseCheckAccess {
32
32
  });
33
33
 
34
34
  this.axiosInstance.interceptors.request.use((config) => {
35
- if (!config.headers) {
36
- config.headers = {};
37
- }
38
-
39
35
  if (options.authorization) {
40
36
  const token = options.authorization();
41
37
  config.headers.Authorization = "Bearer " + token;
@@ -105,11 +101,17 @@ export default class RbacCheckAccess extends BaseCheckAccess {
105
101
  return;
106
102
  }
107
103
 
108
- if (!prevValue.has(childName)) {
109
- prevValue.set(childName, new Map());
104
+ let child = prevValue.get(childName);
105
+
106
+ if (!child) {
107
+ child = new Map();
108
+ prevValue.set(childName, child);
110
109
  }
111
110
 
112
- prevValue.get(childName)!.set(name, this.items.get(name)!);
111
+ const item = this.items.get(name);
112
+ if (item) {
113
+ child.set(name, item);
114
+ }
113
115
  });
114
116
 
115
117
  return prevValue;
@@ -19,7 +19,7 @@ export type RbacContextProps = {
19
19
 
20
20
  const RbacContext = React.createContext<RbacContextProps>({
21
21
  rbac: null,
22
- checkAccess: async (_options: CheckAccessOptions) => true,
22
+ checkAccess: async () => true,
23
23
  });
24
24
 
25
25
  export type RbacProviderProps = {