UNPKG

@anpdgovbr/shared-types

Version:

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

206 lines (205 loc) 6.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ACAO_AUDITORIA_VALUES = exports.AcaoAuditoria = void 0; exports.isAcaoAuditoria = isAcaoAuditoria; exports.assertAcaoAuditoria = assertAcaoAuditoria; exports.coerceAcaoAuditoria = coerceAcaoAuditoria; /** * Enumeração que representa as possíveis ações de auditoria realizadas no sistema. * * @remarks * Utilizado para identificar operações executadas em entidades, incluindo operações básicas de CRUD, * autenticação, operações em massa, gerenciamento de arquivos, fluxos de aprovação e consultas específicas. * Essencial para conformidade com LGPD e auditoria de sistemas de proteção de dados. * * @enum {string} * @readonly * @public */ var AcaoAuditoria; (function (AcaoAuditoria) { /** * Representa a ação de criação de um novo registro. */ AcaoAuditoria["CREATE"] = "CREATE"; /** * Representa a ação de atualização completa de um registro existente. */ AcaoAuditoria["UPDATE"] = "UPDATE"; /** * Representa a ação de exclusão de um registro. */ AcaoAuditoria["DELETE"] = "DELETE"; /** * Representa a ação de modificação parcial (PATCH) de um registro. */ AcaoAuditoria["PATCH"] = "PATCH"; /** * Representa a ação de consulta (GET) de um registro ou recurso. */ AcaoAuditoria["GET"] = "GET"; /** * Representa a ação de criação em massa de múltiplos registros. */ AcaoAuditoria["BULK_CREATE"] = "BULK_CREATE"; /** * Representa a ação de atualização em massa de múltiplos registros. */ AcaoAuditoria["BULK_UPDATE"] = "BULK_UPDATE"; /** * Representa a ação de exclusão em massa de múltiplos registros. */ AcaoAuditoria["BULK_DELETE"] = "BULK_DELETE"; /** * Representa a ação de restauração de um registro previamente excluído (soft delete). */ AcaoAuditoria["RESTORE"] = "RESTORE"; /** * Representa a ação de exportação de dados do sistema. */ AcaoAuditoria["EXPORT"] = "EXPORT"; /** * Representa a ação de importação de dados para o sistema. */ AcaoAuditoria["IMPORT"] = "IMPORT"; /** * Representa a ação de upload de arquivos para o sistema. */ AcaoAuditoria["UPLOAD"] = "UPLOAD"; /** * Representa a ação de download de arquivos do sistema. */ AcaoAuditoria["DOWNLOAD"] = "DOWNLOAD"; /** * Representa a ação de compartilhamento de dados ou arquivos. */ AcaoAuditoria["SHARE"] = "SHARE"; /** * Representa a ação de busca ou pesquisa de registros. */ AcaoAuditoria["SEARCH"] = "SEARCH"; /** * Representa a ação de impressão de relatórios ou documentos. */ AcaoAuditoria["PRINT"] = "PRINT"; /** * Representa a ação de login no sistema. */ AcaoAuditoria["LOGIN"] = "LOGIN"; /** * Representa a ação de logout do sistema. */ AcaoAuditoria["LOGOUT"] = "LOGOUT"; /** * Representa a ação de alteração de senha do usuário. */ AcaoAuditoria["CHANGE_PASSWORD"] = "CHANGE_PASSWORD"; /** * Representa a ação de aprovação em um fluxo de trabalho. */ AcaoAuditoria["APPROVE"] = "APPROVE"; /** * Representa a ação de rejeição em um fluxo de trabalho. */ AcaoAuditoria["REJECT"] = "REJECT"; /** * Representa a ação de arquivamento de registros. */ AcaoAuditoria["ARCHIVE"] = "ARCHIVE"; /** * Representa a ação de desarquivamento de registros. */ AcaoAuditoria["UNARCHIVE"] = "UNARCHIVE"; })(AcaoAuditoria || (exports.AcaoAuditoria = AcaoAuditoria = {})); /** Lista imutável com os valores de AcaoAuditoria. */ exports.ACAO_AUDITORIA_VALUES = [ AcaoAuditoria.CREATE, AcaoAuditoria.UPDATE, AcaoAuditoria.DELETE, AcaoAuditoria.PATCH, AcaoAuditoria.GET, AcaoAuditoria.BULK_CREATE, AcaoAuditoria.BULK_UPDATE, AcaoAuditoria.BULK_DELETE, AcaoAuditoria.RESTORE, AcaoAuditoria.EXPORT, AcaoAuditoria.IMPORT, AcaoAuditoria.UPLOAD, AcaoAuditoria.DOWNLOAD, AcaoAuditoria.SHARE, AcaoAuditoria.SEARCH, AcaoAuditoria.PRINT, AcaoAuditoria.LOGIN, AcaoAuditoria.LOGOUT, AcaoAuditoria.CHANGE_PASSWORD, AcaoAuditoria.APPROVE, AcaoAuditoria.REJECT, AcaoAuditoria.ARCHIVE, AcaoAuditoria.UNARCHIVE, ]; /** * Conjunto (Set) interno usado para validações em tempo de execução. * * @internal * @remarks * Usado pelas funções auxiliares para verificar se uma string corresponde a um valor * válido de AcaoAuditoria. Não expor diretamente em documentação de API pública. */ const ACAO_AUDITORIA_SET = new Set(exports.ACAO_AUDITORIA_VALUES); /** * Type guard para AcaoAuditoria. * * @param value - Valor a ser verificado em tempo de execução. * @returns true se o valor for uma string igual a um dos valores de AcaoAuditoria; caso contrário false. * @public * * @example * ```ts * if (isAcaoAuditoria(maybe)) { * // aqui `maybe` tem o tipo AcaoAuditoriaLiteral * } * ``` */ function isAcaoAuditoria(value) { return (typeof value === "string" && ACAO_AUDITORIA_SET.has(value)); } /** * Asserção de tipo para AcaoAuditoria. * * Lança um erro quando o valor de entrada não é um valor válido do enum AcaoAuditoria. * Útil para garantir invariantes em tempo de execução quando se deseja * abortar cedo caso o valor seja inválido. * * @param value - Valor a ser validado * @throws {Error} Quando `value` não for um AcaoAuditoriaLiteral * @public * * @example * ```ts * assertAcaoAuditoria(valorRecebido) * // a partir daqui, `valorRecebido` é considerado AcaoAuditoriaLiteral * ``` */ function assertAcaoAuditoria(value) { if (!isAcaoAuditoria(value)) throw new Error(`AcaoAuditoria inválida: ${String(value)}`); } /** * Coerção para AcaoAuditoria com fallback. * * Retorna o valor se for um AcaoAuditoria válido; caso contrário retorna o `fallback`. * * @param value - Valor a ser convertido/avaliado em tempo de execução. * @param fallback - Valor a ser usado quando `value` não for válido. Padrão: AcaoAuditoria.GET. * @returns O valor coerido como AcaoAuditoriaLiteral (ou o fallback quando inválido). * @public * * @example * ```ts * const acao = coerceAcaoAuditoria(maybeString, AcaoAuditoria.GET) * ``` */ function coerceAcaoAuditoria(value, fallback = AcaoAuditoria.GET) { return isAcaoAuditoria(value) ? value : fallback; }