{"_id":"@cartoriocriciuma/rbac-types","name":"@cartoriocriciuma/rbac-types","dist-tags":{"latest":"1.0.0-alpha.1"},"versions":{"1.0.0-alpha.1":{"name":"@cartoriocriciuma/rbac-types","version":"1.0.0-alpha.1","description":"Tipos compartilhados para o sistema RBAC","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","clean":"rimraf dist","lint":"eslint src --ext .ts","test":"jest","prepublishOnly":"npm run clean && npm run build"},"keywords":["rbac","types","permissions"],"author":{"name":"Cartório Criciúma"},"license":"ISC","devDependencies":{"rimraf":"^5.0.5"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/cartoriocriciuma/rbac-monorepo.git","directory":"packages/rbac-types"},"_id":"@cartoriocriciuma/rbac-types@1.0.0-alpha.1","bugs":{"url":"https://github.com/cartoriocriciuma/rbac-monorepo/issues"},"homepage":"https://github.com/cartoriocriciuma/rbac-monorepo#readme","_nodeVersion":"20.19.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-GxFJdxwEcobOhjQ55ebYhITDCFI5f8PRjAlPrCemn9LoYb0mCW7k9lBRiYHx/BGoJeVCMsSj3hAc9U1twCuP4g==","shasum":"cea94cc7e6e62fde4a45f12ade5220c99336bd5d","tarball":"https://registry.npmjs.org/@cartoriocriciuma/rbac-types/-/rbac-types-1.0.0-alpha.1.tgz","fileCount":2,"unpackedSize":4792,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCHw5vIsmIcSF977EBly1fyw1cl4EmaFi41Y1E5+7lnbECIQDc33ipTN1S+yYMmJwb7ukcjvMY8v6y1jhHc+s+F1LFrQ=="}]},"_npmUser":{"name":"guilhermecelso","email":"ti@cartoriocriciuma.com.br"},"directories":{},"maintainers":[{"name":"guilhermecelso","email":"ti@cartoriocriciuma.com.br"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rbac-types_1.0.0-alpha.1_1747078328761_0.15090372754155124"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-12T19:32:08.635Z","1.0.0-alpha.1":"2025-05-12T19:32:08.930Z","modified":"2025-05-12T19:32:09.212Z"},"maintainers":[{"name":"guilhermecelso","email":"ti@cartoriocriciuma.com.br"}],"description":"Tipos compartilhados para o sistema RBAC","homepage":"https://github.com/cartoriocriciuma/rbac-monorepo#readme","keywords":["rbac","types","permissions"],"repository":{"type":"git","url":"git+https://github.com/cartoriocriciuma/rbac-monorepo.git","directory":"packages/rbac-types"},"author":{"name":"Cartório Criciúma"},"bugs":{"url":"https://github.com/cartoriocriciuma/rbac-monorepo/issues"},"license":"ISC","readme":"# @cartoriocriciuma/rbac-types\n\nPacote contendo as definições de tipos para o sistema centralizado de RBAC (Role-Based Access Control).\n\n## Instalação\n\n```bash\nnpm install @cartoriocriciuma/rbac-types\n```\n\n## Conteúdo\n\n### Interfaces de Permissões\n\n- `Permission`: Define a estrutura básica de uma permissão no sistema.\n  ```typescript\n  interface Permission {\n    id: string;\n    codigo: string;\n    nome: string;\n    descricao: string;\n    modulo: string;\n    grupo?: string;\n  }\n  ```\n\n- `PermissionCheck`: Interface para verificação de permissões.\n  ```typescript\n  interface PermissionCheck {\n    codigo: string;\n    modulo?: string;\n  }\n  ```\n\n- `PermissionCheckResult`: Resultado da verificação de permissões.\n  ```typescript\n  interface PermissionCheckResult {\n    granted: boolean;\n    permission?: Permission;\n  }\n  ```\n\n- `GrupoPermissao`: Definição de um grupo de permissões.\n  ```typescript\n  interface GrupoPermissao {\n    nome: string;\n    descricao: string;\n    permissoes: Permission[];\n  }\n  ```\n\n- `PermissoesAgrupadas`: Permissões organizadas por grupos.\n  ```typescript\n  interface PermissoesAgrupadas {\n    [grupo: string]: Permission[];\n  }\n  ```\n\n### Interfaces de Papéis (Roles)\n\n- `Papel`: Definição básica de um papel no sistema.\n  ```typescript\n  interface Papel {\n    id: string;\n    nome: string;\n    descricao: string;\n    ativo: boolean;\n  }\n  ```\n\n- `PapelPermissao`: Associação entre papel e permissão.\n  ```typescript\n  interface PapelPermissao {\n    papelId: string;\n    permissionId: string;\n  }\n  ```\n\n- `PapelDetalhado`: Papel com suas permissões.\n  ```typescript\n  interface PapelDetalhado extends Papel {\n    permissoes: Permission[];\n  }\n  ```\n\n- `CreatePapelDto`: DTO para criação de papéis.\n  ```typescript\n  interface CreatePapelDto {\n    nome: string;\n    descricao: string;\n    ativo: boolean;\n    permissaoIds?: string[];\n  }\n  ```\n\n- `UpdatePapelDto`: DTO para atualização de papéis.\n  ```typescript\n  interface UpdatePapelDto {\n    nome?: string;\n    descricao?: string;\n    ativo?: boolean;\n    permissaoIds?: string[];\n  }\n  ```\n\n### Interfaces de Manifestos\n\n- `PermissaoManifesto`: Definição de permissão em um manifesto.\n  ```typescript\n  interface PermissaoManifesto {\n    codigo: string;\n    nome: string;\n    descricao: string;\n    grupo?: string;\n  }\n  ```\n\n- `ManifestoRBAC`: Estrutura completa de um manifesto de permissões.\n  ```typescript\n  interface ManifestoRBAC {\n    modulo: string;\n    versao: string;\n    permissoes: PermissaoManifesto[];\n  }\n  ```\n\n- `ModuloResultado`: Resultado do processamento de um módulo.\n  ```typescript\n  interface ModuloResultado {\n    modulo: string;\n    adicionadas: number;\n    atualizadas: number;\n    removidas: number;\n    ignoradas: number;\n    erros: string[];\n  }\n  ```\n\n- `ResultadoSincronizacao`: Resultado completo da sincronização.\n  ```typescript\n  interface ResultadoSincronizacao {\n    sucesso: boolean;\n    mensagem: string;\n    timestamp: Date;\n    modulos: ModuloResultado[];\n  }\n  ```\n\n## Uso\n\n```typescript\nimport { Permission, Papel, ManifestoRBAC } from '@cartoriocriciuma/rbac-types';\n\n// Exemplo de definição de uma permissão\nconst minhaPermissao: Permission = {\n  id: '1',\n  codigo: 'USUARIO:VISUALIZAR',\n  nome: 'Visualizar Usuários',\n  descricao: 'Permite visualizar a lista de usuários do sistema',\n  modulo: 'usuarios',\n  grupo: 'Usuários'\n};\n\n// Exemplo de manifesto\nconst meuManifesto: ManifestoRBAC = {\n  modulo: 'financeiro',\n  versao: '1.0.0',\n  permissoes: [\n    {\n      codigo: 'FINANCEIRO:RELATORIO:GERAR',\n      nome: 'Gerar Relatório Financeiro',\n      descricao: 'Permite gerar relatórios financeiros',\n      grupo: 'Relatórios'\n    },\n    {\n      codigo: 'FINANCEIRO:PAGAMENTO:APROVAR',\n      nome: 'Aprovar Pagamento',\n      descricao: 'Permite aprovar pagamentos',\n      grupo: 'Pagamentos'\n    }\n  ]\n};\n```\n\n## Contribuindo\n\nVeja as instruções de contribuição no arquivo [CONTRIBUTING.md](../../CONTRIBUTING.md).\n\n## Licença\n\nISC ","readmeFilename":"README.md","_rev":"1-eeab6b177b77cbc9be2bf17c56176849"}