@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
190 lines (123 loc) • 8.27 kB
Markdown
# Changelog
Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/).
## [0.2.0] - 2025-10-23
### ⚠️ BREAKING CHANGES
**Esta versão introduz mudanças significativas para suportar a nova API Quarkus de Controladores.**
#### 🔴 IDs agora são UUID (string)
- `BaseEntity.id` alterado de `number` para `UUID` (string) e guards passaram a validar o formato UUID v4.
- Todos os DTOs principais (Controlador, Encarregado, CNAE, Setor, Sócio-Controlador) migraram seus identificadores para UUID.
#### 🔴 Contatos agora são arrays
- `email`/`telefone` foram substituídos por `emails: EmailContatoDto[]` e `telefones: TelefoneContatoDto[]` em `ControladorDto` e `EncarregadoDto`.
- Novos DTOs auxiliares (`EmailContatoDto`, `TelefoneContatoDto`) representam os itens dessas coleções.
#### 🔴 Ajustes de campos obrigatórios
- `ControladorDto`: campos `cpf` e `cnpj` agora são opcionais, refletindo a regra de negócio onde apenas um dos dois é obrigatório dependendo do `tipo` (PESSOA_NATURAL requer `cpf`, PESSOA_JURIDICA requer `cnpj`).
- `ControladorDto` passou a exigir `nomeEmpresarial`, `site`, `politicaPrivacidadeUrl`, `setorEmpresarial`, `setorId`, `cnaeId`, além de aceitar `esfera` e `poder` para o setor público.
- `EncarregadoDto` agora exige `tipo` (TipoPessoaEnum), `cpf`, `externo`, `emails` e `telefones`, removendo vínculos diretos com controladores.
- `CnaeDto` e `SetorDto` foram atualizados para UUID e permanecem com aliases `code`/`name` marcados como deprecated.
### ✨ Adicionado
- Alias `UUID`, helpers `UUID_V4_PATTERN`, `isUUID` e `assertUUID`.
- DTO genérico `PageResponseDto<T>` e filtros `ControladoresFiltroDto`.
- Novos enums `SetorEmpresarial`, `Esfera`, `Poder` e `TipoPessoaEnum`, todos expostos pelo barrel `src/enums/index.ts`.
### 🔧 Alterado
- `BaseQueryParams.orderBy` agora usa `BaseOrderByField`, restringindo os campos aceitos (`nomeEmpresarial`, `codigo`, `nome`).
- `SoftDelete.exclusionDate` aceita strings ISO 8601 além de `Date`.
### 📝 Documentação
- README atualizado com tabela de compatibilidade NestJS ↔ Quarkus, checklist de migração e instruções para geração de UUIDs/contatos.
## [0.1.7-beta-1] - 2025-09-11
### ⚠️ VERSÃO BETA
**Esta é uma versão beta em desenvolvimento. Use com cautela em produção.**
### 📝 Documentação
- **README.md**: Reescrito completamente para corrigir problemas de formatação e estrutura
- **Estrutura**: Reorganização das seções em ordem lógica
- **Exemplos**: Atualização de exemplos de uso e instalação
- **Versão**: Padronização das referências de versão
## [0.1.7-beta-0] - 2025-09-11
### ⚠️ VERSÃO BETA
**Esta é uma versão beta em desenvolvimento. Use com cautela em produção.**
### 🐛 Corrigido
- **Git Ignore**: Removido `dist/` do versionamento Git (agora corretamente ignorado)
- **ESLint Configuration**: Corrigido uso deprecated de `tseslint.config()` para sintaxe moderna
- **Build Optimization**: Arquivos gerados não poluem mais o repositório Git
### 🔧 Melhorado
- **Repository Cleanliness**: Estrutura mais limpa com arquivos gerados ignorados
- **ESLint Modern Syntax**: Configuração atualizada para padrões atuais
- **Development Workflow**: Melhor experiência de desenvolvimento
## [0.1.6-beta-0] - 2025-09-11
### ⚠️ VERSÃO BETA
**Esta é uma versão beta em desenvolvimento. Use com cautela em produção.**
### ✨ Adicionado
- **Dual Package Support**: Suporte simultâneo a CommonJS e ES Modules
- **Conditional Exports**: Exports condicionais para melhor compatibilidade
- **Peer Dependencies**: TypeScript como dependência opcional de pares
- **Build System Aprimorado**: Scripts separados para build CJS e ESM
- **Configurações TypeScript Otimizadas**: Target ES2018 para melhor compatibilidade
### 🔧 Melhorado
- **Estrutura de Build**: Separação clara entre CommonJS (`dist/cjs/`) e ESM (`dist/esm/`)
- **Conditional Exports**: Suporte nativo a diferentes formatos de módulo
- **TypeScript Configuration**: Configurações específicas para cada formato de saída
- **Peer Dependencies**: Melhor gerenciamento de dependências para consumidores
### 📦 Mudanças Técnicas
- **Build Output**: Agora gera tanto `dist/cjs/` quanto `dist/esm/`
- **Package Exports**:
- `"import"`: aponta para ESM
- `"require"`: aponta para CommonJS
- `"types"`: aponta para declarações TypeScript
- **Peer Dependencies**: TypeScript >=4.5.0 como opcional
## [0.1.4-beta] - 2025-01-24
### ⚠️ VERSÃO BETA
**Esta é uma versão beta em desenvolvimento. Use com cautela em produção.**
### ✨ Adicionado
- Melhorias na configuração do TypeScript com tipo de verificação mais rigorosa
- Adicionado suporte a source maps e declaration maps
- Novos scripts de npm para melhor fluxo de desenvolvimento
- Arquivo CHANGELOG.md para rastreamento de mudanças
- Metadados adicionais no package.json (keywords, homepage, repository)
### 🔧 Melhorado
- Estrutura de exportação mais limpa e organizadas por módulos
- Documentação TSDoc aprimorada em todos os arquivos
- Configuração de build mais robusta com verificações adicionais
- Script de clean usando rimraf para compatibilidade cross-platform
### 🐛 Corrigido
- Exportação faltante de `AuditContext` e `AuditedEntity` no index de base
- Estrutura de exportação do index.ts principal usando barrel exports
- Configuração de lint e prettier mais consistente
### 📝 Documentação
- Melhorias na documentação de todas as interfaces
- Exemplos de uso mais claros e completos
- Documentação de arquitetura atualizada
## [0.1.8] - 2025-09-20
### ✨ Adicionado
- `CorrelationIds` (novo tipo) com `traceId`, `requestId`, `spanId`, `parentSpanId`, `correlationId`, `traceparent`, `tracestate`
- `AuditContext` agora estende `CorrelationIds`
- `AuditLogDto` passou a estender `AuditContext` (campos continuam opcionais para retrocompatibilidade)
- Campos opcionais em paginação: `cursor`, `sortDirection` em `BaseQueryParams`; metadados em `BasePaginatedResponse`
- Tipos de domínio RH (catálogo de cargos, estrutura organizacional e vocabulários) exportados em `domain/rh`
### 📝 Documentação
- Exemplos de auditoria atualizados com `traceId`/`requestId`
- Menções atualizadas para “Agência Nacional de Proteção de Dados (ANPD)” nos repositórios irmãos e perfis
## [0.1.3] - 2025-01-XX
### ✨ Adicionado
- Tipos base iniciais (BaseEntity, NamedEntity, SoftDelete)
- DTOs principais do domínio ANPD
- Enums de domínio (AcaoAuditoria, StatusInterno, etc.)
- Interfaces utilitárias (BaseQueryParams, BasePaginatedResponse)
- Sistema de auditoria (AuditLogDto, AuditContext)
### 📝 Documentação
- README.md inicial com visão geral e instruções de uso
- Documentação TSDoc básica para todos os tipos
## [0.2.0-beta-0] - 2025-09-21
### ✨ Adicionado
- Tipos transversais do Microsoft Graph expandido (usuário, grupos e resposta paginada):
- `GraphUser` com campos comuns adicionais (accountEnabled, userType, mailNickname, otherMails, proxyAddresses, preferredLanguage, usageLocation, endereço, employeeId, employeeType, onPremises\*, assignedLicenses, assignedPlans, signInActivity etc.)
- `GraphGroup` com campos usuais de configuração (mail, mailNickname, description, groupTypes, securityEnabled, mailEnabled, visibility, onPremisesSecurityIdentifier, proxyAddresses, isAssignableToRole)
- `GraphPagedResponse<T>` com `@odata.deltaLink` e `@odata.count`
- Domínio RH publicado (catálogo de cargos, estrutura organizacional, vocabulário de atributos AD)
- IDs de correlação para auditoria (`CorrelationIds`) e integração no `AuditContext`/`AuditLogDto`
- Campos opcionais de paginação e metadados estendidos
### 🔧 Melhorado
- TSDoc ampliado com exemplos e remarks nas novas interfaces e nas existentes
- Exports no entrypoint reorganizados (domínios específicos e integrações transversais)
### 🧹 Políticas
- ESLint: proibido uso de `any` explícito (`@typescript-eslint/no-explicit-any`)