@arkyn/shared 1.4.52 → 2.0.1-beta.1

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 (219) hide show
  1. package/dist/formats/__test__/formatDate.spec.d.ts +2 -0
  2. package/dist/formats/__test__/formatDate.spec.d.ts.map +1 -0
  3. package/dist/formats/__test__/formatDate.spec.js +41 -0
  4. package/dist/formats/__test__/formatJsonObject.spec.d.ts +2 -0
  5. package/dist/formats/__test__/formatJsonObject.spec.d.ts.map +1 -0
  6. package/dist/formats/__test__/formatJsonObject.spec.js +76 -0
  7. package/dist/formats/__test__/formatJsonString.spec.d.ts +2 -0
  8. package/dist/formats/__test__/formatJsonString.spec.d.ts.map +1 -0
  9. package/dist/formats/__test__/formatJsonString.spec.js +71 -0
  10. package/dist/formats/__test__/formatToCep.spec.d.ts +2 -0
  11. package/dist/formats/__test__/formatToCep.spec.d.ts.map +1 -0
  12. package/dist/formats/__test__/formatToCep.spec.js +30 -0
  13. package/dist/formats/__test__/formatToCnpj.spec.d.ts +2 -0
  14. package/dist/formats/__test__/formatToCnpj.spec.d.ts.map +1 -0
  15. package/dist/formats/__test__/formatToCnpj.spec.js +27 -0
  16. package/dist/formats/__test__/formatToCpfCnpj.spec.d.ts +2 -0
  17. package/dist/formats/__test__/formatToCpfCnpj.spec.d.ts.map +1 -0
  18. package/dist/formats/__test__/formatToCpfCnpj.spec.js +32 -0
  19. package/dist/formats/__test__/formatToCurrency.spec.d.ts +2 -0
  20. package/dist/formats/__test__/formatToCurrency.spec.d.ts.map +1 -0
  21. package/dist/formats/__test__/formatToCurrency.spec.js +39 -0
  22. package/dist/formats/__test__/formatToEllipsis.spec.d.ts +2 -0
  23. package/dist/formats/__test__/formatToEllipsis.spec.d.ts.map +1 -0
  24. package/dist/formats/__test__/formatToEllipsis.spec.js +36 -0
  25. package/dist/formats/__test__/formatToHiddenDigits.spec.d.ts +2 -0
  26. package/dist/formats/__test__/formatToHiddenDigits.spec.d.ts.map +1 -0
  27. package/dist/formats/__test__/formatToHiddenDigits.spec.js +47 -0
  28. package/dist/formats/__test__/formatToPhone.spec.d.ts +2 -0
  29. package/dist/formats/__test__/formatToPhone.spec.d.ts.map +1 -0
  30. package/dist/formats/__test__/formatToPhone.spec.js +38 -0
  31. package/dist/formats/formatDate.d.ts +43 -0
  32. package/dist/formats/formatDate.d.ts.map +1 -0
  33. package/dist/formats/formatDate.js +77 -0
  34. package/dist/formats/formatJsonObject.d.ts +31 -1
  35. package/dist/formats/formatJsonObject.d.ts.map +1 -1
  36. package/dist/formats/formatJsonObject.js +67 -26
  37. package/dist/formats/formatJsonString.d.ts +37 -1
  38. package/dist/formats/formatJsonString.d.ts.map +1 -1
  39. package/dist/formats/formatJsonString.js +38 -4
  40. package/dist/formats/formatToCep.d.ts +27 -1
  41. package/dist/formats/formatToCep.d.ts.map +1 -1
  42. package/dist/formats/formatToCep.js +31 -6
  43. package/dist/formats/formatToCnpj.d.ts +30 -0
  44. package/dist/formats/formatToCnpj.d.ts.map +1 -0
  45. package/dist/formats/formatToCnpj.js +35 -0
  46. package/dist/formats/formatToCpf.d.ts +30 -0
  47. package/dist/formats/formatToCpf.d.ts.map +1 -0
  48. package/dist/formats/formatToCpf.js +35 -0
  49. package/dist/formats/formatToCpfCnpj.d.ts +22 -1
  50. package/dist/formats/formatToCpfCnpj.d.ts.map +1 -1
  51. package/dist/formats/formatToCpfCnpj.js +27 -7
  52. package/dist/formats/formatToCurrency.d.ts +29 -0
  53. package/dist/formats/formatToCurrency.d.ts.map +1 -0
  54. package/dist/formats/formatToCurrency.js +41 -0
  55. package/dist/formats/formatToEllipsis.d.ts +14 -1
  56. package/dist/formats/formatToEllipsis.d.ts.map +1 -1
  57. package/dist/formats/formatToEllipsis.js +20 -3
  58. package/dist/formats/formatToHiddenDigits.d.ts +30 -2
  59. package/dist/formats/formatToHiddenDigits.d.ts.map +1 -1
  60. package/dist/formats/formatToHiddenDigits.js +49 -3
  61. package/dist/formats/formatToPhone.d.ts +32 -1
  62. package/dist/formats/formatToPhone.d.ts.map +1 -1
  63. package/dist/formats/formatToPhone.js +128 -6
  64. package/dist/generators/__test__/generateColorByString.spec.d.ts +2 -0
  65. package/dist/generators/__test__/generateColorByString.spec.d.ts.map +1 -0
  66. package/dist/generators/__test__/generateColorByString.spec.js +31 -0
  67. package/dist/generators/__test__/generateId.spec.d.ts +2 -0
  68. package/dist/generators/__test__/generateId.spec.d.ts.map +1 -0
  69. package/dist/generators/__test__/generateId.spec.js +30 -0
  70. package/dist/generators/__test__/generateSlug.spec.d.ts +2 -0
  71. package/dist/generators/__test__/generateSlug.spec.d.ts.map +1 -0
  72. package/dist/generators/__test__/generateSlug.spec.js +38 -0
  73. package/dist/generators/generateColorByString.d.ts +13 -1
  74. package/dist/generators/generateColorByString.d.ts.map +1 -1
  75. package/dist/generators/generateColorByString.js +15 -4
  76. package/dist/generators/generateId.d.ts +26 -4
  77. package/dist/generators/generateId.d.ts.map +1 -1
  78. package/dist/generators/generateId.js +11 -5
  79. package/dist/generators/generateSlug.d.ts +15 -1
  80. package/dist/generators/generateSlug.d.ts.map +1 -1
  81. package/dist/generators/generateSlug.js +16 -2
  82. package/dist/index.d.ts +7 -10
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +7 -15
  85. package/dist/{validations/regex.d.ts → regex/index.d.ts} +1 -1
  86. package/dist/regex/index.d.ts.map +1 -0
  87. package/dist/services/__test__/calculateCardInstallment.spec.d.ts +2 -0
  88. package/dist/services/__test__/calculateCardInstallment.spec.d.ts.map +1 -0
  89. package/dist/services/__test__/calculateCardInstallment.spec.js +71 -0
  90. package/dist/services/__test__/maskSensitiveData.spec.d.ts +2 -0
  91. package/dist/services/__test__/maskSensitiveData.spec.d.ts.map +1 -0
  92. package/dist/services/__test__/maskSensitiveData.spec.js +79 -0
  93. package/dist/services/__test__/removeCurrencySymbols.spec.d.ts +2 -0
  94. package/dist/services/__test__/removeCurrencySymbols.spec.d.ts.map +1 -0
  95. package/dist/services/__test__/removeCurrencySymbols.spec.js +34 -0
  96. package/dist/services/__test__/removeNonNumeric.spec.d.ts +2 -0
  97. package/dist/services/__test__/removeNonNumeric.spec.d.ts.map +1 -0
  98. package/dist/services/__test__/removeNonNumeric.spec.js +27 -0
  99. package/dist/services/__test__/truncateLargeFields.spec.d.ts +2 -0
  100. package/dist/services/__test__/truncateLargeFields.spec.d.ts.map +1 -0
  101. package/dist/services/__test__/truncateLargeFields.spec.js +65 -0
  102. package/dist/services/calculateCardInstallment.d.ts +31 -5
  103. package/dist/services/calculateCardInstallment.d.ts.map +1 -1
  104. package/dist/services/calculateCardInstallment.js +52 -11
  105. package/dist/services/maskSensitiveData.d.ts +24 -1
  106. package/dist/services/maskSensitiveData.d.ts.map +1 -1
  107. package/dist/services/maskSensitiveData.js +24 -2
  108. package/dist/services/removeCurrencySymbols.d.ts +20 -0
  109. package/dist/services/removeCurrencySymbols.d.ts.map +1 -0
  110. package/dist/services/removeCurrencySymbols.js +23 -0
  111. package/dist/services/removeNonNumeric.d.ts +15 -0
  112. package/dist/services/removeNonNumeric.d.ts.map +1 -0
  113. package/dist/services/removeNonNumeric.js +16 -0
  114. package/dist/services/truncateLargeFields.d.ts +30 -1
  115. package/dist/services/truncateLargeFields.d.ts.map +1 -1
  116. package/dist/services/truncateLargeFields.js +34 -6
  117. package/dist/validations/__test__/validateCpf.spec.d.ts +2 -0
  118. package/dist/validations/__test__/validateCpf.spec.d.ts.map +1 -0
  119. package/dist/validations/__test__/validateCpf.spec.js +31 -0
  120. package/dist/validations/__test__/validateDate.spec.d.ts +2 -0
  121. package/dist/validations/__test__/validateDate.spec.d.ts.map +1 -0
  122. package/dist/validations/__test__/validateDate.spec.js +44 -0
  123. package/dist/validations/__test__/validatePhone.spec.d.ts +2 -0
  124. package/dist/validations/__test__/validatePhone.spec.d.ts.map +1 -0
  125. package/dist/validations/__test__/validatePhone.spec.js +32 -0
  126. package/dist/validations/validateCpf.d.ts +24 -0
  127. package/dist/validations/validateCpf.d.ts.map +1 -0
  128. package/dist/validations/validateCpf.js +56 -0
  129. package/dist/validations/validateDate.d.ts +27 -6
  130. package/dist/validations/validateDate.d.ts.map +1 -1
  131. package/dist/validations/validateDate.js +32 -6
  132. package/dist/validations/validatePhone.d.ts +27 -1
  133. package/dist/validations/validatePhone.d.ts.map +1 -1
  134. package/dist/validations/validatePhone.js +27 -2
  135. package/package.json +4 -2
  136. package/src/formats/__test__/formatDate.spec.ts +88 -0
  137. package/src/formats/__test__/formatJsonObject.spec.ts +87 -0
  138. package/src/formats/__test__/formatJsonString.spec.ts +83 -0
  139. package/src/formats/__test__/formatToCep.spec.ts +37 -0
  140. package/src/formats/__test__/formatToCnpj.spec.ts +35 -0
  141. package/src/formats/__test__/formatToCpfCnpj.spec.ts +43 -0
  142. package/src/formats/__test__/formatToCurrency.spec.ts +50 -0
  143. package/src/formats/__test__/formatToEllipsis.spec.ts +44 -0
  144. package/src/formats/__test__/formatToHiddenDigits.spec.ts +58 -0
  145. package/src/formats/__test__/formatToPhone.spec.ts +58 -0
  146. package/src/formats/formatDate.ts +97 -0
  147. package/src/formats/formatJsonObject.ts +68 -26
  148. package/src/formats/formatJsonString.ts +40 -4
  149. package/src/formats/formatToCep.ts +35 -7
  150. package/src/formats/formatToCnpj.ts +39 -0
  151. package/src/formats/formatToCpf.ts +39 -0
  152. package/src/formats/formatToCpfCnpj.ts +31 -7
  153. package/src/formats/formatToCurrency.ts +53 -0
  154. package/src/formats/formatToEllipsis.ts +23 -3
  155. package/src/formats/formatToHiddenDigits.ts +75 -7
  156. package/src/formats/formatToPhone.ts +156 -6
  157. package/src/generators/__test__/generateColorByString.spec.ts +37 -0
  158. package/src/generators/__test__/generateId.spec.ts +44 -0
  159. package/src/generators/__test__/generateSlug.spec.ts +47 -0
  160. package/src/generators/generateColorByString.ts +18 -4
  161. package/src/generators/generateId.ts +36 -5
  162. package/src/generators/generateSlug.ts +17 -2
  163. package/src/index.ts +7 -15
  164. package/src/services/__test__/calculateCardInstallment.spec.ts +87 -0
  165. package/src/services/__test__/maskSensitiveData.spec.ts +102 -0
  166. package/src/services/__test__/removeCurrencySymbols.spec.ts +41 -0
  167. package/src/services/__test__/removeNonNumeric.spec.ts +33 -0
  168. package/src/services/__test__/truncateLargeFields.spec.ts +90 -0
  169. package/src/services/calculateCardInstallment.ts +57 -12
  170. package/src/services/maskSensitiveData.ts +29 -4
  171. package/src/services/removeCurrencySymbols.ts +25 -0
  172. package/src/services/removeNonNumeric.ts +18 -0
  173. package/src/services/truncateLargeFields.ts +40 -6
  174. package/src/validations/__test__/validateCpf.spec.ts +38 -0
  175. package/src/validations/__test__/validateDate.spec.ts +81 -0
  176. package/src/validations/__test__/validatePhone.spec.ts +39 -0
  177. package/src/validations/validateCpf.ts +64 -0
  178. package/src/validations/validateDate.ts +33 -11
  179. package/src/validations/validatePhone.ts +29 -2
  180. package/vitest.config.ts +5 -0
  181. package/dist/formats/formatBrazilianDateHour.d.ts +0 -3
  182. package/dist/formats/formatBrazilianDateHour.d.ts.map +0 -1
  183. package/dist/formats/formatBrazilianDateHour.js +0 -12
  184. package/dist/formats/formatBrazilianDateToDate.d.ts +0 -3
  185. package/dist/formats/formatBrazilianDateToDate.d.ts.map +0 -1
  186. package/dist/formats/formatBrazilianDateToDate.js +0 -9
  187. package/dist/formats/formatDateHour.d.ts +0 -3
  188. package/dist/formats/formatDateHour.d.ts.map +0 -1
  189. package/dist/formats/formatDateHour.js +0 -11
  190. package/dist/formats/formatToBRL.d.ts +0 -3
  191. package/dist/formats/formatToBRL.d.ts.map +0 -1
  192. package/dist/formats/formatToBRL.js +0 -8
  193. package/dist/formats/formatToCNPJ.d.ts +0 -3
  194. package/dist/formats/formatToCNPJ.d.ts.map +0 -1
  195. package/dist/formats/formatToCNPJ.js +0 -9
  196. package/dist/formats/formatToCPF.d.ts +0 -3
  197. package/dist/formats/formatToCPF.d.ts.map +0 -1
  198. package/dist/formats/formatToCPF.js +0 -9
  199. package/dist/parsers/parseToCharacters.d.ts +0 -17
  200. package/dist/parsers/parseToCharacters.d.ts.map +0 -1
  201. package/dist/parsers/parseToCharacters.js +0 -13
  202. package/dist/services/range.d.ts +0 -4
  203. package/dist/services/range.d.ts.map +0 -1
  204. package/dist/services/range.js +0 -9
  205. package/dist/validations/regex.d.ts.map +0 -1
  206. package/dist/validations/validateCPF.d.ts +0 -3
  207. package/dist/validations/validateCPF.d.ts.map +0 -1
  208. package/dist/validations/validateCPF.js +0 -36
  209. package/src/formats/formatBrazilianDateHour.ts +0 -17
  210. package/src/formats/formatBrazilianDateToDate.ts +0 -13
  211. package/src/formats/formatDateHour.ts +0 -15
  212. package/src/formats/formatToBRL.ts +0 -10
  213. package/src/formats/formatToCNPJ.ts +0 -10
  214. package/src/formats/formatToCPF.ts +0 -10
  215. package/src/parsers/parseToCharacters.ts +0 -34
  216. package/src/services/range.ts +0 -15
  217. package/src/validations/validateCPF.ts +0 -38
  218. /package/dist/{validations/regex.js → regex/index.js} +0 -0
  219. /package/src/{validations/regex.ts → regex/index.ts} +0 -0
