UNPKG

@anpdgovbr/shared-types

Version:

Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)

190 lines (123 loc) 8.27 kB
# 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`)