@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.
Files changed (86) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/LICENSE +21 -0
  3. package/README.md +566 -0
  4. package/dist/cjs/client.d.ts +128 -0
  5. package/dist/cjs/client.d.ts.map +1 -0
  6. package/dist/cjs/client.js +145 -0
  7. package/dist/cjs/client.js.map +1 -0
  8. package/dist/cjs/errors.d.ts +110 -0
  9. package/dist/cjs/errors.d.ts.map +1 -0
  10. package/dist/cjs/errors.js +133 -0
  11. package/dist/cjs/errors.js.map +1 -0
  12. package/dist/cjs/generated/openapi.d.ts +8404 -0
  13. package/dist/cjs/generated/openapi.d.ts.map +1 -0
  14. package/dist/cjs/generated/openapi.js +7 -0
  15. package/dist/cjs/generated/openapi.js.map +1 -0
  16. package/dist/cjs/http.d.ts +75 -0
  17. package/dist/cjs/http.d.ts.map +1 -0
  18. package/dist/cjs/http.js +237 -0
  19. package/dist/cjs/http.js.map +1 -0
  20. package/dist/cjs/index.d.ts +35 -0
  21. package/dist/cjs/index.d.ts.map +1 -0
  22. package/dist/cjs/index.js +91 -0
  23. package/dist/cjs/index.js.map +1 -0
  24. package/dist/cjs/internal.d.ts +40 -0
  25. package/dist/cjs/internal.d.ts.map +1 -0
  26. package/dist/cjs/internal.js +92 -0
  27. package/dist/cjs/internal.js.map +1 -0
  28. package/dist/cjs/package.json +3 -0
  29. package/dist/cjs/pagination.d.ts +41 -0
  30. package/dist/cjs/pagination.d.ts.map +1 -0
  31. package/dist/cjs/pagination.js +66 -0
  32. package/dist/cjs/pagination.js.map +1 -0
  33. package/dist/cjs/resources.d.ts +522 -0
  34. package/dist/cjs/resources.d.ts.map +1 -0
  35. package/dist/cjs/resources.js +1361 -0
  36. package/dist/cjs/resources.js.map +1 -0
  37. package/dist/cjs/types.d.ts +559 -0
  38. package/dist/cjs/types.d.ts.map +1 -0
  39. package/dist/cjs/types.js +117 -0
  40. package/dist/cjs/types.js.map +1 -0
  41. package/dist/cjs/webhooks.d.ts +54 -0
  42. package/dist/cjs/webhooks.d.ts.map +1 -0
  43. package/dist/cjs/webhooks.js +116 -0
  44. package/dist/cjs/webhooks.js.map +1 -0
  45. package/dist/esm/client.d.ts +128 -0
  46. package/dist/esm/client.d.ts.map +1 -0
  47. package/dist/esm/client.js +141 -0
  48. package/dist/esm/client.js.map +1 -0
  49. package/dist/esm/errors.d.ts +110 -0
  50. package/dist/esm/errors.d.ts.map +1 -0
  51. package/dist/esm/errors.js +117 -0
  52. package/dist/esm/errors.js.map +1 -0
  53. package/dist/esm/generated/openapi.d.ts +8404 -0
  54. package/dist/esm/generated/openapi.d.ts.map +1 -0
  55. package/dist/esm/generated/openapi.js +6 -0
  56. package/dist/esm/generated/openapi.js.map +1 -0
  57. package/dist/esm/http.d.ts +75 -0
  58. package/dist/esm/http.d.ts.map +1 -0
  59. package/dist/esm/http.js +229 -0
  60. package/dist/esm/http.js.map +1 -0
  61. package/dist/esm/index.d.ts +35 -0
  62. package/dist/esm/index.d.ts.map +1 -0
  63. package/dist/esm/index.js +33 -0
  64. package/dist/esm/index.js.map +1 -0
  65. package/dist/esm/internal.d.ts +40 -0
  66. package/dist/esm/internal.d.ts.map +1 -0
  67. package/dist/esm/internal.js +82 -0
  68. package/dist/esm/internal.js.map +1 -0
  69. package/dist/esm/package.json +3 -0
  70. package/dist/esm/pagination.d.ts +41 -0
  71. package/dist/esm/pagination.d.ts.map +1 -0
  72. package/dist/esm/pagination.js +62 -0
  73. package/dist/esm/pagination.js.map +1 -0
  74. package/dist/esm/resources.d.ts +522 -0
  75. package/dist/esm/resources.d.ts.map +1 -0
  76. package/dist/esm/resources.js +1346 -0
  77. package/dist/esm/resources.js.map +1 -0
  78. package/dist/esm/types.d.ts +559 -0
  79. package/dist/esm/types.d.ts.map +1 -0
  80. package/dist/esm/types.js +109 -0
  81. package/dist/esm/types.js.map +1 -0
  82. package/dist/esm/webhooks.d.ts +54 -0
  83. package/dist/esm/webhooks.d.ts.map +1 -0
  84. package/dist/esm/webhooks.js +109 -0
  85. package/dist/esm/webhooks.js.map +1 -0
  86. package/package.json +78 -0
