@fiado/type-kit 3.339.0 → 3.341.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/bin/common/constants/CreditIdPattern.d.ts +8 -0
- package/bin/common/constants/CreditIdPattern.js +11 -0
- package/bin/loanCredit/constants/CreditIdPattern.d.ts +3 -5
- package/bin/loanCredit/constants/CreditIdPattern.js +6 -6
- package/bin/mdm/dtos/DeviceEnrollRequest.js +2 -1
- package/bin/places/dtos/EstablishmentDto.d.ts +25 -1
- package/bin/places/dtos/EstablishmentDto.js +7 -1
- package/bin/places/dtos/GetNearbyPlacesResponse.d.ts +5 -2
- package/bin/places/dtos/GetNearbyPlacesResponse.js +5 -0
- package/package.json +1 -1
- package/src/common/constants/CreditIdPattern.ts +9 -0
- package/src/loanCredit/constants/CreditIdPattern.ts +3 -6
- package/src/mdm/dtos/DeviceEnrollRequest.ts +3 -2
- package/src/places/dtos/EstablishmentDto.ts +32 -1
- package/src/places/dtos/GetNearbyPlacesResponse.ts +5 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formato del identificador de crédito: ULID canónico de 26 chars en Crockford base32.
|
|
3
|
+
* `loan-credit-business` lo genera con `ulid()`, no con UUID — validar UUID rechaza todos los
|
|
4
|
+
* créditos reales. Vive en `common` porque lo comparten el contrato de `loanCredit` y el de `mdm`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CREDIT_ID_PATTERN: RegExp;
|
|
7
|
+
/** Mensaje único, para que el caller no tenga que adivinar el formato. */
|
|
8
|
+
export declare const CREDIT_ID_MESSAGE = "creditId debe ser un ULID de 26 caracteres";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CREDIT_ID_MESSAGE = exports.CREDIT_ID_PATTERN = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Formato del identificador de crédito: ULID canónico de 26 chars en Crockford base32.
|
|
6
|
+
* `loan-credit-business` lo genera con `ulid()`, no con UUID — validar UUID rechaza todos los
|
|
7
|
+
* créditos reales. Vive en `common` porque lo comparten el contrato de `loanCredit` y el de `mdm`.
|
|
8
|
+
*/
|
|
9
|
+
exports.CREDIT_ID_PATTERN = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/;
|
|
10
|
+
/** Mensaje único, para que el caller no tenga que adivinar el formato. */
|
|
11
|
+
exports.CREDIT_ID_MESSAGE = 'creditId debe ser un ULID de 26 caracteres';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* El formato del `creditId` vive en `common`: lo comparten este contrato y el de `mdm`.
|
|
3
|
+
* Se re-exporta acá para no romper a quien ya lo importaba desde `loanCredit`.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
6
|
-
/** Mensaje único de los 6 endpoints de dispositivo, para que el caller no adivine el formato. */
|
|
7
|
-
export declare const CREDIT_ID_MESSAGE = "creditId debe ser un ULID de 26 caracteres";
|
|
5
|
+
export { CREDIT_ID_MESSAGE, CREDIT_ID_PATTERN } from '../../common/constants/CreditIdPattern';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CREDIT_ID_PATTERN = exports.CREDIT_ID_MESSAGE = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* El formato del `creditId` vive en `common`: lo comparten este contrato y el de `mdm`.
|
|
6
|
+
* Se re-exporta acá para no romper a quien ya lo importaba desde `loanCredit`.
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports
|
|
8
|
+
var CreditIdPattern_1 = require("../../common/constants/CreditIdPattern");
|
|
9
|
+
Object.defineProperty(exports, "CREDIT_ID_MESSAGE", { enumerable: true, get: function () { return CreditIdPattern_1.CREDIT_ID_MESSAGE; } });
|
|
10
|
+
Object.defineProperty(exports, "CREDIT_ID_PATTERN", { enumerable: true, get: function () { return CreditIdPattern_1.CREDIT_ID_PATTERN; } });
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.DeviceEnrollRequest = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
|
+
const CreditIdPattern_1 = require("../../common/constants/CreditIdPattern");
|
|
15
16
|
class DeviceEnrollRequest {
|
|
16
17
|
}
|
|
17
18
|
exports.DeviceEnrollRequest = DeviceEnrollRequest;
|
|
@@ -41,7 +42,7 @@ __decorate([
|
|
|
41
42
|
], DeviceEnrollRequest.prototype, "model", void 0);
|
|
42
43
|
__decorate([
|
|
43
44
|
(0, class_transformer_1.Expose)(),
|
|
44
|
-
(0, class_validator_1.
|
|
45
|
+
(0, class_validator_1.Matches)(CreditIdPattern_1.CREDIT_ID_PATTERN, { message: CreditIdPattern_1.CREDIT_ID_MESSAGE }),
|
|
45
46
|
__metadata("design:type", String)
|
|
46
47
|
], DeviceEnrollRequest.prototype, "creditId", void 0);
|
|
47
48
|
__decorate([
|
|
@@ -3,7 +3,13 @@ import { CashInNetworkEnum } from '../enums/CashInNetworkEnum';
|
|
|
3
3
|
import { CashInProviderEnum } from '../enums/CashInProviderEnum';
|
|
4
4
|
import { EstablishmentBrandEnum } from '../enums/EstablishmentBrandEnum';
|
|
5
5
|
/**
|
|
6
|
-
* Establecimiento (punto de cash-in)
|
|
6
|
+
* Establecimiento (punto de cash-in).
|
|
7
|
+
*
|
|
8
|
+
* Es la forma ÚNICA con la que la app ve un punto de cash-in, sin importar de dónde salió:
|
|
9
|
+
* del cache de HERE (búsqueda por marca) o del directorio en vivo de un proveedor de fondeo.
|
|
10
|
+
* Quien decide la fuente es la config del lambda, y el cliente no se enfrenta a dos shapes:
|
|
11
|
+
* los campos que una fuente no puede llenar simplemente vienen ausentes.
|
|
12
|
+
*
|
|
7
13
|
* Response DTO — sin decoradores de validación.
|
|
8
14
|
*/
|
|
9
15
|
export declare class EstablishmentDto {
|
|
@@ -25,4 +31,22 @@ export declare class EstablishmentDto {
|
|
|
25
31
|
country?: CountryId;
|
|
26
32
|
/** Red Passport (OXXO/SUPERMERCADO/TIENDITA). En US no aplica. */
|
|
27
33
|
network?: CashInNetworkEnum;
|
|
34
|
+
/**
|
|
35
|
+
* Comisión que el CLIENTE paga EN LA CAJA, encima de su depósito. No es la de Fiado.
|
|
36
|
+
*
|
|
37
|
+
* Va en la respuesta para que la app la muestre en el pin ANTES de mandar al cliente a
|
|
38
|
+
* la tienda: enterarse en el mostrador es la peor forma de enterarse.
|
|
39
|
+
*/
|
|
40
|
+
cashInFrontFee?: number | null;
|
|
41
|
+
/** Tope por operación que acepta esa caja. Junto con la comisión, decide si el punto sirve. */
|
|
42
|
+
maxDepositAmount?: number | null;
|
|
43
|
+
/** Horario de atención en formato HH:mm, tal como lo informa el proveedor. */
|
|
44
|
+
openingTime?: string | null;
|
|
45
|
+
closingTime?: string | null;
|
|
46
|
+
/** Teléfono del punto. Muchos proveedores no lo informan. */
|
|
47
|
+
phone?: string | null;
|
|
48
|
+
/** Logo del comercio, para el pin o el carrusel. */
|
|
49
|
+
imageUrl?: string | null;
|
|
50
|
+
/** Imagen de ejemplo del código que el cajero escanea. */
|
|
51
|
+
sampleQr?: string | null;
|
|
28
52
|
}
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EstablishmentDto = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Establecimiento (punto de cash-in)
|
|
5
|
+
* Establecimiento (punto de cash-in).
|
|
6
|
+
*
|
|
7
|
+
* Es la forma ÚNICA con la que la app ve un punto de cash-in, sin importar de dónde salió:
|
|
8
|
+
* del cache de HERE (búsqueda por marca) o del directorio en vivo de un proveedor de fondeo.
|
|
9
|
+
* Quien decide la fuente es la config del lambda, y el cliente no se enfrenta a dos shapes:
|
|
10
|
+
* los campos que una fuente no puede llenar simplemente vienen ausentes.
|
|
11
|
+
*
|
|
6
12
|
* Response DTO — sin decoradores de validación.
|
|
7
13
|
*/
|
|
8
14
|
class EstablishmentDto {
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { EstablishmentDto } from './EstablishmentDto';
|
|
2
2
|
import { OfficeDto } from '../../offices/dtos/OfficeDto';
|
|
3
|
-
import { FundingStoreItem } from '../../walletFunding/dtos/FundingStoreItem';
|
|
4
3
|
/**
|
|
5
4
|
* Respuesta de la búsqueda unificada. Solo se incluyen los tipos pedidos en `types`.
|
|
5
|
+
*
|
|
6
|
+
* Un campo por tipo de lugar, y el campo NO cambia según de dónde salió el dato: si
|
|
7
|
+
* `cashInMx` se resuelve contra el cache de HERE o contra el directorio en vivo de un
|
|
8
|
+
* proveedor de fondeo, la app lee el mismo campo con el mismo shape. El ruteo es una
|
|
9
|
+
* decisión del lambda, no algo que el cliente tenga que interpretar.
|
|
6
10
|
*/
|
|
7
11
|
export declare class GetNearbyPlacesResponse {
|
|
8
12
|
cashInUs?: EstablishmentDto[];
|
|
9
13
|
cashInMx?: EstablishmentDto[];
|
|
10
|
-
cashInMxStores?: FundingStoreItem[];
|
|
11
14
|
officeFiado?: OfficeDto[];
|
|
12
15
|
storeFiado?: OfficeDto[];
|
|
13
16
|
}
|
|
@@ -3,6 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GetNearbyPlacesResponse = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Respuesta de la búsqueda unificada. Solo se incluyen los tipos pedidos en `types`.
|
|
6
|
+
*
|
|
7
|
+
* Un campo por tipo de lugar, y el campo NO cambia según de dónde salió el dato: si
|
|
8
|
+
* `cashInMx` se resuelve contra el cache de HERE o contra el directorio en vivo de un
|
|
9
|
+
* proveedor de fondeo, la app lee el mismo campo con el mismo shape. El ruteo es una
|
|
10
|
+
* decisión del lambda, no algo que el cliente tenga que interpretar.
|
|
6
11
|
*/
|
|
7
12
|
class GetNearbyPlacesResponse {
|
|
8
13
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formato del identificador de crédito: ULID canónico de 26 chars en Crockford base32.
|
|
3
|
+
* `loan-credit-business` lo genera con `ulid()`, no con UUID — validar UUID rechaza todos los
|
|
4
|
+
* créditos reales. Vive en `common` porque lo comparten el contrato de `loanCredit` y el de `mdm`.
|
|
5
|
+
*/
|
|
6
|
+
export const CREDIT_ID_PATTERN = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/;
|
|
7
|
+
|
|
8
|
+
/** Mensaje único, para que el caller no tenga que adivinar el formato. */
|
|
9
|
+
export const CREDIT_ID_MESSAGE = 'creditId debe ser un ULID de 26 caracteres';
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* El formato del `creditId` vive en `common`: lo comparten este contrato y el de `mdm`.
|
|
3
|
+
* Se re-exporta acá para no romper a quien ya lo importaba desde `loanCredit`.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
/** Mensaje único de los 6 endpoints de dispositivo, para que el caller no adivine el formato. */
|
|
8
|
-
export const CREDIT_ID_MESSAGE = 'creditId debe ser un ULID de 26 caracteres';
|
|
5
|
+
export { CREDIT_ID_MESSAGE, CREDIT_ID_PATTERN } from '../../common/constants/CreditIdPattern';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Expose } from "class-transformer";
|
|
2
|
-
import { IsString, IsNotEmpty, IsOptional, IsNumber, IsPositive,
|
|
2
|
+
import { IsString, IsNotEmpty, IsOptional, IsNumber, IsPositive, Matches } from "class-validator";
|
|
3
|
+
import { CREDIT_ID_MESSAGE, CREDIT_ID_PATTERN } from "../../common/constants/CreditIdPattern";
|
|
3
4
|
|
|
4
5
|
export class DeviceEnrollRequest {
|
|
5
6
|
@Expose()
|
|
@@ -23,7 +24,7 @@ export class DeviceEnrollRequest {
|
|
|
23
24
|
model?: string;
|
|
24
25
|
|
|
25
26
|
@Expose()
|
|
26
|
-
@
|
|
27
|
+
@Matches(CREDIT_ID_PATTERN, { message: CREDIT_ID_MESSAGE })
|
|
27
28
|
creditId: string;
|
|
28
29
|
|
|
29
30
|
@Expose()
|
|
@@ -4,7 +4,13 @@ import { CashInProviderEnum } from '../enums/CashInProviderEnum';
|
|
|
4
4
|
import { EstablishmentBrandEnum } from '../enums/EstablishmentBrandEnum';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Establecimiento (punto de cash-in)
|
|
7
|
+
* Establecimiento (punto de cash-in).
|
|
8
|
+
*
|
|
9
|
+
* Es la forma ÚNICA con la que la app ve un punto de cash-in, sin importar de dónde salió:
|
|
10
|
+
* del cache de HERE (búsqueda por marca) o del directorio en vivo de un proveedor de fondeo.
|
|
11
|
+
* Quien decide la fuente es la config del lambda, y el cliente no se enfrenta a dos shapes:
|
|
12
|
+
* los campos que una fuente no puede llenar simplemente vienen ausentes.
|
|
13
|
+
*
|
|
8
14
|
* Response DTO — sin decoradores de validación.
|
|
9
15
|
*/
|
|
10
16
|
export class EstablishmentDto {
|
|
@@ -27,4 +33,29 @@ export class EstablishmentDto {
|
|
|
27
33
|
country?: CountryId;
|
|
28
34
|
/** Red Passport (OXXO/SUPERMERCADO/TIENDITA). En US no aplica. */
|
|
29
35
|
network?: CashInNetworkEnum;
|
|
36
|
+
|
|
37
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
38
|
+
// Datos que sólo informa un directorio en vivo del proveedor (aditivos, opcionales).
|
|
39
|
+
// El cache de HERE no los tiene: HERE sabe dónde está una tienda, no qué cobra.
|
|
40
|
+
// `null` = el proveedor los expone pero no informó valor; ausente = la fuente ni los maneja.
|
|
41
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Comisión que el CLIENTE paga EN LA CAJA, encima de su depósito. No es la de Fiado.
|
|
45
|
+
*
|
|
46
|
+
* Va en la respuesta para que la app la muestre en el pin ANTES de mandar al cliente a
|
|
47
|
+
* la tienda: enterarse en el mostrador es la peor forma de enterarse.
|
|
48
|
+
*/
|
|
49
|
+
cashInFrontFee?: number | null;
|
|
50
|
+
/** Tope por operación que acepta esa caja. Junto con la comisión, decide si el punto sirve. */
|
|
51
|
+
maxDepositAmount?: number | null;
|
|
52
|
+
/** Horario de atención en formato HH:mm, tal como lo informa el proveedor. */
|
|
53
|
+
openingTime?: string | null;
|
|
54
|
+
closingTime?: string | null;
|
|
55
|
+
/** Teléfono del punto. Muchos proveedores no lo informan. */
|
|
56
|
+
phone?: string | null;
|
|
57
|
+
/** Logo del comercio, para el pin o el carrusel. */
|
|
58
|
+
imageUrl?: string | null;
|
|
59
|
+
/** Imagen de ejemplo del código que el cajero escanea. */
|
|
60
|
+
sampleQr?: string | null;
|
|
30
61
|
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { EstablishmentDto } from './EstablishmentDto';
|
|
2
2
|
import { OfficeDto } from '../../offices/dtos/OfficeDto';
|
|
3
|
-
import { FundingStoreItem } from '../../walletFunding/dtos/FundingStoreItem';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* Respuesta de la búsqueda unificada. Solo se incluyen los tipos pedidos en `types`.
|
|
6
|
+
*
|
|
7
|
+
* Un campo por tipo de lugar, y el campo NO cambia según de dónde salió el dato: si
|
|
8
|
+
* `cashInMx` se resuelve contra el cache de HERE o contra el directorio en vivo de un
|
|
9
|
+
* proveedor de fondeo, la app lee el mismo campo con el mismo shape. El ruteo es una
|
|
10
|
+
* decisión del lambda, no algo que el cliente tenga que interpretar.
|
|
7
11
|
*/
|
|
8
12
|
export class GetNearbyPlacesResponse {
|
|
9
13
|
cashInUs?: EstablishmentDto[];
|
|
10
14
|
cashInMx?: EstablishmentDto[];
|
|
11
|
-
cashInMxStores?: FundingStoreItem[];
|
|
12
15
|
officeFiado?: OfficeDto[];
|
|
13
16
|
storeFiado?: OfficeDto[];
|
|
14
17
|
}
|