@veriko-mx/sdk 0.4.3
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/CHANGELOG.md +186 -0
- package/LICENSE +21 -0
- package/README.md +566 -0
- package/dist/cjs/client.d.ts +128 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +145 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/errors.d.ts +110 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +133 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/generated/openapi.d.ts +8404 -0
- package/dist/cjs/generated/openapi.d.ts.map +1 -0
- package/dist/cjs/generated/openapi.js +7 -0
- package/dist/cjs/generated/openapi.js.map +1 -0
- package/dist/cjs/http.d.ts +75 -0
- package/dist/cjs/http.d.ts.map +1 -0
- package/dist/cjs/http.js +237 -0
- package/dist/cjs/http.js.map +1 -0
- package/dist/cjs/index.d.ts +35 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +91 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal.d.ts +40 -0
- package/dist/cjs/internal.d.ts.map +1 -0
- package/dist/cjs/internal.js +92 -0
- package/dist/cjs/internal.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/pagination.d.ts +41 -0
- package/dist/cjs/pagination.d.ts.map +1 -0
- package/dist/cjs/pagination.js +66 -0
- package/dist/cjs/pagination.js.map +1 -0
- package/dist/cjs/resources.d.ts +522 -0
- package/dist/cjs/resources.d.ts.map +1 -0
- package/dist/cjs/resources.js +1361 -0
- package/dist/cjs/resources.js.map +1 -0
- package/dist/cjs/types.d.ts +559 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +117 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/webhooks.d.ts +54 -0
- package/dist/cjs/webhooks.d.ts.map +1 -0
- package/dist/cjs/webhooks.js +116 -0
- package/dist/cjs/webhooks.js.map +1 -0
- package/dist/esm/client.d.ts +128 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +141 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/errors.d.ts +110 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +117 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/generated/openapi.d.ts +8404 -0
- package/dist/esm/generated/openapi.d.ts.map +1 -0
- package/dist/esm/generated/openapi.js +6 -0
- package/dist/esm/generated/openapi.js.map +1 -0
- package/dist/esm/http.d.ts +75 -0
- package/dist/esm/http.d.ts.map +1 -0
- package/dist/esm/http.js +229 -0
- package/dist/esm/http.js.map +1 -0
- package/dist/esm/index.d.ts +35 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +33 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal.d.ts +40 -0
- package/dist/esm/internal.d.ts.map +1 -0
- package/dist/esm/internal.js +82 -0
- package/dist/esm/internal.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/pagination.d.ts +41 -0
- package/dist/esm/pagination.d.ts.map +1 -0
- package/dist/esm/pagination.js +62 -0
- package/dist/esm/pagination.js.map +1 -0
- package/dist/esm/resources.d.ts +522 -0
- package/dist/esm/resources.d.ts.map +1 -0
- package/dist/esm/resources.js +1346 -0
- package/dist/esm/resources.js.map +1 -0
- package/dist/esm/types.d.ts +559 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +109 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/webhooks.d.ts +54 -0
- package/dist/esm/webhooks.d.ts.map +1 -0
- package/dist/esm/webhooks.js +109 -0
- package/dist/esm/webhooks.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,EAAiB,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EACL,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,oGAAoG;AACpG,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,GAAE,aAAkB;IA+BvC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIrE;;;;;;;OAOG;IACH,aAAa,CACX,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CAGzF"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** El cliente: la entrada al SDK y las familias de operaciones. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Veriko = exports.VERSION = exports.BASE_URL_ENV_VAR = exports.API_KEY_ENV_VAR = exports.DEFAULT_TIMEOUT_MS = exports.DEFAULT_BASE_URL = void 0;
|
|
5
|
+
const http_js_1 = require("./http.js");
|
|
6
|
+
const resources_js_1 = require("./resources.js");
|
|
7
|
+
exports.DEFAULT_BASE_URL = 'https://api.veriko.mx/v1';
|
|
8
|
+
exports.DEFAULT_TIMEOUT_MS = 30_000;
|
|
9
|
+
exports.API_KEY_ENV_VAR = 'VERIKO_API_KEY';
|
|
10
|
+
exports.BASE_URL_ENV_VAR = 'VERIKO_BASE_URL';
|
|
11
|
+
/** La versión que viaja en el `User-Agent`. `test/client.test.ts` la compara con `package.json`. */
|
|
12
|
+
exports.VERSION = '0.4.3';
|
|
13
|
+
/**
|
|
14
|
+
* Cliente de la API de Veriko.
|
|
15
|
+
*
|
|
16
|
+
* La clave de API se lee de `options.apiKey` o, si no se pasa, de la variable de
|
|
17
|
+
* entorno `VERIKO_API_KEY`. Empieza con `veriko_` y se obtiene en el panel:
|
|
18
|
+
* https://app.veriko.mx
|
|
19
|
+
*
|
|
20
|
+
* Las operaciones se agrupan por familia:
|
|
21
|
+
*
|
|
22
|
+
* - `client.validations`: validar, consultar, reintentar y descargar.
|
|
23
|
+
* - `client.webhooks`: endpoints y su historial de entregas.
|
|
24
|
+
* - `client.catalog`: bancos y estado del servicio de Banxico.
|
|
25
|
+
* - `client.beneficiaries`: cuentas guardadas y su importación masiva.
|
|
26
|
+
* - `client.usage`: cuota, límites y registro de actividad.
|
|
27
|
+
* - `client.account`: perfil y política de reintentos predeterminada.
|
|
28
|
+
* - `client.dashboard`: resumen del panel.
|
|
29
|
+
* - `client.plans`: catálogo y comparación de planes públicos.
|
|
30
|
+
* - `client.insights`: métricas agregadas de la cuenta.
|
|
31
|
+
* - `client.finance`: resúmenes y descargas financieras.
|
|
32
|
+
* - `client.billing`: suscripción activa.
|
|
33
|
+
*
|
|
34
|
+
* Las tres de uso más frecuente están también en la raíz, como atajo:
|
|
35
|
+
*
|
|
36
|
+
* ```ts
|
|
37
|
+
* const client = new Veriko();
|
|
38
|
+
*
|
|
39
|
+
* const validation = await client.validateTransfer({
|
|
40
|
+
* fecha: '2025-03-15',
|
|
41
|
+
* monto: 15000.5,
|
|
42
|
+
* claveRastreo: 'MXBA20250315001234',
|
|
43
|
+
* cuentaBeneficiaria: '012180004412345678',
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
class Veriko {
|
|
48
|
+
transport;
|
|
49
|
+
/** Validar, consultar, reintentar y descargar. */
|
|
50
|
+
validations;
|
|
51
|
+
/** Endpoints de webhook y su historial de entregas. */
|
|
52
|
+
webhooks;
|
|
53
|
+
/** Catálogo de bancos y estado del servicio de Banxico. */
|
|
54
|
+
catalog;
|
|
55
|
+
/** Cuentas beneficiarias guardadas y su importación masiva. */
|
|
56
|
+
beneficiaries;
|
|
57
|
+
/** Cuota, límites y registro de actividad. */
|
|
58
|
+
usage;
|
|
59
|
+
/** Perfil y preferencias de la cuenta autenticada. */
|
|
60
|
+
account;
|
|
61
|
+
/** Resumen del panel. */
|
|
62
|
+
dashboard;
|
|
63
|
+
/** Catálogo público de planes. */
|
|
64
|
+
plans;
|
|
65
|
+
/** Métricas agregadas de la cuenta. */
|
|
66
|
+
insights;
|
|
67
|
+
/** Resúmenes y descargas financieras. */
|
|
68
|
+
finance;
|
|
69
|
+
/** Suscripción activa de la cuenta. */
|
|
70
|
+
billing;
|
|
71
|
+
constructor(options = {}) {
|
|
72
|
+
const apiKey = options.apiKey ?? process.env[exports.API_KEY_ENV_VAR] ?? '';
|
|
73
|
+
const suffix = options.userAgentSuffix ? ` ${options.userAgentSuffix}` : '';
|
|
74
|
+
this.transport =
|
|
75
|
+
options.transport ??
|
|
76
|
+
new http_js_1.Transport({
|
|
77
|
+
baseUrl: options.baseUrl ?? process.env[exports.BASE_URL_ENV_VAR] ?? exports.DEFAULT_BASE_URL,
|
|
78
|
+
apiKey,
|
|
79
|
+
timeoutMs: options.timeoutMs ?? exports.DEFAULT_TIMEOUT_MS,
|
|
80
|
+
retry: {
|
|
81
|
+
...http_js_1.DEFAULT_RETRY,
|
|
82
|
+
...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
|
|
83
|
+
...options.retry,
|
|
84
|
+
},
|
|
85
|
+
userAgent: `veriko-js/${exports.VERSION} (+https://github.com/veriko-mx-labs/veriko-js)${suffix}`,
|
|
86
|
+
acceptLanguage: options.acceptLanguage,
|
|
87
|
+
});
|
|
88
|
+
this.validations = new resources_js_1.Validations(this.transport);
|
|
89
|
+
this.webhooks = new resources_js_1.Webhooks(this.transport);
|
|
90
|
+
this.catalog = new resources_js_1.Catalog(this.transport);
|
|
91
|
+
this.beneficiaries = new resources_js_1.Beneficiaries(this.transport);
|
|
92
|
+
this.usage = new resources_js_1.Usage(this.transport);
|
|
93
|
+
this.account = new resources_js_1.Account(this.transport);
|
|
94
|
+
this.dashboard = new resources_js_1.Dashboard(this.transport);
|
|
95
|
+
this.plans = new resources_js_1.Plans(this.transport);
|
|
96
|
+
this.insights = new resources_js_1.Insights(this.transport);
|
|
97
|
+
this.finance = new resources_js_1.Finance(this.transport);
|
|
98
|
+
this.billing = new resources_js_1.Billing(this.transport);
|
|
99
|
+
}
|
|
100
|
+
get baseUrl() {
|
|
101
|
+
return this.transport.baseUrl;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Atajo de `client.validations.validate()`.
|
|
105
|
+
*
|
|
106
|
+
* Valida una transferencia SPEI contra el CEP de Banxico. `POST /v1/validate`.
|
|
107
|
+
* Devuelve el veredicto en `attributes.status`: `valid`, `not_found`,
|
|
108
|
+
* `cep_unavailable`, `returned` o `error`.
|
|
109
|
+
*
|
|
110
|
+
* La operación exige `claveRastreo` o `referenciaNumerica`. Enviar las dos
|
|
111
|
+
* precisa la búsqueda. La fecha es la de envío, en `YYYY-MM-DD`.
|
|
112
|
+
*
|
|
113
|
+
* Un `not_found` inmediato no equivale a una transferencia inexistente: un
|
|
114
|
+
* CEP tarda en publicarse. `retryPolicy` deja a la API consultando de nuevo y
|
|
115
|
+
* avisando por webhook cuando el veredicto cambia.
|
|
116
|
+
*
|
|
117
|
+
* Cada llamada consume cuota del plan, y se descuenta al aceptar la petición.
|
|
118
|
+
*/
|
|
119
|
+
validateTransfer(params) {
|
|
120
|
+
return this.validations.validate(params);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Atajo de `client.validations.get()`.
|
|
124
|
+
*
|
|
125
|
+
* Lee una validación por su identificador. `GET /v1/validations/{id}`. Es la
|
|
126
|
+
* operación con la que se sigue una validación que quedó reintentando: el
|
|
127
|
+
* veredicto final aparece cuando `attributes.status` alcanza un estado
|
|
128
|
+
* terminal.
|
|
129
|
+
*/
|
|
130
|
+
getValidation(validationId, options = {}) {
|
|
131
|
+
return this.validations.get(validationId, options);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Atajo de `client.validations.cep()`.
|
|
135
|
+
*
|
|
136
|
+
* Descarga el CEP oficial de una validación. `GET /v1/validations/{id}/cep`.
|
|
137
|
+
* Devuelve el archivo: el XML que emitió Banxico, con su sello digital y su
|
|
138
|
+
* cadena original, o el PDF equivalente.
|
|
139
|
+
*/
|
|
140
|
+
getCep(validationId, options = {}) {
|
|
141
|
+
return this.validations.cep(validationId, options);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.Veriko = Veriko;
|
|
145
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Errores del SDK.
|
|
3
|
+
*
|
|
4
|
+
* La API devuelve los errores en un arreglo `errors`, y `code` es el campo estable
|
|
5
|
+
* de cada entrada. `detail` se traduce según `Accept-Language` y puede reformularse
|
|
6
|
+
* entre versiones. Por eso todas las excepciones exponen `code` y la
|
|
7
|
+
* lista completa de `errors`: ramificar sobre el texto es el error más silencioso
|
|
8
|
+
* al integrar esta API.
|
|
9
|
+
*
|
|
10
|
+
* @see https://docs.veriko.mx/es/concepts/errors
|
|
11
|
+
*/
|
|
12
|
+
/** Una entrada del arreglo `errors` de la API. */
|
|
13
|
+
export interface ApiErrorEntry {
|
|
14
|
+
status?: string;
|
|
15
|
+
code?: string;
|
|
16
|
+
detail?: string;
|
|
17
|
+
source?: {
|
|
18
|
+
pointer?: string;
|
|
19
|
+
};
|
|
20
|
+
meta?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
/** Raíz de todo lo que lanza el SDK. */
|
|
23
|
+
export declare class VerikoError extends Error {
|
|
24
|
+
constructor(message: string);
|
|
25
|
+
}
|
|
26
|
+
/** Falta la clave de API, o un argumento del cliente es inservible. */
|
|
27
|
+
export declare class ConfigurationError extends VerikoError {
|
|
28
|
+
}
|
|
29
|
+
/** No hubo respuesta: DNS, TLS, socket o tiempo agotado, con los reintentos ya agotados. */
|
|
30
|
+
export declare class ConnectionError extends VerikoError {
|
|
31
|
+
readonly attempts: number;
|
|
32
|
+
constructor(message: string, attempts: number, options?: {
|
|
33
|
+
cause?: unknown;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export interface ApiErrorInit {
|
|
37
|
+
status: number;
|
|
38
|
+
code?: string | undefined;
|
|
39
|
+
detail?: string | undefined;
|
|
40
|
+
pointer?: string | undefined;
|
|
41
|
+
errors?: ApiErrorEntry[] | undefined;
|
|
42
|
+
requestId?: string | undefined;
|
|
43
|
+
meta?: Record<string, unknown> | undefined;
|
|
44
|
+
headers?: Record<string, string> | undefined;
|
|
45
|
+
}
|
|
46
|
+
/** La API respondió, y la respuesta fue un error. */
|
|
47
|
+
export declare class ApiError extends VerikoError {
|
|
48
|
+
/** Estado HTTP. */
|
|
49
|
+
readonly status: number;
|
|
50
|
+
/** `errors[0].code`, el contrato estable sobre el que ramificar. */
|
|
51
|
+
readonly code: string | undefined;
|
|
52
|
+
/** `errors[0].detail`, texto legible y traducido. */
|
|
53
|
+
readonly detail: string | undefined;
|
|
54
|
+
/** `errors[0].source.pointer` cuando el rechazo señala un campo. */
|
|
55
|
+
readonly pointer: string | undefined;
|
|
56
|
+
/** El arreglo completo. Un `422` trae una entrada por campo inválido. */
|
|
57
|
+
readonly errors: ApiErrorEntry[];
|
|
58
|
+
/** `meta.request_id`, el dato con el que se investiga un caso puntual. */
|
|
59
|
+
readonly requestId: string | undefined;
|
|
60
|
+
readonly meta: Record<string, unknown>;
|
|
61
|
+
/** Cabeceras de la respuesta, con el nombre en minúsculas. */
|
|
62
|
+
readonly headers: Record<string, string>;
|
|
63
|
+
constructor(message: string, init: ApiErrorInit);
|
|
64
|
+
}
|
|
65
|
+
/** `401`. Falta la clave de API o ya no es válida. */
|
|
66
|
+
export declare class AuthenticationError extends ApiError {
|
|
67
|
+
}
|
|
68
|
+
/** `403`. Autenticado, pero sin permiso para esa operación. */
|
|
69
|
+
export declare class ForbiddenError extends ApiError {
|
|
70
|
+
}
|
|
71
|
+
/** `404`. El recurso no existe, o el CEP no está disponible (`cep_not_available`). */
|
|
72
|
+
export declare class NotFoundError extends ApiError {
|
|
73
|
+
}
|
|
74
|
+
/** `409`. Conflicto de estado; con `Idempotency-Key`, la petición anterior sigue en curso. */
|
|
75
|
+
export declare class ConflictError extends ApiError {
|
|
76
|
+
}
|
|
77
|
+
/** `400`, `413` y `422`. La petición hay que corregirla antes de repetirla. */
|
|
78
|
+
export declare class InvalidRequestError extends ApiError {
|
|
79
|
+
}
|
|
80
|
+
/** `429`. Límite de tasa superado, o cuota del plan agotada. */
|
|
81
|
+
export declare class RateLimitError extends ApiError {
|
|
82
|
+
/**
|
|
83
|
+
* Segundos que la respuesta pide esperar, cuando los trae. Es el único dato
|
|
84
|
+
* necesario para reintentar sin adivinar.
|
|
85
|
+
*/
|
|
86
|
+
readonly retryAfter: number | undefined;
|
|
87
|
+
constructor(message: string, init: ApiErrorInit & {
|
|
88
|
+
retryAfter?: number | undefined;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/** `5xx`. Admite reintento; el SDK ya lo hizo si quedaban intentos. */
|
|
92
|
+
export declare class ServerError extends ApiError {
|
|
93
|
+
}
|
|
94
|
+
/** La firma de un webhook no cuadra con el cuerpo recibido. */
|
|
95
|
+
export declare class SignatureVerificationError extends VerikoError {
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* `waitFor()` o `importWait()` agotaron su tiempo sin que el recurso llegara a un
|
|
99
|
+
* estado firme.
|
|
100
|
+
*/
|
|
101
|
+
export declare class TimeoutError extends VerikoError {
|
|
102
|
+
/** El recurso que se esperaba: una validación o una importación. */
|
|
103
|
+
readonly resourceId: string;
|
|
104
|
+
/** El tiempo de espera que se agotó, en milisegundos. */
|
|
105
|
+
readonly timeoutMs: number;
|
|
106
|
+
constructor(message: string, resourceId: string, timeoutMs: number);
|
|
107
|
+
/** Es `resourceId` cuando lo que se esperaba era una validación. */
|
|
108
|
+
get validationId(): string;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Errores del SDK.
|
|
4
|
+
*
|
|
5
|
+
* La API devuelve los errores en un arreglo `errors`, y `code` es el campo estable
|
|
6
|
+
* de cada entrada. `detail` se traduce según `Accept-Language` y puede reformularse
|
|
7
|
+
* entre versiones. Por eso todas las excepciones exponen `code` y la
|
|
8
|
+
* lista completa de `errors`: ramificar sobre el texto es el error más silencioso
|
|
9
|
+
* al integrar esta API.
|
|
10
|
+
*
|
|
11
|
+
* @see https://docs.veriko.mx/es/concepts/errors
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.TimeoutError = exports.SignatureVerificationError = exports.ServerError = exports.RateLimitError = exports.InvalidRequestError = exports.ConflictError = exports.NotFoundError = exports.ForbiddenError = exports.AuthenticationError = exports.ApiError = exports.ConnectionError = exports.ConfigurationError = exports.VerikoError = void 0;
|
|
15
|
+
/** Raíz de todo lo que lanza el SDK. */
|
|
16
|
+
class VerikoError extends Error {
|
|
17
|
+
constructor(message) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = new.target.name;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.VerikoError = VerikoError;
|
|
23
|
+
/** Falta la clave de API, o un argumento del cliente es inservible. */
|
|
24
|
+
class ConfigurationError extends VerikoError {
|
|
25
|
+
}
|
|
26
|
+
exports.ConfigurationError = ConfigurationError;
|
|
27
|
+
/** No hubo respuesta: DNS, TLS, socket o tiempo agotado, con los reintentos ya agotados. */
|
|
28
|
+
class ConnectionError extends VerikoError {
|
|
29
|
+
attempts;
|
|
30
|
+
constructor(message, attempts, options) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.attempts = attempts;
|
|
33
|
+
if (options?.cause !== undefined) {
|
|
34
|
+
this.cause = options.cause;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ConnectionError = ConnectionError;
|
|
39
|
+
/** La API respondió, y la respuesta fue un error. */
|
|
40
|
+
class ApiError extends VerikoError {
|
|
41
|
+
/** Estado HTTP. */
|
|
42
|
+
status;
|
|
43
|
+
/** `errors[0].code`, el contrato estable sobre el que ramificar. */
|
|
44
|
+
code;
|
|
45
|
+
/** `errors[0].detail`, texto legible y traducido. */
|
|
46
|
+
detail;
|
|
47
|
+
/** `errors[0].source.pointer` cuando el rechazo señala un campo. */
|
|
48
|
+
pointer;
|
|
49
|
+
/** El arreglo completo. Un `422` trae una entrada por campo inválido. */
|
|
50
|
+
errors;
|
|
51
|
+
/** `meta.request_id`, el dato con el que se investiga un caso puntual. */
|
|
52
|
+
requestId;
|
|
53
|
+
meta;
|
|
54
|
+
/** Cabeceras de la respuesta, con el nombre en minúsculas. */
|
|
55
|
+
headers;
|
|
56
|
+
constructor(message, init) {
|
|
57
|
+
const status = String(init.status);
|
|
58
|
+
const head = init.code ? `HTTP ${status} ${init.code}` : `HTTP ${status}`;
|
|
59
|
+
const suffix = init.requestId ? ` (request_id=${init.requestId})` : '';
|
|
60
|
+
super(`${head}: ${message}${suffix}`);
|
|
61
|
+
this.status = init.status;
|
|
62
|
+
this.code = init.code;
|
|
63
|
+
this.detail = init.detail;
|
|
64
|
+
this.pointer = init.pointer;
|
|
65
|
+
this.errors = init.errors ?? [];
|
|
66
|
+
this.requestId = init.requestId;
|
|
67
|
+
this.meta = init.meta ?? {};
|
|
68
|
+
this.headers = init.headers ?? {};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.ApiError = ApiError;
|
|
72
|
+
/** `401`. Falta la clave de API o ya no es válida. */
|
|
73
|
+
class AuthenticationError extends ApiError {
|
|
74
|
+
}
|
|
75
|
+
exports.AuthenticationError = AuthenticationError;
|
|
76
|
+
/** `403`. Autenticado, pero sin permiso para esa operación. */
|
|
77
|
+
class ForbiddenError extends ApiError {
|
|
78
|
+
}
|
|
79
|
+
exports.ForbiddenError = ForbiddenError;
|
|
80
|
+
/** `404`. El recurso no existe, o el CEP no está disponible (`cep_not_available`). */
|
|
81
|
+
class NotFoundError extends ApiError {
|
|
82
|
+
}
|
|
83
|
+
exports.NotFoundError = NotFoundError;
|
|
84
|
+
/** `409`. Conflicto de estado; con `Idempotency-Key`, la petición anterior sigue en curso. */
|
|
85
|
+
class ConflictError extends ApiError {
|
|
86
|
+
}
|
|
87
|
+
exports.ConflictError = ConflictError;
|
|
88
|
+
/** `400`, `413` y `422`. La petición hay que corregirla antes de repetirla. */
|
|
89
|
+
class InvalidRequestError extends ApiError {
|
|
90
|
+
}
|
|
91
|
+
exports.InvalidRequestError = InvalidRequestError;
|
|
92
|
+
/** `429`. Límite de tasa superado, o cuota del plan agotada. */
|
|
93
|
+
class RateLimitError extends ApiError {
|
|
94
|
+
/**
|
|
95
|
+
* Segundos que la respuesta pide esperar, cuando los trae. Es el único dato
|
|
96
|
+
* necesario para reintentar sin adivinar.
|
|
97
|
+
*/
|
|
98
|
+
retryAfter;
|
|
99
|
+
constructor(message, init) {
|
|
100
|
+
super(message, init);
|
|
101
|
+
this.retryAfter = init.retryAfter;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.RateLimitError = RateLimitError;
|
|
105
|
+
/** `5xx`. Admite reintento; el SDK ya lo hizo si quedaban intentos. */
|
|
106
|
+
class ServerError extends ApiError {
|
|
107
|
+
}
|
|
108
|
+
exports.ServerError = ServerError;
|
|
109
|
+
/** La firma de un webhook no cuadra con el cuerpo recibido. */
|
|
110
|
+
class SignatureVerificationError extends VerikoError {
|
|
111
|
+
}
|
|
112
|
+
exports.SignatureVerificationError = SignatureVerificationError;
|
|
113
|
+
/**
|
|
114
|
+
* `waitFor()` o `importWait()` agotaron su tiempo sin que el recurso llegara a un
|
|
115
|
+
* estado firme.
|
|
116
|
+
*/
|
|
117
|
+
class TimeoutError extends VerikoError {
|
|
118
|
+
/** El recurso que se esperaba: una validación o una importación. */
|
|
119
|
+
resourceId;
|
|
120
|
+
/** El tiempo de espera que se agotó, en milisegundos. */
|
|
121
|
+
timeoutMs;
|
|
122
|
+
constructor(message, resourceId, timeoutMs) {
|
|
123
|
+
super(message);
|
|
124
|
+
this.resourceId = resourceId;
|
|
125
|
+
this.timeoutMs = timeoutMs;
|
|
126
|
+
}
|
|
127
|
+
/** Es `resourceId` cuando lo que se esperaba era una validación. */
|
|
128
|
+
get validationId() {
|
|
129
|
+
return this.resourceId;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.TimeoutError = TimeoutError;
|
|
133
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|