vality-core 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +36 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +106 -0
- package/dist/valueObjects/Cnpj.d.ts +14 -0
- package/dist/valueObjects/Cnpj.d.ts.map +1 -0
- package/dist/valueObjects/Cnpj.js +88 -0
- package/dist/valueObjects/Cpf.d.ts +14 -0
- package/dist/valueObjects/Cpf.d.ts.map +1 -0
- package/dist/valueObjects/Cpf.js +83 -0
- package/dist/valueObjects/CpfCnpj.d.ts +17 -0
- package/dist/valueObjects/CpfCnpj.d.ts.map +1 -0
- package/dist/valueObjects/CpfCnpj.js +112 -0
- package/dist/valueObjects/DatePicker/DatePicker.d.ts +28 -0
- package/dist/valueObjects/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/valueObjects/DatePicker/DatePicker.js +80 -0
- package/dist/valueObjects/DatePicker/locales/pt-br.d.ts +8 -0
- package/dist/valueObjects/DatePicker/locales/pt-br.d.ts.map +1 -0
- package/dist/valueObjects/DatePicker/locales/pt-br.js +288 -0
- package/dist/valueObjects/DatePicker/types.d.ts +53 -0
- package/dist/valueObjects/DatePicker/types.d.ts.map +1 -0
- package/dist/valueObjects/DatePicker/types.js +2 -0
- package/dist/valueObjects/Email.d.ts +13 -0
- package/dist/valueObjects/Email.d.ts.map +1 -0
- package/dist/valueObjects/Email.js +45 -0
- package/dist/valueObjects/Moeda.d.ts +16 -0
- package/dist/valueObjects/Moeda.d.ts.map +1 -0
- package/dist/valueObjects/Moeda.js +20 -0
- package/dist/valueObjects/NomeCompleto.d.ts +13 -0
- package/dist/valueObjects/NomeCompleto.d.ts.map +1 -0
- package/dist/valueObjects/NomeCompleto.js +37 -0
- package/dist/valueObjects/Numero.d.ts +33 -0
- package/dist/valueObjects/Numero.d.ts.map +1 -0
- package/dist/valueObjects/Numero.js +139 -0
- package/dist/valueObjects/Placa.d.ts +14 -0
- package/dist/valueObjects/Placa.d.ts.map +1 -0
- package/dist/valueObjects/Placa.js +54 -0
- package/package.json +52 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Weslan Rezende Alves
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# vality-core
|
|
2
|
+
|
|
3
|
+
Value objects e validações para formulários (CPF, CNPJ, Email, Moeda, DatePicker, Placa, Nome, etc.) em TypeScript/JavaScript.
|
|
4
|
+
|
|
5
|
+
## 📖 Documentação completa
|
|
6
|
+
|
|
7
|
+
**Instalação, API, exemplos em Vue 3, React e Angular:**
|
|
8
|
+
**[Documentação principal →](docs/README.md)**
|
|
9
|
+
|
|
10
|
+
## Instalação
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install vality-core
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Uso rápido
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { Cpf, Cnpj, Email, Moeda, DatePicker } from "vality-core";
|
|
20
|
+
|
|
21
|
+
const cpf = new Cpf("123.456.789-09");
|
|
22
|
+
const email = new Email("usuario@exemplo.com");
|
|
23
|
+
const moeda = new Moeda(1000);
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Antes de publicar no NPM, substitua `seu-usuario` na URL da documentação pelo seu usuário ou organização no GitHub.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type { DatePickerOptions, FormatFunction, TimeLimiter, ValidateFunction, ValueOfFunction, ToISOStringFunction, } from "./valueObjects/DatePicker/types";
|
|
2
|
+
export { ValueObjects, ICpfCnpj, ICnpj, ICpf } from "./types";
|
|
3
|
+
export type { INumero, IMoeda, IEmail, IPlaca, IDatePicker, INome } from "./types";
|
|
4
|
+
export { default as Cpf } from "./valueObjects/Cpf";
|
|
5
|
+
export { default as Cnpj } from "./valueObjects/Cnpj";
|
|
6
|
+
export { default as CpfCnpj } from "./valueObjects/CpfCnpj";
|
|
7
|
+
export { default as Email } from "./valueObjects/Email";
|
|
8
|
+
export { default as Moeda } from "./valueObjects/Moeda";
|
|
9
|
+
export { default as NomeCompleto } from "./valueObjects/NomeCompleto";
|
|
10
|
+
export { default as Numero, LIMITE_DIGITO_NUMBER, FORMATO_PADRAO, type Options as NumeroOptions, } from "./valueObjects/Numero";
|
|
11
|
+
export { default as Placa } from "./valueObjects/Placa";
|
|
12
|
+
export { default as DatePicker } from "./valueObjects/DatePicker/DatePicker";
|
|
13
|
+
export { isEmpty } from "./utils";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC9D,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGnF,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,oBAAoB,EACpB,cAAc,EACd,KAAK,OAAO,IAAI,aAAa,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAG7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isEmpty = exports.DatePicker = exports.Placa = exports.FORMATO_PADRAO = exports.LIMITE_DIGITO_NUMBER = exports.Numero = exports.NomeCompleto = exports.Moeda = exports.Email = exports.CpfCnpj = exports.Cnpj = exports.Cpf = exports.ICpf = exports.ICnpj = exports.ICpfCnpj = exports.ValueObjects = void 0;
|
|
7
|
+
var types_1 = require("./types");
|
|
8
|
+
Object.defineProperty(exports, "ValueObjects", { enumerable: true, get: function () { return types_1.ValueObjects; } });
|
|
9
|
+
Object.defineProperty(exports, "ICpfCnpj", { enumerable: true, get: function () { return types_1.ICpfCnpj; } });
|
|
10
|
+
Object.defineProperty(exports, "ICnpj", { enumerable: true, get: function () { return types_1.ICnpj; } });
|
|
11
|
+
Object.defineProperty(exports, "ICpf", { enumerable: true, get: function () { return types_1.ICpf; } });
|
|
12
|
+
// Value Objects
|
|
13
|
+
var Cpf_1 = require("./valueObjects/Cpf");
|
|
14
|
+
Object.defineProperty(exports, "Cpf", { enumerable: true, get: function () { return __importDefault(Cpf_1).default; } });
|
|
15
|
+
var Cnpj_1 = require("./valueObjects/Cnpj");
|
|
16
|
+
Object.defineProperty(exports, "Cnpj", { enumerable: true, get: function () { return __importDefault(Cnpj_1).default; } });
|
|
17
|
+
var CpfCnpj_1 = require("./valueObjects/CpfCnpj");
|
|
18
|
+
Object.defineProperty(exports, "CpfCnpj", { enumerable: true, get: function () { return __importDefault(CpfCnpj_1).default; } });
|
|
19
|
+
var Email_1 = require("./valueObjects/Email");
|
|
20
|
+
Object.defineProperty(exports, "Email", { enumerable: true, get: function () { return __importDefault(Email_1).default; } });
|
|
21
|
+
var Moeda_1 = require("./valueObjects/Moeda");
|
|
22
|
+
Object.defineProperty(exports, "Moeda", { enumerable: true, get: function () { return __importDefault(Moeda_1).default; } });
|
|
23
|
+
var NomeCompleto_1 = require("./valueObjects/NomeCompleto");
|
|
24
|
+
Object.defineProperty(exports, "NomeCompleto", { enumerable: true, get: function () { return __importDefault(NomeCompleto_1).default; } });
|
|
25
|
+
var Numero_1 = require("./valueObjects/Numero");
|
|
26
|
+
Object.defineProperty(exports, "Numero", { enumerable: true, get: function () { return __importDefault(Numero_1).default; } });
|
|
27
|
+
Object.defineProperty(exports, "LIMITE_DIGITO_NUMBER", { enumerable: true, get: function () { return Numero_1.LIMITE_DIGITO_NUMBER; } });
|
|
28
|
+
Object.defineProperty(exports, "FORMATO_PADRAO", { enumerable: true, get: function () { return Numero_1.FORMATO_PADRAO; } });
|
|
29
|
+
var Placa_1 = require("./valueObjects/Placa");
|
|
30
|
+
Object.defineProperty(exports, "Placa", { enumerable: true, get: function () { return __importDefault(Placa_1).default; } });
|
|
31
|
+
var DatePicker_1 = require("./valueObjects/DatePicker/DatePicker");
|
|
32
|
+
Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return __importDefault(DatePicker_1).default; } });
|
|
33
|
+
// Utilitários
|
|
34
|
+
var utils_1 = require("./utils");
|
|
35
|
+
Object.defineProperty(exports, "isEmpty", { enumerable: true, get: function () { return utils_1.isEmpty; } });
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DatePickerOptions } from "./valueObjects/DatePicker/types";
|
|
2
|
+
export declare abstract class ValueObjects {
|
|
3
|
+
abstract valor: unknown;
|
|
4
|
+
abstract ehValido: true | string;
|
|
5
|
+
abstract validar(valor: unknown): unknown;
|
|
6
|
+
static formatar(valor: unknown): unknown;
|
|
7
|
+
abstract valueOf(): unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface INumero extends ValueObjects {
|
|
10
|
+
valor: string;
|
|
11
|
+
setValor(valor: number | string | null): void;
|
|
12
|
+
sanitizar(valor: string): number | null;
|
|
13
|
+
valueOf(): number | null;
|
|
14
|
+
}
|
|
15
|
+
export interface IMoeda extends INumero {
|
|
16
|
+
valor: string;
|
|
17
|
+
}
|
|
18
|
+
export interface IEmail extends ValueObjects {
|
|
19
|
+
valor: string;
|
|
20
|
+
valueOf(): string;
|
|
21
|
+
validar(valor: string): void;
|
|
22
|
+
}
|
|
23
|
+
export interface IPlaca extends ValueObjects {
|
|
24
|
+
valor: string;
|
|
25
|
+
valueOf(): string;
|
|
26
|
+
validar(valor: string): void;
|
|
27
|
+
}
|
|
28
|
+
export declare abstract class ICpfCnpj {
|
|
29
|
+
abstract valor: string;
|
|
30
|
+
abstract ehValido: true | string;
|
|
31
|
+
abstract tipo: "CPF" | "CNPJ" | null;
|
|
32
|
+
abstract valueOf(): string;
|
|
33
|
+
static sanatizar(valor: string): string;
|
|
34
|
+
static formatar(valor: string): string;
|
|
35
|
+
abstract validar(valor: string): void;
|
|
36
|
+
}
|
|
37
|
+
export declare abstract class ICnpj {
|
|
38
|
+
abstract valor: string;
|
|
39
|
+
abstract ehValido: true | string;
|
|
40
|
+
abstract valueOf(): string;
|
|
41
|
+
static sanatizar(valor: string): string;
|
|
42
|
+
static formatar(valor: string): string;
|
|
43
|
+
abstract validar(valor: string): void;
|
|
44
|
+
}
|
|
45
|
+
export declare abstract class ICpf {
|
|
46
|
+
abstract valor: string;
|
|
47
|
+
abstract ehValido: true | string;
|
|
48
|
+
abstract valueOf(): string;
|
|
49
|
+
static sanatizar(valor: string): string;
|
|
50
|
+
static formatar(valor: string): string;
|
|
51
|
+
abstract validar(valor: string): void;
|
|
52
|
+
}
|
|
53
|
+
export interface IDatePicker {
|
|
54
|
+
valor: string;
|
|
55
|
+
ehValido: true | string;
|
|
56
|
+
locale: string;
|
|
57
|
+
options: DatePickerOptions;
|
|
58
|
+
dateFormat: string;
|
|
59
|
+
formatar(valor: string): string;
|
|
60
|
+
validar(valor: string): void;
|
|
61
|
+
valueOf(): number;
|
|
62
|
+
toISOString(): string;
|
|
63
|
+
}
|
|
64
|
+
export interface INome {
|
|
65
|
+
valor: string;
|
|
66
|
+
ehValido: true | string;
|
|
67
|
+
validar(valor: string): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,8BAAsB,YAAY;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IAEjC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IACzC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAGxC,QAAQ,CAAC,OAAO,IAAI,OAAO;CAC5B;AAED,MAAM,WAAW,OAAQ,SAAQ,YAAY;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,MAAO,SAAQ,OAAO;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,8BAAsB,QAAQ;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,OAAO,IAAI,MAAM;IAE1B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGvC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGtC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CACtC;AAED,8BAAsB,KAAK;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,IAAI,MAAM;IAE1B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGvC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGtC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CACtC;AAED,8BAAsB,IAAI;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,IAAI,MAAM;IAE1B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGvC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGtC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,IAAI,MAAM,CAAC;IAClB,WAAW,IAAI,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ICpf = exports.ICnpj = exports.ICpfCnpj = exports.ValueObjects = void 0;
|
|
4
|
+
class ValueObjects {
|
|
5
|
+
static formatar(valor) {
|
|
6
|
+
return valor;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.ValueObjects = ValueObjects;
|
|
10
|
+
class ICpfCnpj {
|
|
11
|
+
static sanatizar(valor) {
|
|
12
|
+
return valor;
|
|
13
|
+
}
|
|
14
|
+
static formatar(valor) {
|
|
15
|
+
return valor;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ICpfCnpj = ICpfCnpj;
|
|
19
|
+
class ICnpj {
|
|
20
|
+
static sanatizar(valor) {
|
|
21
|
+
return valor;
|
|
22
|
+
}
|
|
23
|
+
static formatar(valor) {
|
|
24
|
+
return valor;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ICnpj = ICnpj;
|
|
28
|
+
class ICpf {
|
|
29
|
+
static sanatizar(valor) {
|
|
30
|
+
return valor;
|
|
31
|
+
}
|
|
32
|
+
static formatar(valor) {
|
|
33
|
+
return valor;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ICpf = ICpf;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const isEmpty: (value: unknown) => boolean;
|
|
2
|
+
export declare const ehDataBrasileira: (value: string) => boolean;
|
|
3
|
+
export declare const converterParaDate: (value: string | Date) => Date;
|
|
4
|
+
/**
|
|
5
|
+
* Format and return date in Humanize format
|
|
6
|
+
* Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
|
|
7
|
+
* Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat
|
|
8
|
+
* @param {string} value date to format
|
|
9
|
+
* @param {Intl.DateTimeFormatOptions} formatting Intl object to format with
|
|
10
|
+
*/
|
|
11
|
+
export declare const formatDate: (value: string | Date, locales?: string | string[], formatting?: Intl.DateTimeFormatOptions) => string;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAIxC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,OA+BhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,GAAG,IAAI,KAAG,IA0BxD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,GAAG,IAAI,EACpB,UAAS,MAAM,GAAG,MAAM,EAAY,EACpC,aAAY,IAAI,CAAC,qBAIhB,WA2CF,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDate = exports.converterParaDate = exports.ehDataBrasileira = exports.isEmpty = void 0;
|
|
4
|
+
// 👉 IsEmpty
|
|
5
|
+
const isEmpty = (value) => {
|
|
6
|
+
if (value === null || value === undefined || value === "")
|
|
7
|
+
return true;
|
|
8
|
+
return !!(Array.isArray(value) && value.length === 0);
|
|
9
|
+
};
|
|
10
|
+
exports.isEmpty = isEmpty;
|
|
11
|
+
const ehDataBrasileira = (value) => {
|
|
12
|
+
const dateTimeRegex = /^(\d{2})\/(\d{2})\/(\d{4})( \d{2}:\d{2}(:\d{2})?)?$/;
|
|
13
|
+
if (!dateTimeRegex.test(value))
|
|
14
|
+
return false;
|
|
15
|
+
const [datePart, timePart] = value.split(" ");
|
|
16
|
+
const [day, month, year] = datePart.split("/").map(Number);
|
|
17
|
+
const date = new Date(year, month - 1, day);
|
|
18
|
+
if (date.getFullYear() !== year ||
|
|
19
|
+
date.getMonth() !== month - 1 ||
|
|
20
|
+
date.getDate() !== day) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (timePart) {
|
|
24
|
+
const [hours, minutes, segundos] = timePart.split(":").map(Number);
|
|
25
|
+
if (hours < 0 ||
|
|
26
|
+
hours > 23 ||
|
|
27
|
+
minutes < 0 ||
|
|
28
|
+
minutes > 59 ||
|
|
29
|
+
segundos < 0 ||
|
|
30
|
+
segundos > 59) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
exports.ehDataBrasileira = ehDataBrasileira;
|
|
37
|
+
const converterParaDate = (value) => {
|
|
38
|
+
if (typeof value === "string" && value.trim() != "") {
|
|
39
|
+
if (!(0, exports.ehDataBrasileira)(value)) {
|
|
40
|
+
throw new Error("data inválida");
|
|
41
|
+
}
|
|
42
|
+
const [data, hora] = value.split(" ");
|
|
43
|
+
const [dia, mes, ano] = data.split("/").map((item) => Number(item));
|
|
44
|
+
if (!hora && dia && mes && ano) {
|
|
45
|
+
return new Date(ano, mes - 1, dia);
|
|
46
|
+
}
|
|
47
|
+
const [horas, minutos, segundo] = hora
|
|
48
|
+
.split(":")
|
|
49
|
+
.map((item) => Number(item));
|
|
50
|
+
if (typeof horas == "number" && typeof minutos == "number") {
|
|
51
|
+
if (typeof segundo == "number")
|
|
52
|
+
return new Date(ano, mes - 1, dia, horas, minutos, segundo);
|
|
53
|
+
return new Date(ano, mes - 1, dia, horas, minutos);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return new Date(value);
|
|
57
|
+
};
|
|
58
|
+
exports.converterParaDate = converterParaDate;
|
|
59
|
+
/**
|
|
60
|
+
* Format and return date in Humanize format
|
|
61
|
+
* Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
|
|
62
|
+
* Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat
|
|
63
|
+
* @param {string} value date to format
|
|
64
|
+
* @param {Intl.DateTimeFormatOptions} formatting Intl object to format with
|
|
65
|
+
*/
|
|
66
|
+
const formatDate = (value, locales = "pt-br", formatting = {
|
|
67
|
+
month: "2-digit",
|
|
68
|
+
day: "2-digit",
|
|
69
|
+
year: "numeric",
|
|
70
|
+
}) => {
|
|
71
|
+
if (!value)
|
|
72
|
+
return value;
|
|
73
|
+
if (typeof value === "string" && (0, exports.ehDataBrasileira)(value)) {
|
|
74
|
+
value = (0, exports.converterParaDate)(value);
|
|
75
|
+
}
|
|
76
|
+
const isoDateRegex = /^\d{4}-\d{2}-\d{2}$/;
|
|
77
|
+
if (typeof value === "string" && isoDateRegex.test(value)) {
|
|
78
|
+
value = new Date(value + " 00:00");
|
|
79
|
+
}
|
|
80
|
+
const date = typeof value === "string" ? new Date(value) : value;
|
|
81
|
+
try {
|
|
82
|
+
const hasTime = formatting.hour !== undefined ||
|
|
83
|
+
formatting.minute !== undefined ||
|
|
84
|
+
formatting.second !== undefined;
|
|
85
|
+
// Se houver data e hora, formatar separadamente para remover a vírgula
|
|
86
|
+
if (hasTime && (formatting.day || formatting.month || formatting.year)) {
|
|
87
|
+
const datePart = new Intl.DateTimeFormat(locales, {
|
|
88
|
+
day: formatting.day,
|
|
89
|
+
month: formatting.month,
|
|
90
|
+
year: formatting.year,
|
|
91
|
+
}).format(date);
|
|
92
|
+
const timePart = new Intl.DateTimeFormat(locales, {
|
|
93
|
+
hour: formatting.hour,
|
|
94
|
+
minute: formatting.minute,
|
|
95
|
+
second: formatting.second,
|
|
96
|
+
hour12: formatting.hour12,
|
|
97
|
+
}).format(date);
|
|
98
|
+
return `${datePart} ${timePart}`;
|
|
99
|
+
}
|
|
100
|
+
return new Intl.DateTimeFormat(locales, formatting).format(date);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
throw new Error("Erro ao formatar a data");
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
exports.formatDate = formatDate;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICnpj } from "../types";
|
|
2
|
+
export default class Cnpj implements ICnpj {
|
|
3
|
+
private _valor;
|
|
4
|
+
private _ehValido;
|
|
5
|
+
constructor(nome: string);
|
|
6
|
+
set valor(v: string);
|
|
7
|
+
get valor(): string;
|
|
8
|
+
get ehValido(): string | true;
|
|
9
|
+
valueOf(): string;
|
|
10
|
+
private static sanitizar;
|
|
11
|
+
static formatar(valor: string): string;
|
|
12
|
+
validar(valor: string): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Cnpj.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cnpj.d.ts","sourceRoot":"","sources":["../../src/valueObjects/Cnpj.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,KAAK;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAuB;gBAE5B,IAAI,EAAE,MAAM;IAOxB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAKlB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,kBAEX;IAED,OAAO;IAIP,OAAO,CAAC,MAAM,CAAC,SAAS;WAIV,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAuBtC,OAAO,CAAC,KAAK,EAAE,MAAM;CA8C7B"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
|
+
// TODO: Ajustar classe para o valueof ser uma função
|
|
5
|
+
class Cnpj {
|
|
6
|
+
constructor(nome) {
|
|
7
|
+
this._ehValido = true;
|
|
8
|
+
nome = Cnpj.formatar(nome);
|
|
9
|
+
this.validar(nome);
|
|
10
|
+
this._valor = nome;
|
|
11
|
+
}
|
|
12
|
+
set valor(v) {
|
|
13
|
+
v = Cnpj.formatar(v);
|
|
14
|
+
this.validar(v);
|
|
15
|
+
this._valor = v;
|
|
16
|
+
}
|
|
17
|
+
get valor() {
|
|
18
|
+
return this._valor;
|
|
19
|
+
}
|
|
20
|
+
get ehValido() {
|
|
21
|
+
return this._ehValido;
|
|
22
|
+
}
|
|
23
|
+
valueOf() {
|
|
24
|
+
return Cnpj.sanitizar(this._valor);
|
|
25
|
+
}
|
|
26
|
+
static sanitizar(valor) {
|
|
27
|
+
return valor.replace(/[^0-9]/g, "");
|
|
28
|
+
}
|
|
29
|
+
static formatar(valor) {
|
|
30
|
+
const cnpjSanitizado = this.sanitizar(valor);
|
|
31
|
+
let cnpjFormatado = cnpjSanitizado;
|
|
32
|
+
if (cnpjSanitizado.length > 2) {
|
|
33
|
+
cnpjFormatado =
|
|
34
|
+
cnpjSanitizado.slice(0, 2) + "." + cnpjSanitizado.slice(2);
|
|
35
|
+
}
|
|
36
|
+
if (cnpjSanitizado.length > 5) {
|
|
37
|
+
cnpjFormatado = cnpjFormatado.slice(0, 6) + "." + cnpjFormatado.slice(6);
|
|
38
|
+
}
|
|
39
|
+
if (cnpjSanitizado.length > 8) {
|
|
40
|
+
cnpjFormatado =
|
|
41
|
+
cnpjFormatado.slice(0, 10) + "/" + cnpjFormatado.slice(10);
|
|
42
|
+
}
|
|
43
|
+
if (cnpjSanitizado.length > 12) {
|
|
44
|
+
cnpjFormatado =
|
|
45
|
+
cnpjFormatado.slice(0, 15) + "-" + cnpjFormatado.slice(15);
|
|
46
|
+
}
|
|
47
|
+
return cnpjFormatado.slice(0, 18);
|
|
48
|
+
}
|
|
49
|
+
validar(valor) {
|
|
50
|
+
if ((0, utils_1.isEmpty)(valor)) {
|
|
51
|
+
this._ehValido = true;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const cleanedValue = valor.replace(/\D/g, ""); // Remove non-digit characters
|
|
55
|
+
if (cleanedValue.length === 14) {
|
|
56
|
+
// CNPJ validation
|
|
57
|
+
const cnpj = cleanedValue.padStart(14, "0");
|
|
58
|
+
let sum = 0;
|
|
59
|
+
let weight = 2;
|
|
60
|
+
for (let i = 11; i >= 0; i--) {
|
|
61
|
+
sum += parseInt(cnpj.charAt(i)) * weight;
|
|
62
|
+
weight = weight === 9 ? 2 : weight + 1;
|
|
63
|
+
}
|
|
64
|
+
const mod = sum % 11;
|
|
65
|
+
const digit1 = mod < 2 ? 0 : 11 - mod;
|
|
66
|
+
if (parseInt(cnpj.charAt(12)) !== digit1) {
|
|
67
|
+
this._ehValido = "Insira um CNPJ válido";
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
sum = 0;
|
|
71
|
+
weight = 2;
|
|
72
|
+
for (let i = 12; i >= 0; i--) {
|
|
73
|
+
sum += parseInt(cnpj.charAt(i)) * weight;
|
|
74
|
+
weight = weight === 9 ? 2 : weight + 1;
|
|
75
|
+
}
|
|
76
|
+
const mod2 = sum % 11;
|
|
77
|
+
const digit2 = mod2 < 2 ? 0 : 11 - mod2;
|
|
78
|
+
if (parseInt(cnpj.charAt(13)) !== digit2) {
|
|
79
|
+
this._ehValido = "Insira um CNPJ válido";
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this._ehValido = true;
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this._ehValido = "Insira um CNPJ válido";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.default = Cnpj;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICpf } from "../types";
|
|
2
|
+
export default class Cpf implements ICpf {
|
|
3
|
+
private _valor;
|
|
4
|
+
private _ehValido;
|
|
5
|
+
constructor(nome: string);
|
|
6
|
+
set valor(v: string);
|
|
7
|
+
get valor(): string;
|
|
8
|
+
get ehValido(): string | true;
|
|
9
|
+
valueOf(): string;
|
|
10
|
+
private static sanitizar;
|
|
11
|
+
static formatar(valor: string): string;
|
|
12
|
+
validar(valor: string): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Cpf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cpf.d.ts","sourceRoot":"","sources":["../../src/valueObjects/Cpf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIhC,MAAM,CAAC,OAAO,OAAO,GAAI,YAAW,IAAI;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAuB;gBAE5B,IAAI,EAAE,MAAM;IAOxB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAIlB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,kBAEX;IAED,OAAO;IAIP,OAAO,CAAC,MAAM,CAAC,SAAS;WAIV,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAiBtC,OAAO,CAAC,KAAK,EAAE,MAAM;CAuC7B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
|
+
// TODO: Ajustar classe para o valueof ser uma função
|
|
5
|
+
class Cpf {
|
|
6
|
+
constructor(nome) {
|
|
7
|
+
this._ehValido = true;
|
|
8
|
+
nome = Cpf.formatar(nome);
|
|
9
|
+
this.validar(nome);
|
|
10
|
+
this._valor = nome;
|
|
11
|
+
}
|
|
12
|
+
set valor(v) {
|
|
13
|
+
v = Cpf.formatar(v);
|
|
14
|
+
this.validar(v);
|
|
15
|
+
this._valor = v;
|
|
16
|
+
}
|
|
17
|
+
get valor() {
|
|
18
|
+
return this._valor;
|
|
19
|
+
}
|
|
20
|
+
get ehValido() {
|
|
21
|
+
return this._ehValido;
|
|
22
|
+
}
|
|
23
|
+
valueOf() {
|
|
24
|
+
return Cpf.sanitizar(this._valor);
|
|
25
|
+
}
|
|
26
|
+
static sanitizar(valor) {
|
|
27
|
+
return valor.replace(/[^0-9]/g, "");
|
|
28
|
+
}
|
|
29
|
+
static formatar(valor) {
|
|
30
|
+
const cpfSanitizado = this.sanitizar(valor);
|
|
31
|
+
let cpfFormatado = cpfSanitizado;
|
|
32
|
+
if (cpfSanitizado.length > 3) {
|
|
33
|
+
cpfFormatado = cpfFormatado.slice(0, 3) + "." + cpfFormatado.slice(3);
|
|
34
|
+
}
|
|
35
|
+
if (cpfSanitizado.length > 6) {
|
|
36
|
+
cpfFormatado = cpfFormatado.slice(0, 7) + "." + cpfFormatado.slice(7);
|
|
37
|
+
}
|
|
38
|
+
if (cpfSanitizado.length > 9) {
|
|
39
|
+
cpfFormatado = cpfFormatado.slice(0, 11) + "-" + cpfFormatado.slice(11);
|
|
40
|
+
}
|
|
41
|
+
return cpfFormatado.slice(0, 14);
|
|
42
|
+
}
|
|
43
|
+
validar(valor) {
|
|
44
|
+
if ((0, utils_1.isEmpty)(valor)) {
|
|
45
|
+
this._ehValido = true;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const cpf = valor.replace(/\D/g, ""); // Remove caracteres não permitidos
|
|
49
|
+
if (cpf.length !== 11) {
|
|
50
|
+
this._ehValido = "CPF inválido";
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// Verifica se o CPF é uma sequência de números repetidos
|
|
54
|
+
if (/^(\d)\1+$/.test(cpf)) {
|
|
55
|
+
this._ehValido = "CPF inválido";
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Valida 1o digito
|
|
59
|
+
let add = 0;
|
|
60
|
+
for (let i = 0; i < 9; i++)
|
|
61
|
+
add += parseInt(cpf.charAt(i)) * (10 - i);
|
|
62
|
+
let rev = 11 - (add % 11);
|
|
63
|
+
if (rev === 10 || rev === 11)
|
|
64
|
+
rev = 0;
|
|
65
|
+
if (rev !== parseInt(cpf.charAt(9))) {
|
|
66
|
+
this._ehValido = "CPF inválido";
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Valida 2o digito
|
|
70
|
+
add = 0;
|
|
71
|
+
for (let i = 0; i < 10; i++)
|
|
72
|
+
add += parseInt(cpf.charAt(i)) * (11 - i);
|
|
73
|
+
rev = 11 - (add % 11);
|
|
74
|
+
if (rev === 10 || rev === 11)
|
|
75
|
+
rev = 0;
|
|
76
|
+
if (rev !== parseInt(cpf.charAt(10))) {
|
|
77
|
+
this._ehValido = "CPF inválido";
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this._ehValido = true;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.default = Cpf;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ICpfCnpj } from "../types";
|
|
2
|
+
export default class CpfCnpj implements ICpfCnpj {
|
|
3
|
+
private _valor;
|
|
4
|
+
private _ehValido;
|
|
5
|
+
constructor(nome: string);
|
|
6
|
+
set valor(v: string);
|
|
7
|
+
get valor(): string;
|
|
8
|
+
get ehValido(): string | true;
|
|
9
|
+
valueOf(): string;
|
|
10
|
+
get tipo(): "CPF" | "CNPJ" | null;
|
|
11
|
+
private static sanitizar;
|
|
12
|
+
private static formatarCpf;
|
|
13
|
+
private static formatarCnpj;
|
|
14
|
+
static formatar(valor: string): string;
|
|
15
|
+
validar(valor: string): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=CpfCnpj.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CpfCnpj.d.ts","sourceRoot":"","sources":["../../src/valueObjects/CpfCnpj.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,QAAQ;IAC9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAuB;gBAE5B,IAAI,EAAE,MAAM;IAOxB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAKlB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,kBAEX;IAED,OAAO;IAIP,IAAI,IAAI,0BASP;IAED,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,MAAM,CAAC,WAAW;IAkB1B,OAAO,CAAC,MAAM,CAAC,YAAY;WAqBb,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAatC,OAAO,CAAC,KAAK,EAAE,MAAM;CAmB7B"}
|