validation-br
Advanced tools
Comparing version 1.5.1 to 1.5.2
@@ -5,8 +5,14 @@ /** | ||
* | ||
* A partir da Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024, CNPJ passa | ||
* a poder ser criado com letras e números, ao invés de apenas números. Esta alteração entra | ||
* em vigor em 2026. | ||
* | ||
* | ||
* @doc | ||
* - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00 | ||
* - CNPJ deve possuir 14 dígitos no formato AA.AAA.AAA/AAAA-NN, onde A representa letras | ||
* ou números e N representa números (Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024) | ||
* | ||
* - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal | ||
* - Os caracteres 1 a 8 são a identificação da empresa definida pela Receita Federal. Podem ser letras ou números | ||
* | ||
* - Os caracteres 9 a 12 são a identificação das filiais da empresa. | ||
* - Os caracteres 9 a 12 são a identificação das filiais da empresa. Podendo ser letras ou números | ||
* | ||
@@ -21,2 +27,23 @@ * - Os caracteres 13 e 14 são os dígitos verificadores | ||
* | ||
* | ||
* 2.1) Conversão dos números para tabela ASCII | ||
* Converte os caracteres do CNPJ em valores numéricos, mesmo que alguns deles | ||
* sejam numéricos. A conversão será baseada na tabela ASCII | ||
* | ||
* Tabela ASCII | ||
* 0 = 48 1 = 49 2 = 50 3 = 51 4 = 52 | ||
* 5 = 53 6 = 54 7 = 55 8 = 56 9 = 57 | ||
* A = 65 B = 66 C = 67 D = 68 E = 69 | ||
* F = 70 G = 71 H = 72 I = 73 J = 74 | ||
* K = 75 L = 76 M = 77 N = 78 O = 79 | ||
* P = 80 Q = 81 R = 82 S = 83 T = 84 | ||
* U = 85 V = 86 W = 87 X = 88 Y = 89 | ||
* Z = 90 | ||
* | ||
* Ao converter cada dígito do CNPJ para o seu equivalente na tabela ASCII, subtraia de 48 | ||
* para obter o número que será multiplicado. | ||
* Como o "0" é 48 e deve-se subtrair de 48, não há mudanças nos números. | ||
* | ||
* | ||
* | ||
* 2) Cálculo do primeiro DV. | ||
@@ -23,0 +50,0 @@ * |
@@ -6,8 +6,14 @@ "use strict"; | ||
* | ||
* A partir da Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024, CNPJ passa | ||
* a poder ser criado com letras e números, ao invés de apenas números. Esta alteração entra | ||
* em vigor em 2026. | ||
* | ||
* | ||
* @doc | ||
* - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00 | ||
* - CNPJ deve possuir 14 dígitos no formato AA.AAA.AAA/AAAA-NN, onde A representa letras | ||
* ou números e N representa números (Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024) | ||
* | ||
* - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal | ||
* - Os caracteres 1 a 8 são a identificação da empresa definida pela Receita Federal. Podem ser letras ou números | ||
* | ||
* - Os caracteres 9 a 12 são a identificação das filiais da empresa. | ||
* - Os caracteres 9 a 12 são a identificação das filiais da empresa. Podendo ser letras ou números | ||
* | ||
@@ -22,2 +28,23 @@ * - Os caracteres 13 e 14 são os dígitos verificadores | ||
* | ||
* | ||
* 2.1) Conversão dos números para tabela ASCII | ||
* Converte os caracteres do CNPJ em valores numéricos, mesmo que alguns deles | ||
* sejam numéricos. A conversão será baseada na tabela ASCII | ||
* | ||
* Tabela ASCII | ||
* 0 = 48 1 = 49 2 = 50 3 = 51 4 = 52 | ||
* 5 = 53 6 = 54 7 = 55 8 = 56 9 = 57 | ||
* A = 65 B = 66 C = 67 D = 68 E = 69 | ||
* F = 70 G = 71 H = 72 I = 73 J = 74 | ||
* K = 75 L = 76 M = 77 N = 78 O = 79 | ||
* P = 80 Q = 81 R = 82 S = 83 T = 84 | ||
* U = 85 V = 86 W = 87 X = 88 Y = 89 | ||
* Z = 90 | ||
* | ||
* Ao converter cada dígito do CNPJ para o seu equivalente na tabela ASCII, subtraia de 48 | ||
* para obter o número que será multiplicado. | ||
* Como o "0" é 48 e deve-se subtrair de 48, não há mudanças nos números. | ||
* | ||
* | ||
* | ||
* 2) Cálculo do primeiro DV. | ||
@@ -86,7 +113,9 @@ * | ||
} | ||
function fake(options = false) { | ||
const num = (0, utils_1.fakeNumber)(12, true); | ||
function fake(input = false) { | ||
const options = typeof input === 'boolean' | ||
? { withMask: input, alphanumeric: true } | ||
: { withMask: false, alphanumeric: true, ...input }; | ||
const num = (0, utils_1.fakeNumber)(12, true, options.alphanumeric); | ||
const cnpj = `${num}${dv(num)}`; | ||
const withMask = typeof options === 'boolean' ? options : options.withMask; | ||
if (withMask) | ||
if (options.withMask) | ||
return mask(cnpj); | ||
@@ -93,0 +122,0 @@ return cnpj; |
@@ -33,3 +33,3 @@ /** | ||
*/ | ||
export declare function sumElementsByMultipliers(value: string, multiplier: string | number[]): number; | ||
export declare function sumElementsByMultipliers(value: string, multiplier: number[]): number; | ||
/** | ||
@@ -47,3 +47,3 @@ * fakeNumber() | ||
*/ | ||
export declare function fakeNumber(length: number, forceLength?: boolean): number | string; | ||
export declare function fakeNumber(length: number, forceLength?: boolean, isAlpha?: boolean): string; | ||
/** | ||
@@ -50,0 +50,0 @@ * Limpa um número informado, retirando caracteres diferentes de números, |
@@ -53,5 +53,2 @@ "use strict"; | ||
function sumElementsByMultipliers(value, multiplier) { | ||
if (!Array.isArray(multiplier)) { | ||
multiplier = [...multiplier].map((n) => Number(n)); | ||
} | ||
return multiplier.reduce((accu, curr, i) => accu + curr * Number(value[i]), 0); | ||
@@ -71,7 +68,11 @@ } | ||
*/ | ||
function fakeNumber(length, forceLength = false) { | ||
const value = Math.floor(Math.random() * 10 ** length); | ||
function fakeNumber(length, forceLength = false, isAlpha = false) { | ||
let value; | ||
if (isAlpha) | ||
value = Math.round(Math.random() * 36 ** length).toString(36).toLocaleUpperCase(); | ||
else | ||
value = Math.floor(Math.random() * 10 ** length).toString(); | ||
if (forceLength) | ||
return String(value).padStart(length, '0'); | ||
return +value; | ||
return String(value); | ||
} | ||
@@ -78,0 +79,0 @@ /** |
{ | ||
"name": "validation-br", | ||
"description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh, renavam, processos judiciais, protocolo federal, código de rastreamento dos correios", | ||
"version": "1.5.1", | ||
"version": "1.5.2", | ||
"main": "dist/index.js", | ||
@@ -14,3 +14,4 @@ "types": "./dist/index.d.ts", | ||
"test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage", | ||
"format": "prettier --write \"./**/*.{js,ts,json}\"" | ||
"format": "prettier --write \"./**/*.{js,ts,json}\"", | ||
"prepublish": "npm run build" | ||
}, | ||
@@ -17,0 +18,0 @@ "lint-staged": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2735
131967
64