@@ -1,3 +0,0 @@
1
- declare function formatToCNPJ(value: string): string;
2
- export { formatToCNPJ };
3
- //# sourceMappingURL=formatToCNPJ.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatToCNPJ.d.ts","sourceRoot":"","sources":["../../src/formats/formatToCNPJ.ts"],"names":[],"mappings":"AAAA,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,9 +0,0 @@
1
- function formatToCNPJ(value) {
2
- const cleaned = value.replace(/\D/g, "");
3
- const match = cleaned.match(/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/);
4
- if (match) {
5
- return `${match[1]}.${match[2]}.${match[3]}/${match[4]}-${match[5]}`;
6
- }
7
- return value;
8
- }
9
- export { formatToCNPJ };
@@ -1,3 +0,0 @@
1
- declare function formatToCPF(value: string): string;
2
- export { formatToCPF };
3
- //# sourceMappingURL=formatToCPF.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatToCPF.d.ts","sourceRoot":"","sources":["../../src/formats/formatToCPF.ts"],"names":[],"mappings":"AAAA,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO1C;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,9 +0,0 @@
1
- function formatToCPF(value) {
2
- const cleaned = value.replace(/\D/g, "");
3
- const match = cleaned.match(/^(\d{3})(\d{3})(\d{3})(\d{2})$/);
4
- if (match) {
5
- return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;
6
- }
7
- return value;
8
- }
9
- export { formatToCPF };
@@ -1,17 +0,0 @@
1
- type DigitCharacterNode = {
2
- kind: "digit";
3
- digit: number;
4
- character: string;
5
- };
6
- type OtherCharacterNode = {
7
- kind: "other";
8
- character: string;
9
- };
10
- type RootCharacterNode = {
11
- kind: "root";
12
- digits: number;
13
- children: (DigitCharacterNode | OtherCharacterNode)[];
14
- };
15
- declare const parseToCharacters: (value: string) => RootCharacterNode;
16
- export { parseToCharacters };
17
- //# sourceMappingURL=parseToCharacters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseToCharacters.d.ts","sourceRoot":"","sources":["../../src/parsers/parseToCharacters.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,EAAE,CAAC;CACvD,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,iBAY1C,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,13 +0,0 @@
1
- const DIGIT = /^\d$/;
2
- const parseToCharacters = (value) => {
3
- let digits = 0;
4
- const children = value
5
- .split("")
6
- .map((character) => {
7
- if (DIGIT.test(character))
8
- return { character, kind: "digit", digit: ++digits };
9
- return { character, kind: "other" };
10
- });
11
- return { digits, children, kind: "root" };
12
- };
13
- export { parseToCharacters };
@@ -1,4 +0,0 @@
1
- declare const normalizeRange: (range: number | [number, number], limit: number) => [number, number];
2
- declare const within: (range: [number, number], value: number) => boolean;
3
- export { normalizeRange, within };
4
- //# sourceMappingURL=range.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/services/range.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,GAClB,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,MAAM,KACZ,CAAC,MAAM,EAAE,MAAM,CAMjB,CAAC;AAEF,QAAA,MAAM,MAAM,GAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,MAAM,KAAG,OACjB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC"}
@@ -1,9 +0,0 @@
1
- const normalizeRange = (range, limit) => {
2
- if (Array.isArray(range))
3
- return range;
4
- if (range >= 0)
5
- return [0, range];
6
- return [limit + 1 - Math.abs(range), limit];
7
- };
8
- const within = (range, value) => value >= range[0] && value <= range[1];
9
- export { normalizeRange, within };
@@ -1 +0,0 @@
1
- {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../src/validations/regex.ts"],"names":[],"mappings":"AA0BA,QAAA,MAAM,KAAK;;;;;;;;;;;;CAYV,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- declare function validateCPF(rawCpf: string): boolean;
2
- export { validateCPF };
3
- //# sourceMappingURL=validateCPF.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateCPF.d.ts","sourceRoot":"","sources":["../../src/validations/validateCPF.ts"],"names":[],"mappings":"AA2BA,iBAAS,WAAW,CAAC,MAAM,EAAE,MAAM,WAQlC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,36 +0,0 @@
1
- function removeNonDigits(cpf) {
2
- return cpf.replace(/\D/g, "");
3
- }
4
- function isInvalidLength(cpf) {
5
- const CPF_LENGTH = 11;
6
- return cpf.length !== CPF_LENGTH;
7
- }
8
- function hasAllDigitsEqual(cpf) {
9
- const [firstCpfDigit] = cpf;
10
- return [...cpf].every((digit) => digit === firstCpfDigit);
11
- }
12
- function calculateDigit(cpf, factor) {
13
- let total = 0;
14
- for (const digit of cpf) {
15
- if (factor > 1)
16
- total += parseInt(digit) * factor--;
17
- }
18
- const rest = total % 11;
19
- return rest < 2 ? 0 : 11 - rest;
20
- }
21
- function extractDigit(cpf) {
22
- return cpf.slice(9);
23
- }
24
- function validateCPF(rawCpf) {
25
- if (!rawCpf)
26
- return false;
27
- const cpf = removeNonDigits(rawCpf);
28
- if (isInvalidLength(cpf))
29
- return false;
30
- if (hasAllDigitsEqual(cpf))
31
- return false;
32
- const digit1 = calculateDigit(cpf, 10);
33
- const digit2 = calculateDigit(cpf, 11);
34
- return extractDigit(cpf) === `${digit1}${digit2}`;
35
- }
36
- export { validateCPF };
@@ -1,17 +0,0 @@
1
- import { regex } from "../validations/regex";
2
-
3
- function formatBrazilianDateHour(date: string, hour: string) {
4
- if (regex.HOUR.test(hour) === false) throw new Error("Invalid hour format");
5
-
6
- const [day, month, year] = date.split("/").map(Number);
7
-
8
- const dateHour = new Date(`${year}-${month}-${day}`);
9
- const [hours, minutes] = hour.split(":").map(Number);
10
-
11
- dateHour.setUTCHours(hours);
12
- dateHour.setUTCMinutes(minutes);
13
-
14
- return dateHour;
15
- }
16
-
17
- export { formatBrazilianDateHour };
@@ -1,13 +0,0 @@
1
- import { regex } from "../validations/regex";
2
-
3
- function formatBrazilianDateToDate(brazilianData: string) {
4
- if (regex.DATE.test(brazilianData) === false)
5
- throw new Error("Invalid date format");
6
-
7
- const [day, month, year] = brazilianData.split("/").map(Number);
8
- const formattedDate = `${year}-${month}-${day}`;
9
-
10
- return new Date(formattedDate);
11
- }
12
-
13
- export { formatBrazilianDateToDate };
@@ -1,15 +0,0 @@
1
- import { regex } from "../validations/regex";
2
-
3
- function formatDateHour(date: string, hour: string) {
4
- if (regex.HOUR.test(hour) === false) throw new Error("Invalid hour format");
5
-
6
- const dateHour = new Date(date);
7
- const [hours, minutes] = hour.split(":").map(Number);
8
-
9
- dateHour.setUTCHours(hours);
10
- dateHour.setUTCMinutes(minutes);
11
-
12
- return dateHour;
13
- }
14
-
15
- export { formatDateHour };
@@ -1,10 +0,0 @@
1
- function formatToBRL(value: number, showPrefix = true) {
2
- const format = new Intl.NumberFormat("pt-BR", {
3
- style: "currency",
4
- currency: "BRL",
5
- }).format(value);
6
-
7
- return showPrefix ? format : format.replace("R$", "").trim();
8
- }
9
-
10
- export { formatToBRL };
@@ -1,10 +0,0 @@
1
- function formatToCNPJ(value: string): string {
2
- const cleaned = value.replace(/\D/g, "");
3
- const match = cleaned.match(/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/);
4
- if (match) {
5
- return `${match[1]}.${match[2]}.${match[3]}/${match[4]}-${match[5]}`;
6
- }
7
- return value;
8
- }
9
-
10
- export { formatToCNPJ };
@@ -1,10 +0,0 @@
1
- function formatToCPF(value: string): string {
2
- const cleaned = value.replace(/\D/g, "");
3
- const match = cleaned.match(/^(\d{3})(\d{3})(\d{3})(\d{2})$/);
4
- if (match) {
5
- return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;
6
- }
7
- return value;
8
- }
9
-
10
- export { formatToCPF };
@@ -1,34 +0,0 @@
1
- const DIGIT = /^\d$/;
2
-
3
- type DigitCharacterNode = {
4
- kind: "digit";
5
- digit: number;
6
- character: string;
7
- };
8
-
9
- type OtherCharacterNode = {
10
- kind: "other";
11
- character: string;
12
- };
13
-
14
- type RootCharacterNode = {
15
- kind: "root";
16
- digits: number;
17
- children: (DigitCharacterNode | OtherCharacterNode)[];
18
- };
19
-
20
- const parseToCharacters = (value: string): RootCharacterNode => {
21
- let digits = 0;
22
-
23
- const children = value
24
- .split("")
25
- .map((character: string): DigitCharacterNode | OtherCharacterNode => {
26
- if (DIGIT.test(character))
27
- return { character, kind: "digit", digit: ++digits };
28
- return { character, kind: "other" };
29
- });
30
-
31
- return { digits, children, kind: "root" };
32
- };
33
-
34
- export { parseToCharacters };
@@ -1,15 +0,0 @@
1
- const normalizeRange = (
2
- range: number | [number, number],
3
- limit: number
4
- ): [number, number] => {
5
- if (Array.isArray(range)) return range;
6
-
7
- if (range >= 0) return [0, range];
8
-
9
- return [limit + 1 - Math.abs(range), limit];
10
- };
11
-
12
- const within = (range: [number, number], value: number): boolean =>
13
- value >= range[0] && value <= range[1];
14
-
15
- export { normalizeRange, within };
@@ -1,38 +0,0 @@
1
- function removeNonDigits(cpf: string) {
2
- return cpf.replace(/\D/g, "");
3
- }
4
-
5
- function isInvalidLength(cpf: string) {
6
- const CPF_LENGTH = 11;
7
- return cpf.length !== CPF_LENGTH;
8
- }
9
-
10
- function hasAllDigitsEqual(cpf: string) {
11
- const [firstCpfDigit] = cpf;
12
- return [...cpf].every((digit) => digit === firstCpfDigit);
13
- }
14
-
15
- function calculateDigit(cpf: string, factor: number) {
16
- let total = 0;
17
- for (const digit of cpf) {
18
- if (factor > 1) total += parseInt(digit) * factor--;
19
- }
20
- const rest = total % 11;
21
- return rest < 2 ? 0 : 11 - rest;
22
- }
23
-
24
- function extractDigit(cpf: string) {
25
- return cpf.slice(9);
26
- }
27
-
28
- function validateCPF(rawCpf: string) {
29
- if (!rawCpf) return false;
30
- const cpf = removeNonDigits(rawCpf);
31
- if (isInvalidLength(cpf)) return false;
32
- if (hasAllDigitsEqual(cpf)) return false;
33
- const digit1 = calculateDigit(cpf, 10);
34
- const digit2 = calculateDigit(cpf, 11);
35
- return extractDigit(cpf) === `${digit1}${digit2}`;
36
- }
37
-
38
- export { validateCPF };
File without changes
File without changes