validation-br 2.0.0-next-4 → 2.0.0-next-6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/src/_exceptions/ValidationBRError.d.ts +25 -0
  2. package/dist/src/_exceptions/ValidationBRError.d.ts.map +1 -0
  3. package/dist/src/_exceptions/ValidationBRError.js +52 -0
  4. package/dist/src/_exceptions/ValidationBRError.js.map +1 -0
  5. package/dist/src/_helpers/crc.d.ts +8 -0
  6. package/dist/src/_helpers/crc.d.ts.map +1 -0
  7. package/dist/src/_helpers/crc.js +49 -0
  8. package/dist/src/_helpers/crc.js.map +1 -0
  9. package/dist/src/_helpers/crockford.d.ts +32 -0
  10. package/dist/src/_helpers/crockford.d.ts.map +1 -0
  11. package/dist/src/_helpers/crockford.js +63 -0
  12. package/dist/src/_helpers/crockford.js.map +1 -0
  13. package/dist/src/_helpers/mask.d.ts +19 -0
  14. package/dist/src/_helpers/mask.d.ts.map +1 -0
  15. package/dist/src/_helpers/mask.js +39 -0
  16. package/dist/src/_helpers/mask.js.map +1 -0
  17. package/dist/src/_helpers/random.d.ts +28 -0
  18. package/dist/src/_helpers/random.d.ts.map +1 -0
  19. package/dist/src/_helpers/random.js +55 -0
  20. package/dist/src/_helpers/random.js.map +1 -0
  21. package/dist/src/_helpers/utils.d.ts +95 -0
  22. package/dist/src/_helpers/utils.d.ts.map +1 -0
  23. package/dist/src/_helpers/utils.js +128 -0
  24. package/dist/src/_helpers/utils.js.map +1 -0
  25. package/dist/src/base.d.ts +34 -0
  26. package/dist/src/base.d.ts.map +1 -0
  27. package/dist/src/base.js +51 -0
  28. package/dist/src/base.js.map +1 -0
  29. package/dist/src/carplate.d.ts +32 -0
  30. package/dist/src/carplate.d.ts.map +1 -0
  31. package/dist/src/carplate.js +71 -0
  32. package/dist/src/carplate.js.map +1 -0
  33. package/dist/src/cbi_sinter.d.ts +79 -0
  34. package/dist/src/cbi_sinter.d.ts.map +1 -0
  35. package/dist/src/cbi_sinter.js +124 -0
  36. package/dist/src/cbi_sinter.js.map +1 -0
  37. package/dist/src/cep.d.ts +62 -0
  38. package/dist/src/cep.d.ts.map +1 -0
  39. package/dist/src/cep.js +223 -0
  40. package/dist/src/cep.js.map +1 -0
  41. package/dist/src/certidao.d.ts +84 -0
  42. package/dist/src/certidao.d.ts.map +1 -0
  43. package/dist/src/certidao.js +131 -0
  44. package/dist/src/certidao.js.map +1 -0
  45. package/dist/src/cnh.d.ts +81 -0
  46. package/dist/src/cnh.d.ts.map +1 -0
  47. package/dist/src/cnh.js +129 -0
  48. package/dist/src/cnh.js.map +1 -0
  49. package/dist/src/cnpj.d.ts +108 -0
  50. package/dist/src/cnpj.d.ts.map +1 -0
  51. package/dist/src/cnpj.js +175 -0
  52. package/dist/src/cnpj.js.map +1 -0
  53. package/dist/src/cpf.d.ts +89 -0
  54. package/dist/src/cpf.d.ts.map +1 -0
  55. package/dist/src/cpf.js +138 -0
  56. package/dist/src/cpf.js.map +1 -0
  57. package/dist/src/email.d.ts +13 -0
  58. package/dist/src/email.d.ts.map +1 -0
  59. package/dist/src/email.js +45 -0
  60. package/dist/src/email.js.map +1 -0
  61. package/dist/src/judicial-process.d.ts +151 -0
  62. package/dist/src/judicial-process.d.ts.map +1 -0
  63. package/dist/src/judicial-process.js +298 -0
  64. package/dist/src/judicial-process.js.map +1 -0
  65. package/dist/src/main.d.ts +16 -0
  66. package/dist/src/main.d.ts.map +1 -0
  67. package/dist/src/main.js +57 -0
  68. package/dist/src/main.js.map +1 -0
  69. package/dist/src/nup17.d.ts +99 -0
  70. package/dist/src/nup17.d.ts.map +1 -0
  71. package/dist/src/nup17.js +156 -0
  72. package/dist/src/nup17.js.map +1 -0
  73. package/dist/src/phone.d.ts +104 -0
  74. package/dist/src/phone.d.ts.map +1 -0
  75. package/dist/src/phone.js +204 -0
  76. package/dist/src/phone.js.map +1 -0
  77. package/dist/src/pis-pasep.d.ts +71 -0
  78. package/dist/src/pis-pasep.d.ts.map +1 -0
  79. package/dist/src/pis-pasep.js +117 -0
  80. package/dist/src/pis-pasep.js.map +1 -0
  81. package/dist/src/pix-copy-paste.d.ts +27 -0
  82. package/dist/src/pix-copy-paste.d.ts.map +1 -0
  83. package/dist/src/pix-copy-paste.js +84 -0
  84. package/dist/src/pix-copy-paste.js.map +1 -0
  85. package/dist/src/pix-key.d.ts +30 -0
  86. package/dist/src/pix-key.d.ts.map +1 -0
  87. package/dist/src/pix-key.js +90 -0
  88. package/dist/src/pix-key.js.map +1 -0
  89. package/dist/src/postal-track-code.d.ts +77 -0
  90. package/dist/src/postal-track-code.d.ts.map +1 -0
  91. package/dist/src/postal-track-code.js +130 -0
  92. package/dist/src/postal-track-code.js.map +1 -0
  93. package/dist/src/renavam.d.ts +32 -0
  94. package/dist/src/renavam.d.ts.map +1 -0
  95. package/dist/src/renavam.js +114 -0
  96. package/dist/src/renavam.js.map +1 -0
  97. package/dist/src/tituloEleitor.d.ts +83 -0
  98. package/dist/src/tituloEleitor.d.ts.map +1 -0
  99. package/dist/src/tituloEleitor.js +168 -0
  100. package/dist/src/tituloEleitor.js.map +1 -0
  101. package/dist/src/uf.d.ts +90 -0
  102. package/dist/src/uf.d.ts.map +1 -0
  103. package/dist/src/uf.js +264 -0
  104. package/dist/src/uf.js.map +1 -0
  105. package/dist/src/uuid.d.ts +10 -0
  106. package/dist/src/uuid.d.ts.map +1 -0
  107. package/dist/src/uuid.js +35 -0
  108. package/dist/src/uuid.js.map +1 -0
  109. package/package.json +9 -8
  110. package/.prettierignore +0 -1
  111. package/.prettierrc +0 -9
  112. package/dist/jest.config.d.ts +0 -8
  113. package/dist/jest.config.d.ts.map +0 -1
  114. package/dist/jest.config.js +0 -154
  115. package/dist/jest.config.js.map +0 -1
  116. package/eslint.config.mjs +0 -11
  117. package/jest.config.ts +0 -210
  118. package/todo.md +0 -33
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/_helpers/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare abstract class Base {
2
+ protected _value: string;
3
+ /**
4
+ * Estilo da máscara no formato: 000.000.000-00
5
+ *
6
+ */
7
+ protected abstract _mask: string | null;
8
+ constructor(_value: string, fakeFn?: Function);
9
+ get value(): string;
10
+ toString(): string;
11
+ /**
12
+ * Deve remover apenas pontos e traços.
13
+ */
14
+ protected abstract normalize(options?: any): void;
15
+ /**
16
+ * Deve aplicar as regras de validação do dígito verificador do documento
17
+ */
18
+ protected abstract validate(options?: any): boolean;
19
+ /**
20
+ * Deve devolver o número com a máscara
21
+ */
22
+ mask(): string;
23
+ /**
24
+ * checksum()
25
+ * Calcula o dígito verificador de um número SEM o dígito incluído
26
+ *
27
+ */
28
+ static checksum(value: string): string | null;
29
+ /**
30
+ * Deve gerar um número fake no padrão
31
+ */
32
+ static fake(options?: any): any;
33
+ }
34
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/base.ts"],"names":[],"mappings":"AAEA,8BAAsB,IAAI;IAOZ,SAAS,CAAC,MAAM,EAAE,MAAM;IANpC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;gBAElB,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ;IAEvD,IAAI,KAAK,WAER;IAED,QAAQ;IAUR;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAEjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO;IAQnD;;OAEG;IACH,IAAI,IAAI,MAAM;IAWd;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG;CAIhC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Base = void 0;
4
+ const mask_1 = require("./_helpers/mask");
5
+ class Base {
6
+ _value;
7
+ constructor(_value, fakeFn) {
8
+ this._value = _value;
9
+ }
10
+ get value() {
11
+ return this._value;
12
+ }
13
+ toString() {
14
+ return this.value;
15
+ }
16
+ //
17
+ //
18
+ //
19
+ //
20
+ //
21
+ /**
22
+ * Deve devolver o número com a máscara
23
+ */
24
+ mask() {
25
+ if (!this._mask)
26
+ return this._value;
27
+ return new mask_1.Mask(this._value).apply(this._mask);
28
+ }
29
+ //
30
+ //
31
+ // STATIC
32
+ //
33
+ //
34
+ /**
35
+ * checksum()
36
+ * Calcula o dígito verificador de um número SEM o dígito incluído
37
+ *
38
+ */
39
+ static checksum(value) {
40
+ throw new Error('Should implement on child');
41
+ }
42
+ /**
43
+ * Deve gerar um número fake no padrão
44
+ */
45
+ static fake(options) {
46
+ throw new Error('Should implement on child');
47
+ // Base.fakeFn(options)
48
+ }
49
+ }
50
+ exports.Base = Base;
51
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/base.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AAEvC,MAAsB,IAAI;IAOF;IAAtB,YAAsB,MAAc,EAAE,MAAiB;QAAjC,WAAM,GAAN,MAAM,CAAQ;IAAsB,CAAC;IAE3D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAkBD,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IAEF;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,EAAE;IACF,EAAE;IACF,SAAS;IACT,EAAE;IACF,EAAE;IAEF;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAa;QACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC7C,uBAAuB;IACzB,CAAC;CACF;AArED,oBAqEC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Placas de carro no formato mercosul e placas mais antigas
3
+ * AAA-0000 e AAA-0A00
4
+ *
5
+ *
6
+ */
7
+ import { Base } from "./base";
8
+ export declare class CarPlate extends Base {
9
+ protected _value: string;
10
+ protected _mask: string;
11
+ constructor(_value: string);
12
+ validate(): boolean;
13
+ /**
14
+ * Padroniza o valor, sem modificar a ponto de permitir que a validação aceite um valor inválido
15
+ * Ex.: AAA0-000 é inválido. Normalize() não pode modificar isso.
16
+ */
17
+ protected normalize(): void;
18
+ /**
19
+ * Remove a máscara após a normalização e a validação, para evitar que o valor
20
+ * AAAA-000 seja validado. Ele seria validado quando o traço fosse removido, então
21
+ * o _unmask é chamado apenas após a validação.
22
+ */
23
+ private _unmask;
24
+ /**
25
+ * checksum()
26
+ * Calcula o dígito verificador de um número SEM o dígito incluído
27
+ *
28
+ */
29
+ static checksum(value?: string): string;
30
+ static fake(): CarPlate;
31
+ }
32
+ //# sourceMappingURL=carplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carplate.d.ts","sourceRoot":"","sources":["../../src/carplate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,qBAAa,QAAS,SAAQ,IAAI;IAIpB,SAAS,CAAC,MAAM,EAAE,MAAM;IAFpC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAa;gBAEd,MAAM,EAAE,MAAM;IAapC,QAAQ;IAUR;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAWf;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvC,MAAM,CAAC,IAAI,IAAI,QAAQ;CAIxB"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * Placas de carro no formato mercosul e placas mais antigas
4
+ * AAA-0000 e AAA-0A00
5
+ *
6
+ *
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CarPlate = void 0;
10
+ const base_1 = require("./base");
11
+ const ValidationBRError_1 = require("./_exceptions/ValidationBRError");
12
+ const random_1 = require("./_helpers/random");
13
+ class CarPlate extends base_1.Base {
14
+ _value;
15
+ _mask = '000-0000';
16
+ constructor(_value) {
17
+ super(_value);
18
+ this._value = _value;
19
+ this.normalize();
20
+ if (!this.validate())
21
+ throw new ValidationBRError_1.InvalidFormatException();
22
+ this._unmask();
23
+ }
24
+ //
25
+ //
26
+ //
27
+ //
28
+ //
29
+ validate() {
30
+ return /^[A-Z]{3}-?[0-9][A-Z0-9][0-9]{2}$/i.test(this._value);
31
+ }
32
+ //
33
+ //
34
+ // PROTECTED
35
+ //
36
+ //
37
+ /**
38
+ * Padroniza o valor, sem modificar a ponto de permitir que a validação aceite um valor inválido
39
+ * Ex.: AAA0-000 é inválido. Normalize() não pode modificar isso.
40
+ */
41
+ normalize() {
42
+ this._value = this._value.toLocaleUpperCase().trim(); //.replace(/[-]+/g, '')
43
+ }
44
+ /**
45
+ * Remove a máscara após a normalização e a validação, para evitar que o valor
46
+ * AAAA-000 seja validado. Ele seria validado quando o traço fosse removido, então
47
+ * o _unmask é chamado apenas após a validação.
48
+ */
49
+ _unmask() {
50
+ this._value = this._value.replace(/[-]+/g, '');
51
+ }
52
+ //
53
+ //
54
+ // STATIC
55
+ //
56
+ //
57
+ /**
58
+ * checksum()
59
+ * Calcula o dígito verificador de um número SEM o dígito incluído
60
+ *
61
+ */
62
+ static checksum(value) {
63
+ throw new ValidationBRError_1.NoChecksumException();
64
+ }
65
+ static fake() {
66
+ const fake = `${random_1.Random.alpha(3)}${random_1.Random.number(1)}${random_1.Random.alpha()}${random_1.Random.number(2, true)}`;
67
+ return new CarPlate(fake);
68
+ }
69
+ }
70
+ exports.CarPlate = CarPlate;
71
+ //# sourceMappingURL=carplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carplate.js","sourceRoot":"","sources":["../../src/carplate.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,iCAA8B;AAC9B,uEAA8F;AAC9F,8CAA2C;AAE3C,MAAa,QAAS,SAAQ,WAAI;IAIV;IAFZ,KAAK,GAAW,UAAU,CAAA;IAEpC,YAAsB,MAAc;QAClC,KAAK,CAAC,MAAM,CAAC,CAAA;QADO,WAAM,GAAN,MAAM,CAAQ;QAElC,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,MAAM,IAAI,0CAAsB,EAAE,CAAA;QACxD,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IAEH,QAAQ;QACN,OAAO,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/D,CAAC;IAED,GAAG;IACH,GAAG;IACH,YAAY;IACZ,GAAG;IACH,GAAG;IAEH;;;OAGG;IACO,SAAS;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAA,CAAA,uBAAuB;IAC7E,CAAC;IAED;;;;OAIG;IACK,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAGD,GAAG;IACH,GAAG;IACH,SAAS;IACT,GAAG;IACH,GAAG;IAEH;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC5B,MAAM,IAAI,uCAAmB,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,IAAI;QACT,MAAM,IAAI,GAAG,GAAG,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAM,CAAC,KAAK,EAAE,GAAG,eAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/F,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;CACF;AAhED,4BAgEC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * CBISinter
3
+ * Valida o Código Imobiliário Brasileiro (CIB) no padrão SINTER.
4
+ *
5
+ * @doc
6
+ * O CIB (Código Imobiliário Brasileiro) é o código único de identificação do imóvel,
7
+ * estabelecido pelo SINTER (Sistema Nacional de Gestão de Informações Territoriais).
8
+ * O código é composto por 7 caracteres alfanuméricos seguidos de um dígito verificador.
9
+ *
10
+ * O algoritmo utiliza a Base 32 de Crockford, que:
11
+ * - É insensível a maiúsculas/minúsculas.
12
+ * - Remove os caracteres I, L, O e U para evitar confusões visuais e palavras obscenas.
13
+ * - Substitui 'I' e 'L' por '1'.
14
+ * - Substitui 'O' por '0'.
15
+ *
16
+ * 1) Partes do código
17
+ * A 3 N 8 Z 4 F - Y
18
+ * |___________| |
19
+ * Base DV
20
+ *
21
+ * 2) Cálculo do Dígito Verificador
22
+ *
23
+ * O cálculo utiliza o algoritmo de Módulo 31 com pesos específicos.
24
+ *
25
+ * Exemplo: A3N8Z4F
26
+ *
27
+ * Pesos: 4, 3, 9, 5, 7, 1, 8
28
+ *
29
+ * Caracteres Base32 (Valor):
30
+ * 0=0, 1=1, ..., 9=9
31
+ * A=10, B=11, C=12, D=13, E=14, F=15, G=16, H=17
32
+ * J=18, K=19, M=20, N=21, P=22, Q=23, R=24, S=25
33
+ * T=26, V=27, W=28, X=29, Y=30, Z=31
34
+ *
35
+ * Cálculo:
36
+ * A (10) * 4 = 40
37
+ * 3 (3) * 3 = 9
38
+ * N (21) * 9 = 189
39
+ * 8 (8) * 5 = 40
40
+ * Z (31) * 7 = 217
41
+ * 4 (4) * 1 = 4
42
+ * F (15) * 8 = 120
43
+ *
44
+ * Soma = 40 + 9 + 189 + 40 + 217 + 4 + 120 = 619
45
+ *
46
+ * Resto = 619 % 31 = 30
47
+ *
48
+ * O valor 30 corresponde ao caractere 'Y' na Base 32 de Crockford.
49
+ * Portanto, o DV é Y.
50
+ *
51
+ * Observação: O DV nunca pode ser "Z", pois o resto máximo da divisão por 31 é 30.
52
+ */
53
+ import { Base } from "./base";
54
+ export declare class CBISinter extends Base {
55
+ protected _mask: string;
56
+ constructor(value: string);
57
+ /**
58
+ * Normaliza o valor informado no construtor, atualizando o _value interno.
59
+ */
60
+ protected normalize(): void;
61
+ /**
62
+ * Valida se o DV informado na string original coincide com o DV calculado.
63
+ */
64
+ validate(): boolean;
65
+ /**
66
+ *
67
+ * checksum()
68
+ * Calcula o dígito verificador de um número SEM o dígito incluído
69
+ *
70
+ */
71
+ static checksum(value: string): string;
72
+ /**
73
+ *
74
+ * Cria uma instância com um número válido aleatório
75
+ *
76
+ */
77
+ static fake(): CBISinter;
78
+ }
79
+ //# sourceMappingURL=cbi_sinter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbi_sinter.d.ts","sourceRoot":"","sources":["../../src/cbi_sinter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAKH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,qBAAa,SAAU,SAAQ,IAAI;IACjC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAe;gBAE1B,KAAK,EAAE,MAAM;IASzB;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B;;KAEC;IACM,QAAQ,IAAI,OAAO;IAU1B;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAqBtC;;;;OAIG;IACH,MAAM,CAAC,IAAI,IAAI,SAAS;CAQzB"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ /**
3
+ * CBISinter
4
+ * Valida o Código Imobiliário Brasileiro (CIB) no padrão SINTER.
5
+ *
6
+ * @doc
7
+ * O CIB (Código Imobiliário Brasileiro) é o código único de identificação do imóvel,
8
+ * estabelecido pelo SINTER (Sistema Nacional de Gestão de Informações Territoriais).
9
+ * O código é composto por 7 caracteres alfanuméricos seguidos de um dígito verificador.
10
+ *
11
+ * O algoritmo utiliza a Base 32 de Crockford, que:
12
+ * - É insensível a maiúsculas/minúsculas.
13
+ * - Remove os caracteres I, L, O e U para evitar confusões visuais e palavras obscenas.
14
+ * - Substitui 'I' e 'L' por '1'.
15
+ * - Substitui 'O' por '0'.
16
+ *
17
+ * 1) Partes do código
18
+ * A 3 N 8 Z 4 F - Y
19
+ * |___________| |
20
+ * Base DV
21
+ *
22
+ * 2) Cálculo do Dígito Verificador
23
+ *
24
+ * O cálculo utiliza o algoritmo de Módulo 31 com pesos específicos.
25
+ *
26
+ * Exemplo: A3N8Z4F
27
+ *
28
+ * Pesos: 4, 3, 9, 5, 7, 1, 8
29
+ *
30
+ * Caracteres Base32 (Valor):
31
+ * 0=0, 1=1, ..., 9=9
32
+ * A=10, B=11, C=12, D=13, E=14, F=15, G=16, H=17
33
+ * J=18, K=19, M=20, N=21, P=22, Q=23, R=24, S=25
34
+ * T=26, V=27, W=28, X=29, Y=30, Z=31
35
+ *
36
+ * Cálculo:
37
+ * A (10) * 4 = 40
38
+ * 3 (3) * 3 = 9
39
+ * N (21) * 9 = 189
40
+ * 8 (8) * 5 = 40
41
+ * Z (31) * 7 = 217
42
+ * 4 (4) * 1 = 4
43
+ * F (15) * 8 = 120
44
+ *
45
+ * Soma = 40 + 9 + 189 + 40 + 217 + 4 + 120 = 619
46
+ *
47
+ * Resto = 619 % 31 = 30
48
+ *
49
+ * O valor 30 corresponde ao caractere 'Y' na Base 32 de Crockford.
50
+ * Portanto, o DV é Y.
51
+ *
52
+ * Observação: O DV nunca pode ser "Z", pois o resto máximo da divisão por 31 é 30.
53
+ */
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.CBISinter = void 0;
56
+ const ValidationBRError_1 = require("./_exceptions/ValidationBRError");
57
+ const crockford_1 = require("./_helpers/crockford");
58
+ const random_1 = require("./_helpers/random");
59
+ const base_1 = require("./base");
60
+ const utils_1 = require("./_helpers/utils");
61
+ class CBISinter extends base_1.Base {
62
+ _mask = "0000000-0"; // Máscara apenas informativa
63
+ constructor(value) {
64
+ super(value);
65
+ this.normalize();
66
+ if (!this.validate()) {
67
+ throw new ValidationBRError_1.InvalidChecksumException();
68
+ }
69
+ }
70
+ /**
71
+ * Normaliza o valor informado no construtor, atualizando o _value interno.
72
+ */
73
+ normalize() {
74
+ this._value = crockford_1.Crockford.normalize(this._value);
75
+ }
76
+ /**
77
+ * Valida se o DV informado na string original coincide com o DV calculado.
78
+ */
79
+ validate() {
80
+ const cib = (0, utils_1.clearValue)(this._value, 8, {
81
+ rejectEmpty: true,
82
+ rejectIfLonger: true,
83
+ rejectIfShorter: true,
84
+ });
85
+ return CBISinter.checksum(cib.substring(0, 7)) === cib.substring(7, 8);
86
+ }
87
+ /**
88
+ *
89
+ * checksum()
90
+ * Calcula o dígito verificador de um número SEM o dígito incluído
91
+ *
92
+ */
93
+ static checksum(value) {
94
+ if (!value)
95
+ throw new ValidationBRError_1.EmptyValueException();
96
+ if (!/^[0-9a-z]{7}$/i.test(value))
97
+ throw new ValidationBRError_1.InvalidFormatException();
98
+ // Garante que temos pelo menos os 7 caracteres da base
99
+ // const base = value.substring(0, 7);
100
+ const base = value;
101
+ const weights = [4, 3, 9, 5, 7, 1, 8];
102
+ let sum = 0;
103
+ for (let i = 0; i < base.length; i++) {
104
+ const charValue = crockford_1.Crockford.charToInt(base[i]);
105
+ sum += charValue * weights[i];
106
+ }
107
+ const rest = sum % 31;
108
+ return crockford_1.Crockford.intToChar(rest);
109
+ }
110
+ /**
111
+ *
112
+ * Cria uma instância com um número válido aleatório
113
+ *
114
+ */
115
+ static fake() {
116
+ // Pego o alfabeto usado pelo Crockford como array
117
+ const alphabet = crockford_1.Crockford.getAlphabet().split('');
118
+ // Uso o random.fromArray para pegar 7 caracteres aleatórios de dentro do alfabeto
119
+ const base = random_1.Random.fromArray(alphabet, 7).join('');
120
+ return new CBISinter(`${base}${CBISinter.checksum(base)}`);
121
+ }
122
+ }
123
+ exports.CBISinter = CBISinter;
124
+ //# sourceMappingURL=cbi_sinter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbi_sinter.js","sourceRoot":"","sources":["../../src/cbi_sinter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;;;AAEH,uEAAwH;AACxH,oDAAiD;AACjD,8CAA2C;AAC3C,iCAA8B;AAC9B,4CAA8C;AAE9C,MAAa,SAAU,SAAQ,WAAI;IACvB,KAAK,GAAW,WAAW,CAAC,CAAC,6BAA6B;IAEpE,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,4CAAwB,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACO,SAAS;QACjB,IAAI,CAAC,MAAM,GAAG,qBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;KAEC;IACM,QAAQ;QACb,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YACrC,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,uCAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,0CAAsB,EAAE,CAAC;QAEtE,uDAAuD;QACvD,sCAAsC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,qBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,GAAG,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACtB,OAAO,qBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAID;;;;OAIG;IACH,MAAM,CAAC,IAAI;QACT,kDAAkD;QAClD,MAAM,QAAQ,GAAG,qBAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,kFAAkF;QAClF,MAAM,IAAI,GAAG,eAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpD,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAxED,8BAwEC"}
@@ -0,0 +1,62 @@
1
+ import ValidationBRError from './_exceptions/ValidationBRError';
2
+ import { Base } from './base';
3
+ import { UF } from './uf';
4
+ export declare class CEP extends Base {
5
+ protected _value: string;
6
+ protected _mask: string;
7
+ protected static _ranges: Record<string, [string, string][]>;
8
+ constructor(_value: string, options?: ValidationOptions);
9
+ /**
10
+ *
11
+ *
12
+ *
13
+ */
14
+ protected normalize(): void;
15
+ /**
16
+ * validate()
17
+ * Valida se um número é válido e
18
+ * retorna uma exceção se não estiver
19
+ *
20
+ * @link https://regex101.com/r/uQJuUM/1
21
+ *
22
+ *
23
+ */
24
+ protected validate(options?: ValidationOptions): boolean;
25
+ /**
26
+ * checksum()
27
+ * Not implemented
28
+ */
29
+ static checksum(value: string): string;
30
+ /**
31
+ * Cria um número fake
32
+ * - Deve criar um fake dentro de uma faixa
33
+ *
34
+ */
35
+ static fake(options?: Partial<ValidationOptions>): CEP;
36
+ /**
37
+ *
38
+ * Verifica se um CEP está dentro de uma faixa e retorna o estado
39
+ *
40
+ */
41
+ static getUFByCEP(value: string): UF;
42
+ /**
43
+ *
44
+ * Pega aleatoriamente um CEP em um estado
45
+ *
46
+ */
47
+ static getRandomByUF(uf: UF): CEP;
48
+ /**
49
+ *
50
+ * Pega as faixas de CEP por estado
51
+ *
52
+ */
53
+ static getRangesByUF(uf: UF): [string, string][];
54
+ }
55
+ interface ValidationOptions {
56
+ uf?: UF;
57
+ }
58
+ export declare class NotFoundCEPException extends ValidationBRError {
59
+ constructor();
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=cep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cep.d.ts","sourceRoot":"","sources":["../../src/cep.ts"],"names":[],"mappings":"AAAA,OAAO,iBAGN,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,qBAAa,GAAI,SAAQ,IAAI;IA6Ef,SAAS,CAAC,MAAM,EAAE,MAAM;IA5EpC,SAAS,CAAC,KAAK,SAAe;IAE9B,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAwE1D;gBAEoB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAiBjE;;;;OAIG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO;IAaxD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAItC;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,GAAG;IAe1D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;IAgBpC;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG;IAMjC;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE;CAG5B;AAED,UAAU,iBAAiB;IACzB,EAAE,CAAC,EAAE,EAAE,CAAC;CACT;AAED,qBAAa,oBAAqB,SAAQ,iBAAiB;;CAI1D"}