A forma de validação que foi feita no pacote consegue validar ambos os cenários sem nenhuma intervenção, seja o CNPJ com apenas números (versão 1) quanto o CNPJ que possui alfanuméricos (versão 2).
No pacote o único momento que se faz necessário especificar a versão é caso queira gerar um CNPJ, nesse caso o default é a versão 1, mas é possível informar que deseja usar a versão com alfanuméricos.
No arquivo de testes do CNPJ eu criei cenários para validar ambos os casos.
Veja um exemplo de teste para o CNPJ na versão com dígitos:
t.Run("Should return no error if CNPJ is valid", func(t *testing.T) {
// Arrange
input := "59.541.264/0001-03"
sut := cnpj.New()
// Act
res := sut.IsValid(input)
// Assert
if res != nil {
t.Errorf("Expected no error, got %v", res)
}
})
Agora outro cenário com o CNPJ contendo alfanuméricos:
t.Run("Should return no error if CNPJ with letters is valid", func(t *testing.T) {
// Arrange
input := "12.ABC.345/01DE-35"
sut := cnpj.New()
// Act
res := sut.IsValid(input)
// Assert
if res != nil {
t.Errorf("Expected no error, got %v", res)
}
})
Veja que a implementação e o uso do pacote é igual independente se recebeu um CPNJ na versão antiga ou na nova.