Skip to content

@fc/calculos-rpps ​

Regras de negócio do RPPS — Regime Próprio de Previdência Social para servidores do Poder Judiciário da União. Estende @fc/calculos-previdenciarios, o núcleo comum aos dois regimes previdenciários, e depende ainda de @fc/comum, @fc/utils e @fc/parsers.

Depende também de @fc/calculos-rgps, em um ponto só: a contagem recíproca (art. 201, § 9º, da CF, e Lei 9.796/1999). O servidor traz tempo do regime geral, provado por CTC do INSS, CNIS ou dossiê do PrevJud, e ler esses documentos é capacidade do RGPS. O tempo importado não é calculado com regra do RGPS — vira período próprio marcado rgps: true. Uma cerca de lint garante que só contagem-reciproca/ e documentos/importacao/ alcancem aquele pacote.

Diferença entre RPPS e RGPS ​

AspectoRGPS (calculos-rgps)RPPS (calculos-rpps)
PúblicoTrabalhadores da iniciativa privada, MEI, autônomosServidores públicos do Judiciário Federal
RegimeINSS / Previdência SocialRegime Próprio de cada órgão
Regra de aposentadoriaRPS, EC 103/2019, Temas STFEC 41/2003, EC 47/2005, EC 103/2019
Cálculo da RMIMédia dos salários-de-contribuiçãoÚltima remuneração ou média das remunerações

Módulos ​

MóduloConteúdo
entidadesEntidades do domínio RPPS: HistoricoRpps, DadosServidor, PeriodoRpps, Afastamento
parametrosParâmetros de domínio do RPPS, um por pasta: TipoAposentadoriaRpps, TipoServicoPublico, MetodoCalculoDias, TipoAfastamento, ComputadoPara, FundamentoRpps…
analise-beneficiosDeterminação dos benefícios aplicáveis ao servidor (AnaliseBeneficiosRpps)
calculo-tcCálculo do tempo de contribuição para o RPPS
requisitosVerificação dos requisitos de aposentadoria (EC 103/2019)
documentos/pluginsPlugins para o analisador de @fc/parsers específicos para documentos do RPPS (PluginCtcInss, PluginFrequenciaMumps, PluginSistemaRh), um subdiretório por documento
documentos/importacaoTipoDocumentoRpps e registroDocumentosRpps — compõe os documentos que os dois regimes leem (CNIS, PrevJud, TC simples) com os próprios do RPPS, e entrega ao importador genérico de @fc/parsers. Os demais tipos previdenciários entram declarados vazios: a calculadora não os oferece
contagem-reciprocaATRIBUTOS_CONTAGEM_RECIPROCA e converterPeriodoRgpsParaRpps — o que um tempo de RGPS assume ao entrar na contagem do RPPS
persistenciaTipos do .calc do RPPS, a cadeia de migradores (migradoresRpps, migrador02), o validador validarArquivoRpps e parametros-legados/ (vocabulário antigo dos parâmetros)

O PluginSistemaRh reconhece o formato atual do JSON de RH da SJSP e do TRF3, com nomes de campo em camelCase. A leitura abrange os dados do servidor e os indicadores de cômputo dos afastamentos e das averbações.

Como consumir ​

O pacote não tem barrel: nem src/index.ts de raiz nem index.ts de pasta. O exports publica cada pasta de src/ por wildcard (@fc/calculos-rpps/<pasta>/*), e o consumidor importa o arquivo que declara o símbolo:

ts
import { AnaliseBeneficiosRpps } from '@fc/calculos-rpps/analise-beneficios/AnaliseBeneficiosRpps'
import { HistoricoRpps } from '@fc/calculos-rpps/entidades/HistoricoRpps'
import { TipoAposentadoriaRpps } from '@fc/calculos-rpps/parametros/tipo-aposentadoria-rpps/TipoAposentadoriaRpps'
import { migradoresRpps } from '@fc/calculos-rpps/persistencia/migradoresRpps'

O import pela raiz (from '@fc/calculos-rpps') não resolve e é barrado pela cerca fc/cerca-pacotes-sem-barrel-raiz de @fc/eslint-config. Testes de arquitetura (tests/arquitetura/) travam a ausência de index.ts, de enum e de namespace em src/.

Parâmetros de domínio ​

Cada parâmetro é um dicionário as const com tipo homônimo, em pasta própria nomeada em kebab-case (parametros/<parametro>/<Parametro>.ts), com chaves em CAPITAL_CASE e valor igual ao nome — TipoAposentadoriaRpps.VOLUNTARIA_POR_TEMPO === 'VOLUNTARIA_POR_TEMPO', TipoServicoPublico.CARGO_PUBLICO, MetodoCalculoDias.DIAS_365. As funções auxiliares são livres, uma por arquivo: obterOpcoes<Nome>, obterRotulo<Nome>, eh<Nome>Valido (a validação de valor solto; não há mapa reverso), mais as específicas (obterExplicacaoMetodoCalculoDias, obterSiglaComputadoPara, obterTipoAfastamentoPorCodigo, obterOpcoesTipoAposentadoriaRppsDisponiveis…) e as constantes de grupo (TIPOS_APOSENTADORIA_RPPS_PCD, FUNDAMENTOS_RPPS_REGRAS_PROGRESSIVAS_EC103).

Duas exceções ao "valor igual ao nome": TipoAfastamento vale o código da Fábrica ('1'…'99'), que é o tipoFabricaCalculo do JSON do sistema de RH e o codigoFabrica da tabela de frequência Mumps — mudam só as chaves (TipoAfastamento.DOENCA_PESSOA_DA_FAMILIA === '1'); e FundamentoRpps é o fundamento legal do benefício analisado, e o resultado (BeneficioAnalisadoRpps.fundamento) carrega a chave — a citação em prosa é só de exibição (obterRotuloFundamentoRpps).

Persistência ​

Os .calc do RPPS gravam parametrosGerais.tipoAposentadoria, periodos.*.servicoPublico, periodos.*.metodoCalculoDias e periodos.*.metodoDiasServicoPublico — até o prev-rpps 1.2.38 com o texto antigo ('voluntariasRegrasGerais', 'Cargo_Publico', 'Data a Data'). persistencia/parametros-legados/ guarda a tabela congelada desses textos (VALORES_LEGADOS_RPPS) e os mapeadores migrarPeriodoRppsLegado e migrarParametrosRppsLegados, que reaproveitam o migrarParametroLegado de @fc/calculos-previdenciarios; o migrador02 (1.2.38 → atual) aplica-os junto com a tradução dos ordinais do RGPS e das chaves de competência. afastamentos.*.tipo não muda (é o código).

Instalação (monorepo) ​

jsonc
// package.json
{ "dependencies": { "@fc/calculos-rpps": "workspace:*" } }