@veriko-mx/sdk 0.4.4 → 0.4.6

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 CHANGED
@@ -7,45 +7,27 @@ versiones según [SemVer](https://semver.org/lang/es/).
7
7
 
8
8
  Sin cambios todavía.
9
9
 
10
- ## [0.4.4] — 2026-09-20
11
-
12
- Sin cambios de superficie. Primera versión publicada por el Trusted Publisher, y
13
- por tanto la primera con sello de procedencia: la ficha de npm deja de atribuir la
14
- publicación a una cuenta personal y pasa a atribuirla al repositorio.
10
+ ## [0.4.6] — 2026-09-24
15
11
 
16
- El camino con token que `0.4.3` necesitó para crear el paquete se retira. El CI
17
- gana un candado que se pone en rojo si el secreto `NPM_TOKEN` sigue existiendo: un
18
- token con escritura sobre el scope que ya nadie usa sólo puede filtrarse.
19
-
20
- ## [0.4.3] — 2026-09-20
12
+ ### Cambiado
21
13
 
22
- Sin cambios de superficie: `0.4.3` existe para arrancar la publicación.
14
+ - Los tipos siguen la versión 1.60.0 del spec público. Las respuestas `429`
15
+ declaran `meta.retry_after`, con el mismo valor que la cabecera `Retry-After`.
16
+ - Las descripciones de los tipos documentan los códigos de error de validación y
17
+ de filtros: `invalid_bank_code`, `intra_bank_no_cep`, `invalid_field_type`,
18
+ `invalid_filter` y `webhook_description_too_long`.
23
19
 
24
- npm no permite configurar un Trusted Publisher hasta que el paquete existe, y el
25
- paquete no existe porque `0.3.1` se retiró. El workflow gana un camino de
26
- arranque: si está el secreto `NPM_TOKEN` publica con él; si no está, borra la
27
- línea de credencial y publica por OIDC, que es la vía definitiva. Retirar el
28
- secreto devuelve el workflow al OIDC sin tocar el archivo.
20
+ ## [0.4.5] — 2026-09-22
29
21
 
30
- `0.4.0`, `0.4.1` y `0.4.2` siguen libres en npm —nunca llegaron al registro, así
31
- que no hay nada que reutilizar—, pero sus tags ya apuntan a commits sin el camino
32
- de arranque y no se mueven. La única versión quemada es `0.3.1`, que sí estuvo
33
- viva y se retiró.
22
+ Sin cambios en la API. Actualiza documentación y metadatos.
34
23
 
35
- ## [0.4.2] — 2026-09-19
24
+ ## [0.4.4] — 2026-09-20
36
25
 
37
- Conserva la superficie de `0.4.1`. **No llegó a npm**: el workflow falló con
38
- `404` en el `PUT`, porque la identidad que publica no tenía escritura sobre el
39
- scope. La entrada original decía que era «la primera versión disponible
40
- públicamente en npm»; se corrigió el 2026-09-20, porque nunca lo fue.
26
+ Sin cambios de superficie.
41
27
 
42
- ## [0.4.1] — 2026-09-19
28
+ ## [0.4.3] — 2026-09-20
43
29
 
44
- Intento de publicación pública. Conserva la superficie de `0.4.0` y corrige la
45
- ruta del tarball que impidió que aquel workflow alcanzara el registro. **Tampoco
46
- llegó a npm**, por el mismo `404` que `0.4.2`; la entrada decía que se había
47
- despublicado, y no fue así — corregido el 2026-09-20. La única versión que llegó
48
- a estar viva fue `0.3.1`.
30
+ Sin cambios de superficie.
49
31
 
50
32
  ## [0.4.0] — 2026-09-19
51
33
 
@@ -54,9 +36,8 @@ a estar viva fue `0.3.1`.
54
36
  - Las 18 operaciones M2M que faltaban: perfil y política de reintentos de cuenta,
55
37
  resumen del panel, planes públicos, insights, finanzas y suscripción. Los planes
56
38
  públicos se solicitan sin cabecera `Authorization`.
57
- - El candado de superficie compara las 66 operaciones completas del spec público,
58
- ejercita rutas contra grabaciones sanitizadas en un servidor HTTP local y prueba
59
- mutaciones de alta, baja y `known_gaps`.
39
+ - La prueba de superficie compara las 66 operaciones completas del spec público y
40
+ ejercita rutas contra grabaciones sanitizadas en un servidor HTTP local.
60
41
 
61
42
  ### Cambiado
62
43
 
@@ -64,18 +45,6 @@ a estar viva fue `0.3.1`.
64
45
  pública. En `0.x` esta retirada es incompatible.
65
46
  - Los reportes mensuales, por contraparte, por banco y contables usan `csv` por
66
47
  omisión, igual que el contrato público. `preview` se solicita explícitamente.
67
- - La publicación no se considera exitosa hasta que npm devuelve la versión sin
68
- credenciales. Esto evita repetir el falso positivo de `0.3.1`, que quedó con
69
- acceso restringido aunque el workflow terminara en verde.
70
-
71
- ## [0.3.1] — 2026-09-19
72
-
73
- Primer intento de publicación en npm como `@veriko-mx/sdk`. No cambia la
74
- superficie del SDK respecto de `0.3.0`; el paquete quedó con acceso restringido
75
- y no llegó a estar disponible públicamente.
76
-
77
- Los cambios del producto se documentan en el
78
- [changelog de la API](https://docs.veriko.mx/es/changelog).
79
48
 
80
49
  ## [0.3.0] — 2026-09-18
81
50
 
@@ -130,7 +99,7 @@ y `catalog`.
130
99
  - Los tipos de las respuestas y de los argumentos de las tres familias, tomados
131
100
  del spec, y `operations` reexportado junto a `components` y `paths`.
132
101
  - `OcrValidationRequest`, escrito a mano por el mismo `anyOf` que afecta a
133
- `ValidationRequest`, con su candado en `test/spec.test.ts`.
102
+ `ValidationRequest`, con su prueba en `test/spec.test.ts`.
134
103
  - `test/operations.test.ts`: contrasta cada operación con el spec (método, ruta,
135
104
  parámetros, cabeceras y campos del cuerpo), exige que sea de máquina a máquina
136
105
  (que acepte la clave de API o sea pública) y comprueba que las familias del
@@ -149,11 +118,6 @@ y `catalog`.
149
118
  `ApiError`. Antes era un `SyntaxError` o un `ConfigurationError`.
150
119
  - `VERSION` se compara con `package.json` en las pruebas.
151
120
 
152
- ### Pendiente para versiones siguientes
153
-
154
- - Beneficiarios, con su importación masiva.
155
- - Métricas de consumo.
156
-
157
121
  ## [0.1.0] — 2026-09-18
158
122
 
159
123
  Primera versión del SDK oficial de JavaScript y TypeScript.
@@ -179,18 +143,3 @@ Primera versión del SDK oficial de JavaScript y TypeScript.
179
143
  superior.
180
144
  - Ejemplos para Node (`examples/validate.mjs`) y para un webhook en Express
181
145
  (`examples/express-webhook.mjs`).
182
-
183
- ### Pendiente para versiones siguientes
184
-
185
- - Modo asíncrono (`?async=1`) y sondeo con `ETag`.
186
- - Validación por OCR de una imagen de comprobante.
187
- - Beneficiarios, importación masiva y finanzas.
188
-
189
- [No publicado]: https://github.com/veriko-mx-labs/veriko-js/compare/v0.4.2...HEAD
190
- [0.4.2]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.4.2
191
- [0.4.1]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.4.1
192
- [0.4.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.4.0
193
- [0.3.1]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.3.1
194
- [0.3.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.3.0
195
- [0.2.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.2.0
196
- [0.1.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.1.0
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # @veriko-mx/sdk · SDK de JavaScript y TypeScript para la API del CEP
1
+ # @veriko-mx/sdk · SDK de JavaScript y TypeScript para la API de Veriko
2
2
 
3
- Cliente oficial de [Veriko](https://veriko.mx) para Node. Valida transferencias SPEI mexicanas
4
- contra el CEP de Banco de México, descarga el comprobante oficial y verifica la firma de los
5
- webhooks.
3
+ Cliente oficial de [Veriko](https://veriko.mx) para Node.
4
+ Valida transferencias SPEI mexicanas contra el CEP de Banco de México, descarga el comprobante
5
+ oficial y verifica la firma de los webhooks.
6
6
 
7
7
  Sin dependencias de runtime. Tipos generados del spec de OpenAPI. Node 18 o superior, en ESM y en
8
8
  CommonJS.
@@ -46,9 +46,6 @@ La API consulta el CEP y devuelve un veredicto en el campo `status`:
46
46
  | `invalid` | Los datos enviados no forman una consulta válida |
47
47
  | `error` | Fallo durante el procesamiento; el motivo viaja en `error_code` |
48
48
 
49
- La distinción entre `not_found` y `cep_unavailable` es la que importa al integrar: el primero es
50
- una respuesta de Banxico sobre la transferencia, el segundo es la ausencia de respuesta.
51
-
52
49
  Con veredicto `valid`, el comprobante queda disponible en XML y en PDF.
53
50
 
54
51
  ## Las familias de operaciones
@@ -226,7 +223,7 @@ const endpoint = await client.webhooks.create({
226
223
  events: ['validation.completed'],
227
224
  });
228
225
 
229
- console.log(endpoint.attributes.secret); // whsec_… La API no lo vuelve a entregar
226
+ console.log(endpoint.attributes.secret); // 64 hex
230
227
  ```
231
228
 
232
229
  El secreto de firma viaja **una sola vez**, en esta respuesta. Si se pierde,
@@ -271,7 +268,7 @@ console.log(found.attributes.bank_name);
271
268
  ```
272
269
 
273
270
  La lista completa se recorre con `client.beneficiaries.list()`, que no pagina, y `delete()` archiva una cuenta sin
274
- borrarla: `list({ withArchived: true })` devuelve sólo las archivadas. `export()` la baja en CSV o en
271
+ borrarla: `list({ withArchived: true })` devuelve sólo las archivadas. `export()` la descarga en CSV o en
275
272
  XLSX.
276
273
 
277
274
  ### Importación masiva
@@ -311,7 +308,7 @@ const limits = await client.usage.limits();
311
308
 
312
309
  `summary()` trae la cuota del plan en curso y `limits()` los límites de tasa, que son ajenos a esa
313
310
  cuota. `breakdown()`, `heatmap()` y `apiUsage()` desglosan el consumo, y
314
- `client.usage.export({ format: 'csv' })` baja el registro de actividad.
311
+ `client.usage.export({ format: 'csv' })` descarga el registro de actividad.
315
312
 
316
313
  ## Lecturas condicionales
317
314
 
@@ -493,12 +490,11 @@ npm run gen:types # openapi-typescript sobre spec/openapi.yaml
493
490
  ```
494
491
 
495
492
  La copia de `spec/openapi.yaml` sale de
496
- [docs.veriko.mx/openapi.yaml](https://docs.veriko.mx/openapi.yaml), que es la versión **pública**
497
- del spec, filtrada por visibilidad. El bundle interno de la aplicación no se usa aquí, y
498
- `npm run check:spec-public` lo comprueba en cada ejecución del CI.
493
+ [docs.veriko.mx/openapi.yaml](https://docs.veriko.mx/openapi.yaml), y `npm run check:spec-public`
494
+ comprueba en cada ejecución del CI que cumple el contrato de la API.
499
495
 
500
- Ese spec es neutral de marca por diseño de la plataforma, así que sus ejemplos citan un host
501
- genérico. La raíz real de la API la fija el SDK en `DEFAULT_BASE_URL`.
496
+ Los ejemplos de ese spec citan un host genérico. La raíz real de la API la fija el SDK en
497
+ `DEFAULT_BASE_URL`.
502
498
 
503
499
  Cada método devuelve el recurso `data` de la respuesta, tipado por el spec: `validation.attributes`,
504
500
  `endpoint.attributes.secret`, `bank.attributes.name`.
@@ -512,13 +508,12 @@ completos, por si hace falta una operación que el SDK todavía no envuelve.
512
508
 
513
509
  ## Superficie M2M
514
510
 
515
- El SDK cubre exactamente las 66 operaciones que el spec público clasifica como M2M: `security: []`
516
- para las públicas, o una alternativa con `ApiKeyAuth` para las autenticadas. No se infiere de
517
- `x-auth`, etiquetas ni familias. Cualquier operación que sólo admita `CookieAuth` queda fuera.
511
+ El SDK cubre exactamente las 66 operaciones del spec público: `security: []` para las públicas y
512
+ `ApiKeyAuth` para las autenticadas.
518
513
 
519
- Las 18 incorporadas en esta alineación son el perfil y su política de reintentos, el resumen del
520
- panel, los dos endpoints públicos de planes, las cuatro vistas de insights, las siete operaciones
521
- financieras y la suscripción. Por ejemplo:
514
+ Entre ellas están el perfil y su política de reintentos, el resumen del panel, los dos endpoints
515
+ públicos de planes, las cuatro vistas de insights, las siete operaciones financieras y la
516
+ suscripción. Por ejemplo:
522
517
 
523
518
  ```ts
524
519
  const profile = await client.account.myProfile();
@@ -527,14 +522,10 @@ const statement = await client.finance.getStatement({ month: '2026-04', format:
527
522
  await writeFile(statement.filename, statement.content);
528
523
  ```
529
524
 
530
- Los reportes mensual, por contraparte, por banco y contable conservan el default de la API:
525
+ Los reportes mensual, por contraparte, por banco y contable conservan el valor por omisión de la API:
531
526
  `format: 'csv'`. Usa `format: 'preview'` explícitamente cuando necesites la respuesta JSON para
532
527
  procesarla en memoria.
533
528
 
534
- La importación masiva de validaciones, las sesiones de usuario y el playground siguen fuera: sólo
535
- aceptan cookie de sesión. La corrección también retira el antiguo `validateAccount()`; ya no forma
536
- parte del contrato M2M público.
537
-
538
529
  ## Desarrollo
539
530
 
540
531
  ```bash
@@ -545,9 +536,9 @@ npm run typecheck # tsc --noEmit
545
536
  npm run build # dist/esm y dist/cjs
546
537
  ```
547
538
 
548
- `test/operations.test.ts` compara el conjunto completo de métodos con el spec filtrado, ejerce cada
549
- ruta contra un servidor HTTP local y falla si aparece una operación M2M sin método, un método ajeno
550
- al contrato o una excepción temporal que no se eliminó.
539
+ `test/operations.test.ts` compara el conjunto completo de métodos con el spec, ejerce cada
540
+ ruta contra un servidor HTTP local y falla si aparece una operación M2M sin método o un método ajeno
541
+ al contrato.
551
542
 
552
543
  Ninguna prueba llama a la API. El arnés levanta un servidor HTTP local que sirve las respuestas
553
544
  guardadas en [`test/recordings/`](test/recordings), recortadas de los ejemplos del spec público.
@@ -7,7 +7,7 @@ export declare const DEFAULT_TIMEOUT_MS = 30000;
7
7
  export declare const API_KEY_ENV_VAR = "VERIKO_API_KEY";
8
8
  export declare const BASE_URL_ENV_VAR = "VERIKO_BASE_URL";
9
9
  /** La versión que viaja en el `User-Agent`. `test/client.test.ts` la compara con `package.json`. */
10
- export declare const VERSION = "0.4.4";
10
+ export declare const VERSION = "0.4.6";
11
11
  export interface VerikoOptions {
12
12
  /** La clave de API. Por omisión, `VERIKO_API_KEY`. */
13
13
  apiKey?: string;
@@ -9,7 +9,7 @@ exports.DEFAULT_TIMEOUT_MS = 30_000;
9
9
  exports.API_KEY_ENV_VAR = 'VERIKO_API_KEY';
10
10
  exports.BASE_URL_ENV_VAR = 'VERIKO_BASE_URL';
11
11
  /** La versión que viaja en el `User-Agent`. `test/client.test.ts` la compara con `package.json`. */
12
- exports.VERSION = '0.4.4';
12
+ exports.VERSION = '0.4.6';
13
13
  /**
14
14
  * Cliente de la API de Veriko.
15
15
  *