{"_id":"@bili-lab/user-permission","_rev":"2-16791e4cd3a45abeb3bcfad818cd34ae","name":"@bili-lab/user-permission","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.8":{"name":"@bili-lab/user-permission","version":"0.0.8","author":"","license":"MIT","_id":"@bili-lab/user-permission@0.0.8","maintainers":[{"name":"kagawa","email":"kingsongao1221@gmail.com"},{"name":"kuangpengfei","email":"me@kuangpf.com"}],"homepage":"","dist":{"shasum":"854011bf3f46a345607e01ecbc7f3782ea95e7fe","tarball":"https://registry.npmjs.org/@bili-lab/user-permission/-/user-permission-0.0.8.tgz","fileCount":31,"integrity":"sha512-o+XCOezBKIoqGVYI6da4loS4mw+kLMlS3CLkebwoy7bxDPFVaF6m41pPCmSZ5eQxrHOmnTulY8+Ogvy4eh9uOg==","signatures":[{"sig":"MEYCIQDX/VndeuVZxaRqdy72eTmAHOOUDpximlfrrfVU4jvArwIhAMGLjHZV6DGahC6ysczyxtLjfGjMRPoOfR5Wexv8gA3c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25543},"main":"lib/index.js","_from":"file:bili-lab-user-permission-0.0.8.tgz","types":"./lib/index.d.ts","module":"es/index.js","scripts":{"test":"echo \"Error: run tests from root\" && exit 1","build":"npm run build:es & npm run build:lib","build:es":"tsc --outDir es --module esnext --target es5","build:lib":"tsc --outDir lib --module commonjs --target es5","prepublish":"npm run build"},"_npmUser":{"name":"kuangpengfei","email":"me@kuangpf.com"},"_resolved":"/private/var/folders/9z/c24v25cj3jlgktl30rr9sxyr0000gn/T/2526eab70b6394bef68669d681e73565/bili-lab-user-permission-0.0.8.tgz","_integrity":"sha512-o+XCOezBKIoqGVYI6da4loS4mw+kLMlS3CLkebwoy7bxDPFVaF6m41pPCmSZ5eQxrHOmnTulY8+Ogvy4eh9uOg==","_npmVersion":"9.8.1","description":"toolkit for utopia-user permission","directories":{"lib":"lib","test":"__tests__"},"sideEffects":false,"_nodeVersion":"18.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"react":"18.2.0","typescript":"5.3.2","@types/react":"18.3.3","@types/lodash":"^4.14.168"},"peerDependencies":{"react":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/user-permission_0.0.8_1729609886987_0.2694117713318185","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"@bili-lab/user-permission","version":"0.0.9","author":"","license":"MIT","_id":"@bili-lab/user-permission@0.0.9","maintainers":[{"name":"kagawa","email":"kingsongao1221@gmail.com"},{"name":"kuangpengfei","email":"me@kuangpf.com"}],"homepage":"","dist":{"shasum":"b887820c1b850cd0cc831ad817e83b6519058040","tarball":"https://registry.npmjs.org/@bili-lab/user-permission/-/user-permission-0.0.9.tgz","fileCount":31,"integrity":"sha512-6zr8V7Mj4npgTzKLGDArAfkJXSHUiFvC9Oma0Z0fCE26GzjseQxhw1q/2siVq4nVOPcXo/NsHS3AASajz3bX6A==","signatures":[{"sig":"MEYCIQDdKYe/eSt7EZBQGA3DKkBJhE0dLutTC8uyitpl55QNFwIhAI0fnFRzzO+Cv/WHtrvx+5yJ+iMnf2pBWK1ImGbiocRk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25535},"main":"lib/index.js","_from":"file:bili-lab-user-permission-0.0.9.tgz","types":"./lib/index.d.ts","module":"es/index.js","scripts":{"test":"echo \"Error: run tests from root\" && exit 1","build":"npm run build:es & npm run build:lib","build:es":"tsc --outDir es --module esnext --target es5","build:lib":"tsc --outDir lib --module commonjs --target es5","prepublish":"npm run build"},"_npmUser":{"name":"kuangpengfei","email":"me@kuangpf.com"},"_resolved":"/private/var/folders/9z/c24v25cj3jlgktl30rr9sxyr0000gn/T/9ab17b6df492399cc3873ee82165ca5b/bili-lab-user-permission-0.0.9.tgz","_integrity":"sha512-6zr8V7Mj4npgTzKLGDArAfkJXSHUiFvC9Oma0Z0fCE26GzjseQxhw1q/2siVq4nVOPcXo/NsHS3AASajz3bX6A==","_npmVersion":"9.8.1","description":"toolkit for utopia-user permission","directories":{"lib":"lib","test":"__tests__"},"sideEffects":false,"_nodeVersion":"18.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"react":"18.2.0","typescript":"5.3.2","@types/react":"18.3.3","@types/lodash":"^4.14.168"},"peerDependencies":{"react":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/user-permission_0.0.9_1729694065117_0.8695788670041267","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"@bili-lab/user-permission","version":"0.0.10","description":"toolkit for utopia-user permission","author":"","homepage":"","license":"MIT","sideEffects":false,"main":"lib/index.js","module":"es/index.js","directories":{"lib":"lib","test":"__tests__"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"peerDependencies":{"react":"18.2.0"},"devDependencies":{"@types/lodash":"^4.14.168","@types/react":"18.3.3","react":"18.2.0","typescript":"5.3.2"},"scripts":{"test":"echo \"Error: run tests from root\" && exit 1","prepublish":"npm run build","build":"npm run build:es & npm run build:lib","build:es":"tsc --outDir es --module esnext --target es5","build:lib":"tsc --outDir lib --module commonjs --target es5"},"types":"./lib/index.d.ts","_id":"@bili-lab/user-permission@0.0.10","_integrity":"sha512-Xa63uSANgGhGnq48fynzQYbw46dKWOAAZR6QDJKTglgw8TvaGitJVBCeRV1QzMCUEr0MNw4yH+sVKJBYNYbvkA==","_resolved":"/private/var/folders/9z/c24v25cj3jlgktl30rr9sxyr0000gn/T/ef1e4e6433ec16d90e44b8a2b8e2025a/bili-lab-user-permission-0.0.10.tgz","_from":"file:bili-lab-user-permission-0.0.10.tgz","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-Xa63uSANgGhGnq48fynzQYbw46dKWOAAZR6QDJKTglgw8TvaGitJVBCeRV1QzMCUEr0MNw4yH+sVKJBYNYbvkA==","shasum":"a8a0e12cef5651179889c3087d982092da1c70b8","tarball":"https://registry.npmjs.org/@bili-lab/user-permission/-/user-permission-0.0.10.tgz","fileCount":31,"unpackedSize":25536,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9GPjWiv1lrzFDd8/ykoef9UypKB4cNaTdctKTdNYMYAiACxQAM1MYkTeLlMVv0I+bZlReepqwSMR+Sao10FcvnRQ=="}]},"_npmUser":{"name":"kuangpengfei","email":"me@kuangpf.com"},"maintainers":[{"name":"kagawa","email":"kingsongao1221@gmail.com"},{"name":"kuangpengfei","email":"me@kuangpf.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/user-permission_0.0.10_1729694993271_0.10129853888952245"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-22T15:11:26.871Z","modified":"2024-10-23T14:49:53.685Z","0.0.8":"2024-10-22T15:11:27.301Z","0.0.9":"2024-10-23T14:34:25.303Z","0.0.10":"2024-10-23T14:49:53.470Z"},"license":"MIT","description":"toolkit for utopia-user permission","maintainers":[{"name":"kagawa","email":"kingsongao1221@gmail.com"},{"name":"kuangpengfei","email":"me@kuangpf.com"}],"readme":"# UserPermission\n\n> React component for user permission\n\n## 安装\n\n...\n\n## 使用\n\n- 组件\n  - `UserPermissionProvider`\n  - `UserPermissionAuthorize`\n- Hooks\n  - `useUserPermissions`\n- 工具函数\n  - `definePermission`\n  - `definePermissions`\n  - `checkPermission`\n\n## 示例\n\n```tsx | pure\nimport { Button } from '...'\nimport { UserPermissionProvider, UserPermissionAuthorize } from '@bili-lab/user-permission'\n\nexport default = () => {\n  return (\n    <UserPermissionProvider permissions={{}} defaultBehavior=\"hidden\">\n    <UserPermissionAuthorize id=\"add-permission\" name=\"新增功能权限\">\n      <Button>新增</Button>\n    </UserPermissionAuthorize>\n    </UserPermissionProvider>\n  )\n}\n```\n\n或者\n\n```tsx | pure\nimport { Button } from '...'\nimport { UserPermissionProvider, UserPermissionAuthorize, definePermission } from '@bili-lab/user-permission'\n\nconst addPermission = definePermission({\n  id: 'add-permission',\n  name: '新增功能权限'\n})\n\nexport default = () => {\n  return (\n    <UserPermissionProvider permissions={{}} defaultBehavior=\"hidden\">\n    <UserPermissionAuthorize {...addPermission}>\n      <Button>新增</Button>\n    </UserPermissionAuthorize>\n    </UserPermissionProvider>\n  )\n}\n```\n\n## API\n\n### UserPermissionProvider\n\n|       参数        |                   类型                    |                             说明                             |  默认值  | 是否必须 |\n| :---------------: | :---------------------------------------: | :----------------------------------------------------------: | :------: | -------- |\n|   `permissions`   |         `Record<string, string>`          |                   从用户中台获取的权限信息                   |   `-`    | 是       |\n| `defaultBehavior` | [`AuthorizeBehavior`](#authorizebehavior) | 无权限时的全局默认行为，`disabled`：禁止点击，`hidden`: 隐藏 | `hidden` | 否       |\n|      `debug`      |                 `boolean`                 |         是否开启调试模式，调试模式下，权限将不会生效         | `false`  | 否       |\n\n### UserPermissionAuthorize\n\n|     参数      |                   类型                    |                                说明                                |  默认值   | 是否必须 |\n| :-----------: | :---------------------------------------: | :----------------------------------------------------------------: | :-------: | -------- |\n|     `id`      |                 `string`                  |                             权限 `id`                              |    `-`    | 是       |\n|    `name`     |                 `string`                  |                       权限名称，用于中台存储                       |    `-`    | 是       |\n|    `type`     |    [`PermissionType`](#permissiontype)    |                      权限类型，用于中台存储。                      | `OPERATE` | 否       |\n|   `parent`    |                 `string`                  |                        父权限，用于中台存储                        |    `-`    | 否       |\n|    `value`    |                 `string`                  |                        权限值，用于中台存储                        |    `-`    | 否       |\n| `description` |                 `string`                  |                       权限描述，用于中台存储                       |    `-`    | 否       |\n|  `behavior`   | [`AuthorizeBehavior`](#authorizebehavior) | 无权限时行为，`disabled`：禁止点击，`hidden`: 隐藏，默认为全局配置 | `hidden`  | 否       |\n\n### definePermission\n\n权限定义工具函数，参数参考 [UserPermissionAuthorize](#userpermissionauthorize)\n\n```ts\nconst addBtnPermission = definePermission({\n  id: 'add-permission',\n  name: '新增功能权限'\n});\n```\n\n### definePermissions\n\n权限定义工具函数\n\n```ts\nconst permissions = definePermissions({\n  addBtn: {\n    id: 'add-permission',\n    name: '新增功能权限'\n  }\n});\n\nconsole.log(permissions.addBtn);\n```\n\n### PermissionType\n\n权限类型，默认为操作权限\n\n- `MENU`: 菜单权限\n- `OPERATE`: 操作权限\n\n### AuthorizeBehavior\n\n无权限表现行为\n\n- `disabled`: 禁止操作。`UserPermissionAuthorize` 将会向子组件注入 `disabled` 属性\n- `hidden`: 隐藏。`UserPermissionAuthorize` 将会渲染空组件\n","readmeFilename":"README.md"}