@factucat/sdk 0.2.1 → 0.3.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 ADDED
@@ -0,0 +1,74 @@
1
+ # @factucat/sdk
2
+
3
+ SDK **0.3.0**, cliente oficial de FactuCat para TypeScript y Node.js. Incluye métodos tipados, validación de respuestas y autenticación mediante el header `X-API-Key`. Úsalo desde tu servidor para mantener privada la API key.
4
+
5
+ Consulta la [referencia de los 20 métodos](https://docs.factucat.com/sdk/metodos/) para ver parámetros, permisos, respuestas completas y ejemplos, junto con la [configuración](https://docs.factucat.com/sdk/configuracion/), los [tipos y la paginación](https://docs.factucat.com/sdk/tipos-y-paginacion/) y el [manejo de errores](https://docs.factucat.com/sdk/errores-y-reintentos/).
6
+
7
+ | Gestor | Instalación |
8
+ | ------ | --------------------------- |
9
+ | npm | `npm install @factucat/sdk` |
10
+ | yarn | `yarn add @factucat/sdk` |
11
+ | pnpm | `pnpm add @factucat/sdk` |
12
+ | bun | `bun add @factucat/sdk` |
13
+ | nub | `nub add @factucat/sdk` |
14
+
15
+ ```ts
16
+ import { createFactuCatSdk } from '@factucat/sdk'
17
+
18
+ const apiKey = process.env.FACTUCAT_API_KEY
19
+ if (!apiKey) throw new Error('Falta FACTUCAT_API_KEY')
20
+
21
+ const factucat = createFactuCatSdk({ apiKey })
22
+
23
+ const cuenta = await factucat.getMe()
24
+ console.log(cuenta.scopes)
25
+ ```
26
+
27
+ Los métodos devuelven directamente `data`, sin el envoltorio HTTP. El runtime debe ofrecer `fetch`, `crypto.randomUUID` y `AbortSignal.any` (por ejemplo, Node.js 22 o posterior).
28
+
29
+ ## Ambiente automático
30
+
31
+ `baseUrl` es opcional. Una llave con prefijo `fc_test_` selecciona `https://sandbox.factucat.com`; las demás llaves usan `https://factucat.com`.
32
+
33
+ Para desarrollo local u otro ambiente, puedes indicar una `baseUrl` explícita. Esta opción tiene prioridad sobre el prefijo de la llave y debe ser el origen, sin `/api/v1`:
34
+
35
+ ```ts
36
+ const factucat = createFactuCatSdk({
37
+ apiKey,
38
+ baseUrl: 'http://localhost:3000',
39
+ })
40
+ ```
41
+
42
+ Prepara tu cuenta y tu llave de pruebas en [sandbox.factucat.com](https://sandbox.factucat.com). Si una solicitud falla, el SDK conserva el mismo ambiente al reintentar.
43
+
44
+ ## Idempotencia automática
45
+
46
+ Cuando omites `idempotencyKey`, cada llamada que modifica datos genera una clave UUID y la envía en `Idempotency-Key`. Si hay un error de red o timeout, el SDK reintenta una sola vez con la misma clave y contenido. Las consultas GET no generan claves.
47
+
48
+ ```ts
49
+ // Una operación nueva: la clave se genera automáticamente.
50
+ const borrador = await factucat.createDraft()
51
+ ```
52
+
53
+ Una llamada nueva genera otra clave. Para continuar la misma operación después de un reinicio o desde otro proceso, guarda tu propia clave antes de enviar la solicitud y reutilízala con el mismo método, ruta y contenido:
54
+
55
+ ```ts
56
+ const borrador = await factucat.createDraft(
57
+ {},
58
+ {
59
+ idempotencyKey: 'pedido-1001-crear-borrador',
60
+ },
61
+ )
62
+ ```
63
+
64
+ Las claves propias deben tener entre 1 y 255 caracteres; se eliminan los espacios al inicio y al final. No se aceptan claves vacías. Usa una clave distinta para el siguiente paso, por ejemplo `pedido-1001-timbrar`.
65
+
66
+ ## Errores y reintentos
67
+
68
+ - `FactuCatApiError`: respuesta HTTP de error, con `status`, `code`, `requestId` y `retryable`. El SDK la devuelve sin reintentar automáticamente, incluso cuando `retryable` es `true`.
69
+ - `FactuCatNetworkError`: fallo de transporte después del reintento, o cancelación mediante `signal`. `timedOut` indica si el error final fue un timeout.
70
+ - `ZodError`: solicitud o respuesta que no cumple el contrato. No se reintenta automáticamente.
71
+
72
+ El timeout predeterminado es de 30 segundos por intento y la espera entre intentos es de 250 ms. Puedes configurar `timeoutMs` al crear el cliente y pasar un `signal` en las opciones de cada operación.
73
+
74
+ La clave generada protege los reintentos internos de una llamada. Si se agotan durante el timbrado, consulta el borrador o documento original: un error de conexión no confirma que el CFDI no se haya emitido.
package/dist/index.d.ts CHANGED
@@ -1,23 +1,47 @@
1
- import type { CustomerCreateInput, CustomerListQuery, CustomerRecord, DraftAddItemInput, DraftCreateInput, DraftListItem, DraftListQuery, DraftRecord, DraftSetMetaInput, DraftSetReceiverInput, DraftStampInput, DraftUpdateItemInput, InvoiceListItem, InvoiceListQuery, InvoicePdfOutput, InvoiceRecord, InvoiceXmlOutput, PublicApiErrorCode, PublicMe } from '@factucat/public-api-contracts';
1
+ import type { CustomerCreateInput, CustomerListQuery, CustomerRecord, DraftAddItemInput, DraftCreateInput, DraftListItem, DraftListQuery, DraftRecord, DraftSetMetaInput, DraftSetReceiverInput, DraftStampInput, DraftUpdateItemInput, ExternalInvoiceCancelInput, ExternalInvoiceCancelOutput, InvoiceCancelInput, InvoiceCancelOutput, InvoiceListItem, InvoiceListQuery, InvoicePdfOutput, InvoiceRecord, InvoiceXmlOutput, PublicApiErrorCode, PublicMe } from '@factucat/public-api-contracts';
2
+ type HttpMethod = 'DELETE' | 'GET' | 'PATCH' | 'POST';
2
3
  export declare class FactuCatApiError extends Error {
3
- readonly code: PublicApiErrorCode;
4
+ /** Server error code; may be a newer code than this SDK's typed enum. */
5
+ readonly code: PublicApiErrorCode | (string & {});
4
6
  readonly requestId: string;
5
7
  readonly retryable: boolean;
6
8
  readonly status: number;
7
9
  constructor(input: {
8
- code: PublicApiErrorCode;
10
+ code: PublicApiErrorCode | (string & {});
9
11
  message: string;
10
12
  requestId: string;
11
13
  retryable: boolean;
12
14
  status: number;
13
15
  });
14
16
  }
17
+ export declare class FactuCatNetworkError extends Error {
18
+ readonly method: HttpMethod;
19
+ readonly path: string;
20
+ readonly retryable: boolean;
21
+ readonly timedOut: boolean;
22
+ constructor(input: {
23
+ method: HttpMethod;
24
+ path: string;
25
+ timedOut: boolean;
26
+ cause?: unknown;
27
+ });
28
+ }
15
29
  type RequestOptions = {
16
30
  signal?: AbortSignal;
31
+ /**
32
+ * Identifies one logical operation (1–255 characters).
33
+ * Mutations generate a UUID when omitted and reuse it for transport retries.
34
+ * Persist your own key to resume the same operation across separate calls.
35
+ */
17
36
  idempotencyKey?: string;
18
37
  };
19
38
  export type FactuCatSdkOptions = {
20
- baseUrl: string;
39
+ /**
40
+ * API origin, without /api/v1. Overrides automatic environment selection.
41
+ * Defaults to https://sandbox.factucat.com for fc_test_ keys and
42
+ * https://factucat.com for all other keys.
43
+ */
44
+ baseUrl?: string;
21
45
  apiKey: string;
22
46
  userAgent?: string;
23
47
  timeoutMs?: number;
@@ -30,6 +54,10 @@ export declare class FactuCatSdk {
30
54
  private readonly timeoutMs;
31
55
  private readonly userAgent?;
32
56
  constructor(options: FactuCatSdkOptions);
57
+ private isTimeoutError;
58
+ private shouldRetryRequest;
59
+ private toApiError;
60
+ private sleep;
33
61
  getMe(options?: RequestOptions): Promise<PublicMe>;
34
62
  listCustomers(input?: CustomerListQuery, options?: RequestOptions): Promise<{
35
63
  id: string;
@@ -106,10 +134,11 @@ export declare class FactuCatSdk {
106
134
  status: "error" | "draft" | "issued" | "cancelled";
107
135
  cfdiType: string;
108
136
  cfdiUse: string;
137
+ exportacion: "01" | "02" | "03" | "04";
109
138
  currency: "MXN" | "USD" | "EUR";
110
139
  exchangeRate: number;
111
140
  subtotal: number;
112
- vatRate: 0 | 0.1 | 0.16;
141
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
113
142
  taxTotal: number;
114
143
  total: number;
115
144
  pdfLanguage: "es" | "en";
@@ -124,7 +153,7 @@ export declare class FactuCatSdk {
124
153
  quantity: number;
125
154
  unitPrice: number;
126
155
  amount: number;
127
- vatRate: 0 | 0.1 | 0.16;
156
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
128
157
  isrWithholdingRate: 0 | 0.1 | 0.0125;
129
158
  productCode?: string | undefined;
130
159
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -161,10 +190,11 @@ export declare class FactuCatSdk {
161
190
  status: "error" | "draft" | "issued" | "cancelled";
162
191
  cfdiType: string;
163
192
  cfdiUse: string;
193
+ exportacion: "01" | "02" | "03" | "04";
164
194
  currency: "MXN" | "USD" | "EUR";
165
195
  exchangeRate: number;
166
196
  subtotal: number;
167
- vatRate: 0 | 0.1 | 0.16;
197
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
168
198
  taxTotal: number;
169
199
  total: number;
170
200
  pdfLanguage: "es" | "en";
@@ -179,7 +209,7 @@ export declare class FactuCatSdk {
179
209
  quantity: number;
180
210
  unitPrice: number;
181
211
  amount: number;
182
- vatRate: 0 | 0.1 | 0.16;
212
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
183
213
  isrWithholdingRate: 0 | 0.1 | 0.0125;
184
214
  productCode?: string | undefined;
185
215
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -216,10 +246,11 @@ export declare class FactuCatSdk {
216
246
  status: "error" | "draft" | "issued" | "cancelled";
217
247
  cfdiType: string;
218
248
  cfdiUse: string;
249
+ exportacion: "01" | "02" | "03" | "04";
219
250
  currency: "MXN" | "USD" | "EUR";
220
251
  exchangeRate: number;
221
252
  subtotal: number;
222
- vatRate: 0 | 0.1 | 0.16;
253
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
223
254
  taxTotal: number;
224
255
  total: number;
225
256
  pdfLanguage: "es" | "en";
@@ -234,7 +265,7 @@ export declare class FactuCatSdk {
234
265
  quantity: number;
235
266
  unitPrice: number;
236
267
  amount: number;
237
- vatRate: 0 | 0.1 | 0.16;
268
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
238
269
  isrWithholdingRate: 0 | 0.1 | 0.0125;
239
270
  productCode?: string | undefined;
240
271
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -271,10 +302,11 @@ export declare class FactuCatSdk {
271
302
  status: "error" | "draft" | "issued" | "cancelled";
272
303
  cfdiType: string;
273
304
  cfdiUse: string;
305
+ exportacion: "01" | "02" | "03" | "04";
274
306
  currency: "MXN" | "USD" | "EUR";
275
307
  exchangeRate: number;
276
308
  subtotal: number;
277
- vatRate: 0 | 0.1 | 0.16;
309
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
278
310
  taxTotal: number;
279
311
  total: number;
280
312
  pdfLanguage: "es" | "en";
@@ -289,7 +321,7 @@ export declare class FactuCatSdk {
289
321
  quantity: number;
290
322
  unitPrice: number;
291
323
  amount: number;
292
- vatRate: 0 | 0.1 | 0.16;
324
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
293
325
  isrWithholdingRate: 0 | 0.1 | 0.0125;
294
326
  productCode?: string | undefined;
295
327
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -326,10 +358,11 @@ export declare class FactuCatSdk {
326
358
  status: "error" | "draft" | "issued" | "cancelled";
327
359
  cfdiType: string;
328
360
  cfdiUse: string;
361
+ exportacion: "01" | "02" | "03" | "04";
329
362
  currency: "MXN" | "USD" | "EUR";
330
363
  exchangeRate: number;
331
364
  subtotal: number;
332
- vatRate: 0 | 0.1 | 0.16;
365
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
333
366
  taxTotal: number;
334
367
  total: number;
335
368
  pdfLanguage: "es" | "en";
@@ -344,7 +377,7 @@ export declare class FactuCatSdk {
344
377
  quantity: number;
345
378
  unitPrice: number;
346
379
  amount: number;
347
- vatRate: 0 | 0.1 | 0.16;
380
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
348
381
  isrWithholdingRate: 0 | 0.1 | 0.0125;
349
382
  productCode?: string | undefined;
350
383
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -381,10 +414,11 @@ export declare class FactuCatSdk {
381
414
  status: "error" | "draft" | "issued" | "cancelled";
382
415
  cfdiType: string;
383
416
  cfdiUse: string;
417
+ exportacion: "01" | "02" | "03" | "04";
384
418
  currency: "MXN" | "USD" | "EUR";
385
419
  exchangeRate: number;
386
420
  subtotal: number;
387
- vatRate: 0 | 0.1 | 0.16;
421
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
388
422
  taxTotal: number;
389
423
  total: number;
390
424
  pdfLanguage: "es" | "en";
@@ -399,7 +433,7 @@ export declare class FactuCatSdk {
399
433
  quantity: number;
400
434
  unitPrice: number;
401
435
  amount: number;
402
- vatRate: 0 | 0.1 | 0.16;
436
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
403
437
  isrWithholdingRate: 0 | 0.1 | 0.0125;
404
438
  productCode?: string | undefined;
405
439
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -436,10 +470,11 @@ export declare class FactuCatSdk {
436
470
  status: "error" | "draft" | "issued" | "cancelled";
437
471
  cfdiType: string;
438
472
  cfdiUse: string;
473
+ exportacion: "01" | "02" | "03" | "04";
439
474
  currency: "MXN" | "USD" | "EUR";
440
475
  exchangeRate: number;
441
476
  subtotal: number;
442
- vatRate: 0 | 0.1 | 0.16;
477
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
443
478
  taxTotal: number;
444
479
  total: number;
445
480
  pdfLanguage: "es" | "en";
@@ -454,7 +489,7 @@ export declare class FactuCatSdk {
454
489
  quantity: number;
455
490
  unitPrice: number;
456
491
  amount: number;
457
- vatRate: 0 | 0.1 | 0.16;
492
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
458
493
  isrWithholdingRate: 0 | 0.1 | 0.0125;
459
494
  productCode?: string | undefined;
460
495
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -494,10 +529,11 @@ export declare class FactuCatSdk {
494
529
  status: "error" | "draft" | "issued" | "cancelled";
495
530
  cfdiType: string;
496
531
  cfdiUse: string;
532
+ exportacion: "01" | "02" | "03" | "04";
497
533
  currency: "MXN" | "USD" | "EUR";
498
534
  exchangeRate: number;
499
535
  subtotal: number;
500
- vatRate: 0 | 0.1 | 0.16;
536
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
501
537
  taxTotal: number;
502
538
  total: number;
503
539
  pdfLanguage: "es" | "en";
@@ -512,7 +548,7 @@ export declare class FactuCatSdk {
512
548
  quantity: number;
513
549
  unitPrice: number;
514
550
  amount: number;
515
- vatRate: 0 | 0.1 | 0.16;
551
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
516
552
  isrWithholdingRate: 0 | 0.1 | 0.0125;
517
553
  productCode?: string | undefined;
518
554
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -538,6 +574,8 @@ export declare class FactuCatSdk {
538
574
  issuedAt?: string | undefined;
539
575
  cancelledAt?: string | undefined;
540
576
  }>;
577
+ cancelInvoice(id: string, input: InvoiceCancelInput, options?: RequestOptions): Promise<InvoiceCancelOutput>;
578
+ cancelExternalInvoice(input: ExternalInvoiceCancelInput, options?: RequestOptions): Promise<ExternalInvoiceCancelOutput>;
541
579
  listInvoices(input?: InvoiceListQuery, options?: RequestOptions): Promise<{
542
580
  id: string;
543
581
  folio: string;
@@ -562,10 +600,11 @@ export declare class FactuCatSdk {
562
600
  status: "error" | "draft" | "issued" | "cancelled";
563
601
  cfdiType: string;
564
602
  cfdiUse: string;
603
+ exportacion: "01" | "02" | "03" | "04";
565
604
  currency: "MXN" | "USD" | "EUR";
566
605
  exchangeRate: number;
567
606
  subtotal: number;
568
- vatRate: 0 | 0.1 | 0.16;
607
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
569
608
  taxTotal: number;
570
609
  total: number;
571
610
  pdfLanguage: "es" | "en";
@@ -580,7 +619,7 @@ export declare class FactuCatSdk {
580
619
  quantity: number;
581
620
  unitPrice: number;
582
621
  amount: number;
583
- vatRate: 0 | 0.1 | 0.16;
622
+ vatRate: 0 | 0.08 | 0.1 | 0.16;
584
623
  isrWithholdingRate: 0 | 0.1 | 0.0125;
585
624
  productCode?: string | undefined;
586
625
  vatSource?: "default" | "manual" | "inferred" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
+ import { createPublicSuccessEnvelopeSchema, customerCreateInputSchema, customerListQuerySchema, customerRecordSchema, draftAddItemInputSchema, draftCreateInputSchema, draftListItemSchema, draftListQuerySchema, draftRecordSchema, draftSetMetaInputSchema, draftSetReceiverInputSchema, draftStampInputSchema, draftUpdateItemInputSchema, externalInvoiceCancelInputSchema, externalInvoiceCancelOutputSchema, invoiceCancelInputSchema, invoiceCancelOutputSchema, invoiceListItemSchema, invoiceListQuerySchema, invoicePdfOutputSchema, invoiceRecordSchema, invoiceXmlOutputSchema, publicApiErrorCodeSchema, publicErrorEnvelopeSchema, publicMeSchema, } from '@factucat/public-api-contracts';
1
2
  import { z } from 'zod';
2
- import { createPublicSuccessEnvelopeSchema, customerCreateInputSchema, customerListQuerySchema, customerRecordSchema, draftAddItemInputSchema, draftCreateInputSchema, draftListItemSchema, draftListQuerySchema, draftRecordSchema, draftSetMetaInputSchema, draftSetReceiverInputSchema, draftStampInputSchema, draftUpdateItemInputSchema, invoiceListItemSchema, invoiceListQuerySchema, invoicePdfOutputSchema, invoiceRecordSchema, invoiceXmlOutputSchema, publicErrorEnvelopeSchema, publicMeSchema, } from '@factucat/public-api-contracts';
3
3
  export class FactuCatApiError extends Error {
4
+ /** Server error code; may be a newer code than this SDK's typed enum. */
4
5
  code;
5
6
  requestId;
6
7
  retryable;
@@ -14,6 +15,23 @@ export class FactuCatApiError extends Error {
14
15
  this.status = input.status;
15
16
  }
16
17
  }
18
+ export class FactuCatNetworkError extends Error {
19
+ method;
20
+ path;
21
+ retryable;
22
+ timedOut;
23
+ constructor(input) {
24
+ super(input.timedOut
25
+ ? `FactuCat tardó demasiado en responder (${input.method} ${input.path}).`
26
+ : `No fue posible conectar con FactuCat (${input.method} ${input.path}).`);
27
+ this.name = 'FactuCatNetworkError';
28
+ this.method = input.method;
29
+ this.path = input.path;
30
+ this.retryable = true;
31
+ this.timedOut = input.timedOut;
32
+ this.cause = input.cause;
33
+ }
34
+ }
17
35
  function buildQuery(params) {
18
36
  const search = new URLSearchParams();
19
37
  for (const [key, value] of Object.entries(params)) {
@@ -33,11 +51,66 @@ export class FactuCatSdk {
33
51
  userAgent;
34
52
  constructor(options) {
35
53
  this.apiKey = options.apiKey;
36
- this.baseUrl = options.baseUrl.replace(/\/+$/, '');
54
+ this.baseUrl = (options.baseUrl ??
55
+ (options.apiKey.startsWith('fc_test_')
56
+ ? 'https://sandbox.factucat.com'
57
+ : 'https://factucat.com')).replace(/\/+$/, '');
37
58
  this.fetchImpl = options.fetch ?? fetch;
38
59
  this.timeoutMs = options.timeoutMs ?? 30_000;
39
60
  this.userAgent = options.userAgent;
40
61
  }
62
+ isTimeoutError(error) {
63
+ return error instanceof Error && error.name === 'AbortError';
64
+ }
65
+ shouldRetryRequest(input) {
66
+ return (input.method === 'GET' ||
67
+ input.method === 'DELETE' ||
68
+ input.idempotencyKey !== undefined);
69
+ }
70
+ toApiError(json, response) {
71
+ const parsed = publicErrorEnvelopeSchema.safeParse(json);
72
+ if (parsed.success) {
73
+ return new FactuCatApiError({
74
+ ...parsed.data.error,
75
+ status: response.status,
76
+ });
77
+ }
78
+ const headerRequestId = response.headers.get('x-request-id') ??
79
+ response.headers.get('X-Request-Id');
80
+ const body = json && typeof json === 'object' && 'error' in json
81
+ ? json.error
82
+ : undefined;
83
+ const record = body && typeof body === 'object' ? body : null;
84
+ const codeRaw = typeof record?.code === 'string' ? record.code : null;
85
+ const knownCode = codeRaw
86
+ ? publicApiErrorCodeSchema.safeParse(codeRaw)
87
+ : null;
88
+ const message = typeof record?.message === 'string' && record.message.trim().length > 0
89
+ ? record.message
90
+ : `Respuesta inválida del servidor (${response.status}).`;
91
+ const requestId = (typeof record?.requestId === 'string' &&
92
+ record.requestId.trim().length > 0
93
+ ? record.requestId
94
+ : null) ??
95
+ (headerRequestId && headerRequestId.trim().length > 0
96
+ ? headerRequestId
97
+ : 'unknown');
98
+ const retryable = typeof record?.retryable === 'boolean'
99
+ ? record.retryable
100
+ : response.status >= 500;
101
+ return new FactuCatApiError({
102
+ code: knownCode?.success
103
+ ? knownCode.data
104
+ : (codeRaw ?? 'internal_error'),
105
+ message,
106
+ requestId,
107
+ retryable,
108
+ status: response.status,
109
+ });
110
+ }
111
+ async sleep(ms) {
112
+ await new Promise((resolve) => setTimeout(resolve, ms));
113
+ }
41
114
  async getMe(options) {
42
115
  return this.request('/api/v1/me', {
43
116
  method: 'GET',
@@ -145,6 +218,22 @@ export class FactuCatSdk {
145
218
  ...options,
146
219
  });
147
220
  }
221
+ async cancelInvoice(id, input, options) {
222
+ return this.request(`/api/v1/invoices/${id}/cancel`, {
223
+ method: 'POST',
224
+ body: invoiceCancelInputSchema.parse(input),
225
+ responseSchema: createPublicSuccessEnvelopeSchema(invoiceCancelOutputSchema),
226
+ ...options,
227
+ });
228
+ }
229
+ async cancelExternalInvoice(input, options) {
230
+ return this.request('/api/v1/external-invoice-cancellations', {
231
+ method: 'POST',
232
+ body: externalInvoiceCancelInputSchema.parse(input),
233
+ responseSchema: createPublicSuccessEnvelopeSchema(externalInvoiceCancelOutputSchema),
234
+ ...options,
235
+ });
236
+ }
148
237
  async listInvoices(input = {}, options) {
149
238
  const query = invoiceListQuerySchema.parse(input);
150
239
  return this.request(`/api/v1/invoices${buildQuery(query)}`, {
@@ -175,48 +264,72 @@ export class FactuCatSdk {
175
264
  });
176
265
  }
177
266
  async request(path, input) {
178
- const controller = new AbortController();
179
- const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
180
- const signal = input.signal
181
- ? AbortSignal.any([input.signal, controller.signal])
182
- : controller.signal;
183
- try {
184
- const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
185
- method: input.method,
186
- headers: {
187
- 'content-type': 'application/json',
188
- 'x-api-key': this.apiKey,
189
- ...(this.userAgent ? { 'user-agent': this.userAgent } : {}),
190
- ...(input.idempotencyKey
191
- ? { 'idempotency-key': input.idempotencyKey }
192
- : {}),
193
- },
194
- body: input.body === undefined ? undefined : JSON.stringify(input.body),
195
- signal,
196
- });
197
- const json = await response.json().catch(() => ({}));
198
- if (!response.ok) {
199
- const parsed = publicErrorEnvelopeSchema.safeParse(json);
200
- if (parsed.success) {
201
- throw new FactuCatApiError({
202
- ...parsed.data.error,
203
- status: response.status,
204
- });
267
+ // Resolve once per logical call, before retries can reach the server.
268
+ const idempotencyKey = input.idempotencyKey === undefined
269
+ ? input.method === 'GET'
270
+ ? undefined
271
+ : globalThis.crypto.randomUUID()
272
+ : z.string().trim().min(1).max(255).parse(input.idempotencyKey);
273
+ const maxAttempts = this.shouldRetryRequest({
274
+ method: input.method,
275
+ idempotencyKey,
276
+ })
277
+ ? 2
278
+ : 1;
279
+ for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
280
+ const controller = new AbortController();
281
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
282
+ const signal = input.signal
283
+ ? AbortSignal.any([input.signal, controller.signal])
284
+ : controller.signal;
285
+ try {
286
+ const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
287
+ method: input.method,
288
+ headers: {
289
+ accept: 'application/json',
290
+ 'x-api-key': this.apiKey,
291
+ ...(input.body === undefined
292
+ ? {}
293
+ : { 'content-type': 'application/json' }),
294
+ ...(this.userAgent ? { 'user-agent': this.userAgent } : {}),
295
+ ...(idempotencyKey ? { 'idempotency-key': idempotencyKey } : {}),
296
+ },
297
+ body: input.body === undefined ? undefined : JSON.stringify(input.body),
298
+ signal,
299
+ });
300
+ const json = await response.json().catch(() => ({}));
301
+ if (!response.ok) {
302
+ throw this.toApiError(json, response);
205
303
  }
206
- throw new FactuCatApiError({
207
- code: 'internal_error',
208
- message: `Respuesta inválida del servidor (${response.status}).`,
209
- requestId: 'unknown',
210
- retryable: response.status >= 500,
211
- status: response.status,
304
+ const parsed = input.responseSchema.parse(json);
305
+ return parsed.data;
306
+ }
307
+ catch (error) {
308
+ if (error instanceof FactuCatApiError || error instanceof z.ZodError) {
309
+ throw error;
310
+ }
311
+ const timedOut = this.isTimeoutError(error);
312
+ const shouldRetry = attempt < maxAttempts && !input.signal?.aborted;
313
+ if (shouldRetry) {
314
+ await this.sleep(250);
315
+ continue;
316
+ }
317
+ throw new FactuCatNetworkError({
318
+ method: input.method,
319
+ path,
320
+ timedOut,
321
+ cause: error,
212
322
  });
213
323
  }
214
- const parsed = input.responseSchema.parse(json);
215
- return parsed.data;
216
- }
217
- finally {
218
- clearTimeout(timeout);
324
+ finally {
325
+ clearTimeout(timeout);
326
+ }
219
327
  }
328
+ throw new FactuCatNetworkError({
329
+ method: input.method,
330
+ path,
331
+ timedOut: false,
332
+ });
220
333
  }
221
334
  }
222
335
  export function createFactuCatSdk(options) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factucat/sdk",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -19,10 +19,20 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "zod": "^4.3.6",
22
- "@factucat/public-api-contracts": "0.2.1"
22
+ "@factucat/public-api-contracts": "0.3.0"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/factucat/factucat.git",
27
+ "directory": "packages/sdk"
28
+ },
29
+ "homepage": "https://github.com/factucat/factucat/tree/main/packages/sdk",
30
+ "bugs": {
31
+ "url": "https://github.com/factucat/factucat/issues"
23
32
  },
24
33
  "scripts": {
25
34
  "build": "tsc -p tsconfig.build.json",
26
- "lint": "eslint \"src/**/*.ts\" --ignore-pattern \"src/**/*.d.ts\""
35
+ "test": "pnpm build && node --test tests/*.test.mjs",
36
+ "lint": "eslint \"src/**/*.ts\" \"tests/**/*.mjs\" --ignore-pattern \"src/**/*.d.ts\""
27
37
  }
28
38
  }