@@ -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,117 @@
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
+ /** Raíz de todo lo que lanza el SDK. */
13
+ export class VerikoError extends Error {
14
+ constructor(message) {
15
+ super(message);
16
+ this.name = new.target.name;
17
+ }
18
+ }
19
+ /** Falta la clave de API, o un argumento del cliente es inservible. */
20
+ export class ConfigurationError extends VerikoError {
21
+ }
22
+ /** No hubo respuesta: DNS, TLS, socket o tiempo agotado, con los reintentos ya agotados. */
23
+ export class ConnectionError extends VerikoError {
24
+ attempts;
25
+ constructor(message, attempts, options) {
26
+ super(message);
27
+ this.attempts = attempts;
28
+ if (options?.cause !== undefined) {
29
+ this.cause = options.cause;
30
+ }
31
+ }
32
+ }
33
+ /** La API respondió, y la respuesta fue un error. */
34
+ export class ApiError extends VerikoError {
35
+ /** Estado HTTP. */
36
+ status;
37
+ /** `errors[0].code`, el contrato estable sobre el que ramificar. */
38
+ code;
39
+ /** `errors[0].detail`, texto legible y traducido. */
40
+ detail;
41
+ /** `errors[0].source.pointer` cuando el rechazo señala un campo. */
42
+ pointer;
43
+ /** El arreglo completo. Un `422` trae una entrada por campo inválido. */
44
+ errors;
45
+ /** `meta.request_id`, el dato con el que se investiga un caso puntual. */
46
+ requestId;
47
+ meta;
48
+ /** Cabeceras de la respuesta, con el nombre en minúsculas. */
49
+ headers;
50
+ constructor(message, init) {
51
+ const status = String(init.status);
52
+ const head = init.code ? `HTTP ${status} ${init.code}` : `HTTP ${status}`;
53
+ const suffix = init.requestId ? ` (request_id=${init.requestId})` : '';
54
+ super(`${head}: ${message}${suffix}`);
55
+ this.status = init.status;
56
+ this.code = init.code;
57
+ this.detail = init.detail;
58
+ this.pointer = init.pointer;
59
+ this.errors = init.errors ?? [];
60
+ this.requestId = init.requestId;
61
+ this.meta = init.meta ?? {};
62
+ this.headers = init.headers ?? {};
63
+ }
64
+ }
65
+ /** `401`. Falta la clave de API o ya no es válida. */
66
+ export class AuthenticationError extends ApiError {
67
+ }
68
+ /** `403`. Autenticado, pero sin permiso para esa operación. */
69
+ export class ForbiddenError extends ApiError {
70
+ }
71
+ /** `404`. El recurso no existe, o el CEP no está disponible (`cep_not_available`). */
72
+ export class NotFoundError extends ApiError {
73
+ }
74
+ /** `409`. Conflicto de estado; con `Idempotency-Key`, la petición anterior sigue en curso. */
75
+ export class ConflictError extends ApiError {
76
+ }
77
+ /** `400`, `413` y `422`. La petición hay que corregirla antes de repetirla. */
78
+ export class InvalidRequestError extends ApiError {
79
+ }
80
+ /** `429`. Límite de tasa superado, o cuota del plan agotada. */
81
+ export 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
+ retryAfter;
87
+ constructor(message, init) {
88
+ super(message, init);
89
+ this.retryAfter = init.retryAfter;
90
+ }
91
+ }
92
+ /** `5xx`. Admite reintento; el SDK ya lo hizo si quedaban intentos. */
93
+ export class ServerError extends ApiError {
94
+ }
95
+ /** La firma de un webhook no cuadra con el cuerpo recibido. */
96
+ export class SignatureVerificationError extends VerikoError {
97
+ }
98
+ /**
99
+ * `waitFor()` o `importWait()` agotaron su tiempo sin que el recurso llegara a un
100
+ * estado firme.
101
+ */
102
+ export class TimeoutError extends VerikoError {
103
+ /** El recurso que se esperaba: una validación o una importación. */
104
+ resourceId;
105
+ /** El tiempo de espera que se agotó, en milisegundos. */
106
+ timeoutMs;
107
+ constructor(message, resourceId, timeoutMs) {
108
+ super(message);
109
+ this.resourceId = resourceId;
110
+ this.timeoutMs = timeoutMs;
111
+ }
112
+ /** Es `resourceId` cuando lo que se esperaba era una validación. */
113
+ get validationId() {
114
+ return this.resourceId;
115
+ }
116
+ }
117
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,wCAAwC;AACxC,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AAED,uEAAuE;AACvE,MAAM,OAAO,kBAAmB,SAAQ,WAAW;CAAG;AAEtD,4FAA4F;AAC5F,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,QAAQ,CAAS;IAE1B,YAAY,OAAe,EAAE,QAAgB,EAAE,OAA6B;QAC1E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;CACF;AAaD,qDAAqD;AACrD,MAAM,OAAO,QAAS,SAAQ,WAAW;IACvC,mBAAmB;IACV,MAAM,CAAS;IACxB,oEAAoE;IAC3D,IAAI,CAAqB;IAClC,qDAAqD;IAC5C,MAAM,CAAqB;IACpC,oEAAoE;IAC3D,OAAO,CAAqB;IACrC,yEAAyE;IAChE,MAAM,CAAkB;IACjC,0EAA0E;IACjE,SAAS,CAAqB;IAC9B,IAAI,CAA0B;IACvC,8DAA8D;IACrD,OAAO,CAAyB;IAEzC,YAAY,OAAe,EAAE,IAAkB;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,CAAC;CACF;AAED,sDAAsD;AACtD,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;CAAG;AAEpD,+DAA+D;AAC/D,MAAM,OAAO,cAAe,SAAQ,QAAQ;CAAG;AAE/C,sFAAsF;AACtF,MAAM,OAAO,aAAc,SAAQ,QAAQ;CAAG;AAE9C,8FAA8F;AAC9F,MAAM,OAAO,aAAc,SAAQ,QAAQ;CAAG;AAE9C,+EAA+E;AAC/E,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;CAAG;AAEpD,gEAAgE;AAChE,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C;;;OAGG;IACM,UAAU,CAAqB;IAExC,YAAY,OAAe,EAAE,IAAwD;QACnF,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;CACF;AAED,uEAAuE;AACvE,MAAM,OAAO,WAAY,SAAQ,QAAQ;CAAG;AAE5C,+DAA+D;AAC/D,MAAM,OAAO,0BAA2B,SAAQ,WAAW;CAAG;AAE9D;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,oEAAoE;IAC3D,UAAU,CAAS;IAC5B,yDAAyD;IAChD,SAAS,CAAS;IAE3B,YAAY,OAAe,EAAE,UAAkB,EAAE,SAAiB;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,oEAAoE;IACpE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}