@longzai-intelligence-auth/rbac 0.0.5 → 0.0.6

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,11 +1,17 @@
1
1
  import { AccessTokenPayload, ResourceAction } from "@longzai-intelligence-auth/core";
2
2
 
3
3
  //#region src/role-checker.d.ts
4
+ /**
5
+ * 角色信息,包含用户ID、租户ID和角色列表
6
+ */
4
7
  type RoleInfo = {
5
8
  userId: string;
6
9
  tenantId?: string;
7
10
  roles: string[];
8
11
  };
12
+ /**
13
+ * 角色检查器接口,提供角色和权限验证能力
14
+ */
9
15
  type RoleChecker = {
10
16
  extractRolesFromPayload(payload: AccessTokenPayload): RoleInfo;
11
17
  hasRole(payload: AccessTokenPayload, role: string): boolean;
@@ -13,6 +19,11 @@ type RoleChecker = {
13
19
  hasPermission(payload: AccessTokenPayload, resource: string, action: string): boolean;
14
20
  hasAnyPermission(payload: AccessTokenPayload, permissions: ResourceAction[]): boolean;
15
21
  };
22
+ /**
23
+ * 创建角色检查器实例
24
+ *
25
+ * @returns 角色检查器实例
26
+ */
16
27
  declare function createRoleChecker(): RoleChecker;
17
28
  //#endregion
18
29
  export { type RoleChecker, type RoleInfo, createRoleChecker };
package/package.json CHANGED
@@ -1,22 +1,15 @@
1
1
  {
2
2
  "name": "@longzai-intelligence-auth/rbac",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
- "main": "./dist/index.cjs",
8
- "module": "./dist/index.js",
7
+ "main": "./dist/index.js",
9
8
  "types": "./dist/index.d.ts",
10
9
  "exports": {
11
10
  ".": {
12
- "import": {
13
- "types": "./dist/index.d.ts",
14
- "default": "./dist/index.js"
15
- },
16
- "require": {
17
- "types": "./dist/index.d.cts",
18
- "default": "./dist/index.cjs"
19
- }
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
20
13
  }
21
14
  },
22
15
  "files": [
@@ -31,11 +24,10 @@
31
24
  "directory": "packages/rbac"
32
25
  },
33
26
  "dependencies": {
34
- "@longzai-intelligence-auth/core": "0.0.5"
27
+ "@longzai-intelligence-auth/core": "0.0.6"
35
28
  },
36
29
  "scripts": {
37
- "build": "bun build src/index.ts --outdir dist --target bun",
38
- "build:declaration": "tsgo --declaration --emitDeclarationOnly --outDir dist -p tsconfig/app.json",
30
+ "build": "tsgo --build tsconfig/build.json && resolve-aliases -p tsconfig/build.json",
39
31
  "build:prod": "NODE_ENV=production tsdown",
40
32
  "prepublishOnly": "bun run build:prod",
41
33
  "typecheck": "bun run typecheck:app && bun run typecheck:node && bun run typecheck:test",
@@ -49,9 +41,6 @@
49
41
  "test:coverage": "bun test --coverage",
50
42
  "test:unit": "bun test src/__tests__/unit/",
51
43
  "test:integration": "bun test src/__tests__/integration/",
52
- "clean": "rm -rf dist out .cache"
53
- },
54
- "devDependencies": {
55
- "@types/bun": "^1.3.14"
44
+ "clean": "rimraf dist out .cache"
56
45
  }
57
46
  }
package/dist/index.cjs DELETED
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(){return{extractRolesFromPayload(e){return{userId:e.sub,tenantId:e.tenantId,roles:e.roles??[]}},hasRole(e,t){return(e.roles??[]).includes(t)},hasAnyRole(e,t){let n=e.roles??[];return t.some(e=>n.includes(e))},hasPermission(e,t,n){let r=e.permissions??[],i=`${t}:${n}`;return!!(r.includes(i)||r.includes(`${t}:*`)||r.includes(`*:${n}`)||r.includes(`*:*`))},hasAnyPermission(e,t){let n=e.permissions??[];return t.some(e=>{let t=`${e.resource}:${e.action}`;return!!(n.includes(t)||n.includes(`${e.resource}:*`)||n.includes(`*:${e.action}`)||n.includes(`*:*`))})}}}exports.createRoleChecker=e;
package/dist/index.d.mts DELETED
@@ -1,18 +0,0 @@
1
- import { AccessTokenPayload, ResourceAction } from "@longzai-intelligence-auth/core";
2
-
3
- //#region src/role-checker.d.ts
4
- type RoleInfo = {
5
- userId: string;
6
- tenantId?: string;
7
- roles: string[];
8
- };
9
- type RoleChecker = {
10
- extractRolesFromPayload(payload: AccessTokenPayload): RoleInfo;
11
- hasRole(payload: AccessTokenPayload, role: string): boolean;
12
- hasAnyRole(payload: AccessTokenPayload, roles: string[]): boolean;
13
- hasPermission(payload: AccessTokenPayload, resource: string, action: string): boolean;
14
- hasAnyPermission(payload: AccessTokenPayload, permissions: ResourceAction[]): boolean;
15
- };
16
- declare function createRoleChecker(): RoleChecker;
17
- //#endregion
18
- export { type RoleChecker, type RoleInfo, createRoleChecker };
File without changes