
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
cnj-validate
Advanced tools
Biblioteca TypeScript para validação e análise de números de processos em conformidade com o CNJ (Conselho Nacional de Justiça) do Brasil
Biblioteca TypeScript para validação e análise de números de processos CNJ (Conselho Nacional de Justiça) do Brasil
npm install cnj-validate
import { validateCNJ, analyzeCNJ } from 'cnj-validate'
// Validação simples
const isValid = validateCNJ('0001327-64.2018.8.26.0158').isValid // true
// Análise completa
const analysis = analyzeCNJ('0001327-64.2018.8.26.0158')
console.log(analysis.segmentName) // "Justiça dos Estados..."
console.log(analysis.detailed.district) // "São Paulo"
# Instalar globalmente
npm install -g cnj-validate
# Processar arquivo CSV
cnj-process input.csv output.csv
# Ou usar npx (sem instalar)
npx cnj-validate@latest input.csv
import { validateCNJ, isValidCNJ } from 'cnj-validate'
// Validação completa
const result = validateCNJ('0001327-64.2018.8.26.0158')
console.log(result.isValid) // true
// Validação rápida (apenas boolean)
const isValid = isValidCNJ('0001327-64.2018.8.26.0158')
console.log(isValid) // true
import { analyzeCNJ } from 'cnj-validate'
const analysis = analyzeCNJ('0001327-64.2018.8.26.0158')
console.log(analysis.segmentName) // "Justiça dos Estados e do Distrito Federal e Territórios"
console.log(analysis.detailed.district) // "São Paulo"
console.log(analysis.detailed.uf) // "SP"
import { formatCNJ, normalizeCNJ } from 'cnj-validate'
// Formatar CNJ não formatado
const formatted = formatCNJ('00013276420188260158')
console.log(formatted) // "0001327-64.2018.8.26.0158"
// Remover formatação
const normalized = normalizeCNJ('0001327-64.2018.8.26.0158')
console.log(normalized) // "00013276420188260158"
import { processCSV, generateCSV } from 'cnj-validate'
// Processar arquivo CSV
const csvContent = `0001327-64.2018.8.26.0158
0001328-49.2018.8.26.0158`
const result = processCSV(csvContent)
console.log(result.validCount) // Número de CNJs válidos
console.log(result.invalidCount) // Número de CNJs inválidos
// Gerar CSV de análises
const analyses = [
/* suas análises */
]
const csvOutput = generateCSV(analyses, true) // com cabeçalho
| Função | Descrição | Retorno |
|---|---|---|
validateCNJ(cnj) | Valida um número CNJ | ValidationResult |
analyzeCNJ(cnj) | Análise completa do CNJ | AnalysisCNJ |
isValidCNJ(cnj) | Validação rápida | boolean |
formatCNJ(cnj) | Formatar CNJ | string |
decomposeCNJ(cnj) | Decompor componentes | DecomposedCNJ |
| Função | Descrição | Retorno |
|---|---|---|
processCSV(content, options) | Processar arquivo CSV | CSVProcessingResult |
generateCSV(analyses, header) | Gerar CSV | string |
processCNJBatch(cnjs) | Processar lote | CSVProcessingResult |
| Função | Descrição | Retorno |
|---|---|---|
getSegment(code) | Obter info do segmento | Segment |
getDistrictInfo(key) | Obter info do distrito | DistrictInfo |
formatCNJWithMask(cnj) | Aplicar máscara | string |
interface AnalysisCNJ {
receivedCNJ: string
validCNJ: boolean
segmentName: string
segmentShort: string
sourceUnitType: string
sourceUnitNumber: string
courtType: string
courtNumber: string
detailed: DecomposedCNJ
}
interface ValidationResult {
isValid: boolean
expectedDigit?: string
receivedDigit?: string
error?: string
}
'use server'
import { analyzeCNJ } from 'cnj-validate'
export async function validateCNJAction(cnj: string) {
try {
const analysis = analyzeCNJ(cnj)
return { success: true, analysis }
} catch (error) {
return { success: false, error: error.message }
}
}
// app/api/validate/route.ts
import { NextRequest, NextResponse } from 'next/server'
import { validateCNJ } from 'cnj-validate'
export async function POST(request: NextRequest) {
const { cnj } = await request.json()
const result = validateCNJ(cnj)
return NextResponse.json(result)
}
'use client'
import { useState } from 'react'
import { validateCNJ, AnalysisCNJ } from 'cnj-validate'
export function useCNJValidation() {
const [result, setResult] = useState<AnalysisCNJ | null>(null)
const [loading, setLoading] = useState(false)
const validate = async (cnj: string) => {
setLoading(true)
try {
const analysis = analyzeCNJ(cnj)
setResult(analysis)
} catch (error) {
setResult(null)
} finally {
setLoading(false)
}
}
return { result, loading, validate }
}
# Executar testes
npm test
# Executar com coverage
npm run test:coverage
# Executar em modo watch
npm run test:watch
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes.
Após instalação global, use o comando cnj-process:
# Sintaxe básica
cnj-process <arquivo-entrada> [arquivo-saida]
# Exemplos
cnj-process processes.csv # Gera processes_processed.csv
cnj-process input.csv output.csv # Arquivo customizado
# Resultado
✅ Processamento concluído!
📊 Total: 1000 CNJs
✅ Válidos: 987 (98.7%)
⚡ Velocidade: 58,432 CNJs/segundo
💾 Arquivo: output.csv
import { validateCNJ } from 'cnj-validate'
function validateProcessForm(cnj: string) {
const result = validateCNJ(cnj)
if (!result.isValid) {
return `CNJ inválido: ${result.error}`
}
return 'CNJ válido!'
}
import { processFile } from 'cnj-validate'
import path from 'path'
async function processSpreadsheet() {
try {
const result = await processFile(
path.join(__dirname, 'processes.csv'),
path.join(__dirname, 'validated_processes.csv'),
)
console.log(`✅ ${result.statistics.validCNJs} CNJs válidos processados`)
return result.outputFile
} catch (error) {
console.error('Erro no processamento:', error.message)
}
}
Contribuições são bem-vindas!
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT © CNJ Validate Team
Desenvolvido com ❤️ para a comunidade jurídica brasileira
FAQs
Biblioteca TypeScript para validação e análise de números de processos em conformidade com o CNJ (Conselho Nacional de Justiça) do Brasil
We found that cnj-validate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.