@leaderty/utils 3.1.0 → 3.2.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/README.md +32 -0
- package/dist/bank.d.ts +10 -0
- package/dist/bank.js +27 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -135,6 +135,38 @@ Formats a number with two decimals and thousands separators. Rounds like `number
|
|
|
135
135
|
numberToDecimalString(1234.56) // "1.234,56"
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
+
### `isCbu(value)`
|
|
139
|
+
|
|
140
|
+
Indica si `value` es un CBU o una CVU válido: 22 dígitos con sus dos dígitos verificadores, calculados con la clave del BCRA (Com. "A" 8303). No dice si la cuenta existe.
|
|
141
|
+
|
|
142
|
+
**Parámetros:**
|
|
143
|
+
- `value` - `string`, solo dígitos (sin espacios ni guiones)
|
|
144
|
+
|
|
145
|
+
**Devuelve:** `boolean`
|
|
146
|
+
|
|
147
|
+
**Ejemplos:**
|
|
148
|
+
```typescript
|
|
149
|
+
isCbu('2850590940090418135201') // true
|
|
150
|
+
isCbu('2850590940090418135202') // false: verificador de cuenta incorrecto
|
|
151
|
+
isCbu('28505909 40090418135201') // false
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### `isAlias(value)`
|
|
155
|
+
|
|
156
|
+
Indica si `value` tiene la forma de un alias de CBU o CVU: de 6 a 20 caracteres entre letras sin ñ ni acentos, números, punto y guion. No dice si el alias existe.
|
|
157
|
+
|
|
158
|
+
**Parámetros:**
|
|
159
|
+
- `value` - `string`
|
|
160
|
+
|
|
161
|
+
**Devuelve:** `boolean`
|
|
162
|
+
|
|
163
|
+
**Ejemplos:**
|
|
164
|
+
```typescript
|
|
165
|
+
isAlias('casa.sol.azul') // true
|
|
166
|
+
isAlias('año.casa') // false
|
|
167
|
+
isAlias('casa') // false: menos de 6 caracteres
|
|
168
|
+
```
|
|
169
|
+
|
|
138
170
|
## Types
|
|
139
171
|
|
|
140
172
|
`Currency`, `NumberToMoneyOptions` and `DateToShortOptions` are exported for consumers.
|
package/dist/bank.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indica si `value` es un CBU o una CVU: 22 dígitos con sus dos dígitos verificadores
|
|
3
|
+
* (el de banco y sucursal, y el de cuenta).
|
|
4
|
+
*/
|
|
5
|
+
export declare function isCbu(value: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Indica si `value` puede ser un alias de CBU o CVU: de 6 a 20 caracteres entre letras sin ñ ni acentos,
|
|
8
|
+
* números, punto y guion. No dice si el alias existe.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isAlias(value: string): boolean;
|
package/dist/bank.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Clave de verificación del BCRA (Com. "A" 8303, puntos 1.1 y 2.3): pesos 7139 repetidos, alineados a la
|
|
2
|
+
// derecha (de derecha a izquierda, 3 1 7 9); el verificador completa la suma hasta la decena siguiente.
|
|
3
|
+
const WEIGHTS = [3, 1, 7, 9];
|
|
4
|
+
function checkDigit(digits) {
|
|
5
|
+
let sum = 0;
|
|
6
|
+
for (let i = 0; i < digits.length; i++) {
|
|
7
|
+
sum += Number(digits[digits.length - 1 - i]) * WEIGHTS[i % WEIGHTS.length];
|
|
8
|
+
}
|
|
9
|
+
return (10 - (sum % 10)) % 10;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Indica si `value` es un CBU o una CVU: 22 dígitos con sus dos dígitos verificadores
|
|
13
|
+
* (el de banco y sucursal, y el de cuenta).
|
|
14
|
+
*/
|
|
15
|
+
export function isCbu(value) {
|
|
16
|
+
if (!/^\d{22}$/.test(value))
|
|
17
|
+
return false;
|
|
18
|
+
return (checkDigit(value.slice(0, 7)) === Number(value[7]) &&
|
|
19
|
+
checkDigit(value.slice(8, 21)) === Number(value[21]));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Indica si `value` puede ser un alias de CBU o CVU: de 6 a 20 caracteres entre letras sin ñ ni acentos,
|
|
23
|
+
* números, punto y guion. No dice si el alias existe.
|
|
24
|
+
*/
|
|
25
|
+
export function isAlias(value) {
|
|
26
|
+
return /^[A-Za-z0-9.-]{6,20}$/.test(value);
|
|
27
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare function numberToDecimalString(numero: number): string;
|
|
|
6
6
|
/** @deprecated Renamed to {@link numberToDecimalString}. */
|
|
7
7
|
export declare const numberToStringWithDecimals: typeof numberToDecimalString;
|
|
8
8
|
export { numberToMoney, moneyToNumber, dateToShort, dateToYMD, dateToMonthYearLong, type Currency, type NumberToMoneyOptions, type DateToShortOptions, } from './format.js';
|
|
9
|
+
export { isAlias, isCbu } from './bank.js';
|
package/dist/index.js
CHANGED
|
@@ -9,3 +9,4 @@ export function numberToDecimalString(numero) {
|
|
|
9
9
|
/** @deprecated Renamed to {@link numberToDecimalString}. */
|
|
10
10
|
export const numberToStringWithDecimals = numberToDecimalString;
|
|
11
11
|
export { numberToMoney, moneyToNumber, dateToShort, dateToYMD, dateToMonthYearLong, } from './format.js';
|
|
12
|
+
export { isAlias, isCbu } from './bank.js';
|