@iushev/react-rbac 1.0.35 → 1.0.37

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
  {
2
2
  "editor.codeActionsOnSave": {
3
- "source.fixAll.eslint": true
3
+ "source.fixAll.eslint": "explicit"
4
4
  },
5
5
  "editor.formatOnSave": true,
6
6
  "editor.defaultFormatter": "esbenp.prettier-vscode"
@@ -0,0 +1,57 @@
1
+ import typescriptEslint from "@typescript-eslint/eslint-plugin";
2
+ import prettier from "eslint-plugin-prettier";
3
+ import globals from "globals";
4
+ import tsParser from "@typescript-eslint/parser";
5
+ import path from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ import js from "@eslint/js";
8
+ import { FlatCompat } from "@eslint/eslintrc";
9
+
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
12
+ const compat = new FlatCompat({
13
+ baseDirectory: __dirname,
14
+ recommendedConfig: js.configs.recommended,
15
+ allConfig: js.configs.all,
16
+ });
17
+
18
+ export default [
19
+ {
20
+ ignores: ["**/lib/", "**/node_modules/"],
21
+ },
22
+ ...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"),
23
+ {
24
+ plugins: {
25
+ "@typescript-eslint": typescriptEslint,
26
+ prettier,
27
+ },
28
+
29
+ languageOptions: {
30
+ globals: {
31
+ ...globals.browser,
32
+ module: false,
33
+ },
34
+
35
+ parser: tsParser,
36
+ ecmaVersion: 12,
37
+ sourceType: "module",
38
+ },
39
+
40
+ rules: {
41
+ "@typescript-eslint/no-namespace": "off",
42
+ "@typescript-eslint/no-explicit-any": "off",
43
+ "@typescript-eslint/no-unused-vars": [
44
+ "error",
45
+ {
46
+ args: "all",
47
+ argsIgnorePattern: "^_",
48
+ caughtErrors: "all",
49
+ caughtErrorsIgnorePattern: "^_",
50
+ destructuredArrayIgnorePattern: "^_",
51
+ varsIgnorePattern: "^_",
52
+ ignoreRestSiblings: true,
53
+ },
54
+ ],
55
+ },
56
+ },
57
+ ];
@@ -5,7 +5,7 @@ export type RbacCheckAccessOptions = BaseCheckAccessOptions & {
5
5
  authorization: () => string;
6
6
  };
7
7
  export default class RbacCheckAccess extends BaseCheckAccess {
8
- private axiosInstance;
8
+ private readonly axiosInstance;
9
9
  protected assignments: Map<string, Map<string, Assignment>>;
10
10
  constructor(options: RbacCheckAccessOptions);
11
11
  checkAccess(username: string, itemName: string, params: RuleParams): Promise<boolean>;
@@ -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,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"}
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,QAAQ,CAAC,aAAa,CAAgB;IAE9C,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"}
@@ -37,8 +37,8 @@ class RbacCheckAccess extends rbac_1.BaseCheckAccess {
37
37
  const _super = Object.create(null, {
38
38
  checkAccess: { get: () => super.checkAccess }
39
39
  });
40
- var _a;
41
40
  return __awaiter(this, void 0, void 0, function* () {
41
+ var _a;
42
42
  if (this.items.size === 0) {
43
43
  yield this.load();
44
44
  }
@@ -46,8 +46,8 @@ class RbacCheckAccess extends rbac_1.BaseCheckAccess {
46
46
  });
47
47
  }
48
48
  load(config) {
49
- var _a;
50
49
  return __awaiter(this, void 0, void 0, function* () {
50
+ var _a;
51
51
  let _rbac;
52
52
  try {
53
53
  console.log("Load RBAC");
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -43,7 +53,7 @@ const RbacContext = react_1.default.createContext({
43
53
  rbac: null,
44
54
  checkAccess: () => __awaiter(void 0, void 0, void 0, function* () { return true; }),
45
55
  });
46
- const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClasses, children, }) => {
56
+ const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClasses: _ruleClasses, children, }) => {
47
57
  const [rbac, setRbac] = (0, react_1.useState)(null);
48
58
  (0, react_1.useEffect)(() => {
49
59
  if (!token) {
@@ -91,7 +101,7 @@ const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClas
91
101
  }
92
102
  return match();
93
103
  }, []);
94
- const checkAccess = (0, react_1.useCallback)(({ roles, allow = true, match, params = {} }) => __awaiter(void 0, void 0, void 0, function* () {
104
+ const checkAccess = (0, react_1.useCallback)((_a) => __awaiter(void 0, [_a], void 0, function* ({ roles, allow = true, match, params = {} }) {
95
105
  return isSuperuser || ((yield matchRole(roles, params)) && matchCustom(match) && allow);
96
106
  }), [isSuperuser, matchCustom, matchRole]);
97
107
  const value = (0, react_1.useMemo)(() => {
@@ -100,7 +110,7 @@ const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClas
100
110
  checkAccess,
101
111
  };
102
112
  }, [rbac, checkAccess]);
103
- return (0, jsx_runtime_1.jsx)(RbacContext.Provider, Object.assign({ value: value }, { children: children }));
113
+ return (0, jsx_runtime_1.jsx)(RbacContext.Provider, { value: value, children: children });
104
114
  };
105
115
  exports.RbacProvider = RbacProvider;
106
116
  exports.RbacConsumer = RbacContext.Consumer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iushev/react-rbac",
3
- "version": "1.0.35",
3
+ "version": "1.0.37",
4
4
  "private": false,
5
5
  "author": "Ivaylo Ushev",
6
6
  "description": "",
@@ -14,33 +14,33 @@
14
14
  "test": "jest --runInBand",
15
15
  "test:watch": "jest --watchAll --runInBand",
16
16
  "coverage": "jest --coverage --runInBand",
17
- "lint": "eslint --ext .js,.jsx,.ts,.tsx src",
17
+ "lint": "eslint src",
18
18
  "preversion": "rimraf ./lib && npm run build"
19
19
  },
20
20
  "dependencies": {
21
- "http-status-codes": "^2.2.0"
21
+ "http-status-codes": "^2.3.0"
22
22
  },
23
23
  "devDependencies": {
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
- "eslint-plugin-prettier": "^4.2.1",
31
- "eslint-plugin-react": "^7.32.2",
32
- "eslint-plugin-react-hooks": "^4.6.0",
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"
24
+ "@types/react": "^19.0.2",
25
+ "@types/react-dom": "^19.0.2",
26
+ "@typescript-eslint/eslint-plugin": "^8.18.1",
27
+ "@typescript-eslint/parser": "^8.18.1",
28
+ "eslint": "^9.17.0",
29
+ "eslint-config-prettier": "^9.1.0",
30
+ "eslint-plugin-prettier": "^5.2.1",
31
+ "eslint-plugin-react": "^7.37.2",
32
+ "eslint-plugin-react-hooks": "^5.1.0",
33
+ "jest": "^29.7.0",
34
+ "prettier": "^3.4.2",
35
+ "rimraf": "^6.0.1",
36
+ "ts-jest": "^29.2.5",
37
+ "typescript": "^5.7.2"
38
38
  },
39
39
  "peerDependencies": {
40
- "@iushev/rbac": "^1.0.43",
41
- "axios": "^1.3.4",
42
- "react": "^16.14.0 || ^17.0.2 || ^18.2.0",
43
- "react-dom": "^16.14.0 || ^17.0.2 || ^18.2.0"
40
+ "@iushev/rbac": "^1.0.47",
41
+ "axios": "^1.7.9",
42
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
43
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public"
@@ -20,7 +20,7 @@ export type RbacCheckAccessOptions = BaseCheckAccessOptions & {
20
20
  };
21
21
 
22
22
  export default class RbacCheckAccess extends BaseCheckAccess {
23
- private axiosInstance: AxiosInstance;
23
+ private readonly axiosInstance: AxiosInstance;
24
24
 
25
25
  protected assignments: Map<string, Map<string, Assignment>> = new Map();
26
26
 
@@ -84,7 +84,7 @@ export default class RbacCheckAccess extends BaseCheckAccess {
84
84
  name,
85
85
  description: item.description ?? null,
86
86
  ruleName: item.ruleName ?? null,
87
- })
87
+ }),
88
88
  );
89
89
  return prevValue;
90
90
  }, new Map());
@@ -38,7 +38,7 @@ export const RbacProvider: React.FC<RbacProviderProps> = ({
38
38
  token,
39
39
  isSuperuser,
40
40
  isGuest,
41
- ruleClasses,
41
+ ruleClasses: _ruleClasses,
42
42
  children,
43
43
  }) => {
44
44
  const [rbac, setRbac] = useState<RbacCheckAccess | null>(null);
@@ -84,7 +84,7 @@ export const RbacProvider: React.FC<RbacProviderProps> = ({
84
84
 
85
85
  return false;
86
86
  },
87
- [isGuest, rbac, username]
87
+ [isGuest, rbac, username],
88
88
  );
89
89
 
90
90
  const matchCustom = useCallback((match?: MatchFunction) => {
@@ -98,7 +98,7 @@ export const RbacProvider: React.FC<RbacProviderProps> = ({
98
98
  async ({ roles, allow = true, match, params = {} }: CheckAccessOptions) => {
99
99
  return isSuperuser || ((await matchRole(roles, params)) && matchCustom(match) && allow);
100
100
  },
101
- [isSuperuser, matchCustom, matchRole]
101
+ [isSuperuser, matchCustom, matchRole],
102
102
  );
103
103
 
104
104
  const value = useMemo(() => {
package/.eslintignore DELETED
@@ -1,2 +0,0 @@
1
- lib/
2
- node_modules/
package/.eslintrc.js DELETED
@@ -1,20 +0,0 @@
1
- module.exports = {
2
- env: {
3
- browser: true,
4
- es2021: true,
5
- },
6
- extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"],
7
- parser: "@typescript-eslint/parser",
8
- parserOptions: {
9
- ecmaVersion: 12,
10
- sourceType: "module",
11
- },
12
- plugins: ["@typescript-eslint", "prettier"],
13
- globals: {
14
- module: false,
15
- },
16
- rules: {
17
- "@typescript-eslint/no-namespace": "off",
18
- "@typescript-eslint/no-explicit-any": "off",
19
- },
20
- };