@timbra-ec/types 0.1.0-dev.20260403050717

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 (48) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/dist/client.d.ts +29 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +9 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/ice.d.ts +17 -0
  7. package/dist/ice.d.ts.map +1 -0
  8. package/dist/ice.js +63 -0
  9. package/dist/ice.js.map +1 -0
  10. package/dist/index.d.ts +9 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +14 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/invoice.d.ts +129 -0
  15. package/dist/invoice.d.ts.map +1 -0
  16. package/dist/invoice.js +36 -0
  17. package/dist/invoice.js.map +1 -0
  18. package/dist/product.d.ts +20 -0
  19. package/dist/product.d.ts.map +1 -0
  20. package/dist/product.js +2 -0
  21. package/dist/product.js.map +1 -0
  22. package/dist/schemas/client.schema.d.ts +34 -0
  23. package/dist/schemas/client.schema.d.ts.map +1 -0
  24. package/dist/schemas/client.schema.js +13 -0
  25. package/dist/schemas/client.schema.js.map +1 -0
  26. package/dist/schemas/invoice.schema.d.ts +204 -0
  27. package/dist/schemas/invoice.schema.d.ts.map +1 -0
  28. package/dist/schemas/invoice.schema.js +44 -0
  29. package/dist/schemas/invoice.schema.js.map +1 -0
  30. package/dist/sri.d.ts +46 -0
  31. package/dist/sri.d.ts.map +1 -0
  32. package/dist/sri.js +21 -0
  33. package/dist/sri.js.map +1 -0
  34. package/dist/user.d.ts +41 -0
  35. package/dist/user.d.ts.map +1 -0
  36. package/dist/user.js +2 -0
  37. package/dist/user.js.map +1 -0
  38. package/package.json +32 -0
  39. package/src/client.ts +30 -0
  40. package/src/ice.ts +71 -0
  41. package/src/index.ts +15 -0
  42. package/src/invoice.ts +137 -0
  43. package/src/product.ts +16 -0
  44. package/src/schemas/client.schema.ts +15 -0
  45. package/src/schemas/invoice.schema.ts +56 -0
  46. package/src/sri.ts +54 -0
  47. package/src/user.ts +44 -0
  48. package/tsconfig.json +8 -0
@@ -0,0 +1,4 @@
1
+
2
+ > @timbra-ec/types@0.1.2 build /home/runner/work/timbra-app/timbra-app/packages/types
3
+ > tsc
4
+
@@ -0,0 +1,29 @@
1
+ /** SRI identification type codes */
2
+ export declare const ID_TYPES: {
3
+ readonly RUC: "04";
4
+ readonly CEDULA: "05";
5
+ readonly PASAPORTE: "06";
6
+ readonly CONSUMIDOR_FINAL: "07";
7
+ readonly EXTERIOR: "08";
8
+ };
9
+ export type IdTypeCode = (typeof ID_TYPES)[keyof typeof ID_TYPES];
10
+ /** Client / customer of a business */
11
+ export interface Client {
12
+ id: string;
13
+ organizationId: string;
14
+ tipoIdentificacion: IdTypeCode;
15
+ identificacion: string;
16
+ razonSocial: string;
17
+ nombreComercial?: string;
18
+ direccion?: string;
19
+ email?: string;
20
+ telefono?: string;
21
+ tags?: string[];
22
+ notes?: string;
23
+ preferredPaymentMethod?: string;
24
+ sendEmailDefault: boolean;
25
+ sendWhatsappDefault: boolean;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ }
29
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAA;AAEjE,sCAAsC;AACtC,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,UAAU,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB"}
package/dist/client.js ADDED
@@ -0,0 +1,9 @@
1
+ /** SRI identification type codes */
2
+ export const ID_TYPES = {
3
+ RUC: '04',
4
+ CEDULA: '05',
5
+ PASAPORTE: '06',
6
+ CONSUMIDOR_FINAL: '07',
7
+ EXTERIOR: '08',
8
+ };
9
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,IAAI;CACN,CAAA"}
package/dist/ice.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /** SRI ICE (Impuesto a los Consumos Especiales) tax categories.
2
+ * codigo = '3' (ICE) per SRI ficha tecnica.
3
+ * Rates are approximate — consult SRI tables for current values. */
4
+ export interface IceCategory {
5
+ codigo: '3';
6
+ codigoPorcentaje: string;
7
+ descripcion: string;
8
+ tarifa: number;
9
+ }
10
+ /**
11
+ * Common ICE categories. codigoPorcentaje values align with SRI Anexo 7.
12
+ * Not exhaustive — covers the most common product types that carry ICE.
13
+ */
14
+ export declare const ICE_CATEGORIES: IceCategory[];
15
+ /** Lookup an ICE category by codigoPorcentaje */
16
+ export declare function getIceCategory(codigoPorcentaje: string): IceCategory | undefined;
17
+ //# sourceMappingURL=ice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ice.d.ts","sourceRoot":"","sources":["../src/ice.ts"],"names":[],"mappings":"AAAA;;qEAEqE;AAErE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,EAkDvC,CAAA;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEhF"}
package/dist/ice.js ADDED
@@ -0,0 +1,63 @@
1
+ /** SRI ICE (Impuesto a los Consumos Especiales) tax categories.
2
+ * codigo = '3' (ICE) per SRI ficha tecnica.
3
+ * Rates are approximate — consult SRI tables for current values. */
4
+ /**
5
+ * Common ICE categories. codigoPorcentaje values align with SRI Anexo 7.
6
+ * Not exhaustive — covers the most common product types that carry ICE.
7
+ */
8
+ export const ICE_CATEGORIES = [
9
+ { codigo: '3', codigoPorcentaje: '3011', descripcion: 'Bebidas alcoholicas', tarifa: 75 },
10
+ { codigo: '3', codigoPorcentaje: '3021', descripcion: 'Cerveza artesanal', tarifa: 20 },
11
+ { codigo: '3', codigoPorcentaje: '3023', descripcion: 'Cerveza industrial', tarifa: 75 },
12
+ { codigo: '3', codigoPorcentaje: '3031', descripcion: 'Cigarrillos', tarifa: 150 },
13
+ { codigo: '3', codigoPorcentaje: '3041', descripcion: 'Bebidas gaseosas', tarifa: 10 },
14
+ {
15
+ codigo: '3',
16
+ codigoPorcentaje: '3051',
17
+ descripcion: 'Bebidas energizantes',
18
+ tarifa: 10,
19
+ },
20
+ {
21
+ codigo: '3',
22
+ codigoPorcentaje: '3072',
23
+ descripcion: 'Vehiculos motorizados (hasta 20k)',
24
+ tarifa: 5,
25
+ },
26
+ {
27
+ codigo: '3',
28
+ codigoPorcentaje: '3073',
29
+ descripcion: 'Vehiculos motorizados (20k-30k)',
30
+ tarifa: 10,
31
+ },
32
+ {
33
+ codigo: '3',
34
+ codigoPorcentaje: '3074',
35
+ descripcion: 'Vehiculos motorizados (30k-40k)',
36
+ tarifa: 15,
37
+ },
38
+ {
39
+ codigo: '3',
40
+ codigoPorcentaje: '3075',
41
+ descripcion: 'Vehiculos motorizados (40k-50k)',
42
+ tarifa: 20,
43
+ },
44
+ {
45
+ codigo: '3',
46
+ codigoPorcentaje: '3076',
47
+ descripcion: 'Vehiculos motorizados (50k-60k)',
48
+ tarifa: 25,
49
+ },
50
+ {
51
+ codigo: '3',
52
+ codigoPorcentaje: '3077',
53
+ descripcion: 'Vehiculos motorizados (60k-70k)',
54
+ tarifa: 30,
55
+ },
56
+ { codigo: '3', codigoPorcentaje: '3092', descripcion: 'Perfumes y aguas de tocador', tarifa: 20 },
57
+ { codigo: '3', codigoPorcentaje: '3610', descripcion: 'Fundas plasticas', tarifa: 0.04 },
58
+ ];
59
+ /** Lookup an ICE category by codigoPorcentaje */
60
+ export function getIceCategory(codigoPorcentaje) {
61
+ return ICE_CATEGORIES.find((c) => c.codigoPorcentaje === codigoPorcentaje);
62
+ }
63
+ //# sourceMappingURL=ice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ice.js","sourceRoot":"","sources":["../src/ice.ts"],"names":[],"mappings":"AAAA;;qEAEqE;AASrE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,EAAE;IACzF,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE;IACvF,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAAE;IACxF,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE;IAClF,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE;IACtF;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,EAAE;KACX;IACD;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,mCAAmC;QAChD,MAAM,EAAE,CAAC;KACV;IACD;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,EAAE;KACX;IACD;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,EAAE;KACX;IACD;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,EAAE;KACX;IACD;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,EAAE;KACX;IACD;QACE,MAAM,EAAE,GAAG;QACX,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,EAAE;KACX;IACD,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,EAAE,EAAE,EAAE;IACjG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE;CACzF,CAAA;AAED,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,gBAAwB;IACrD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAA;AAC5E,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './invoice.js';
2
+ export * from './client.js';
3
+ export * from './product.js';
4
+ export * from './user.js';
5
+ export * from './sri.js';
6
+ export * from './ice.js';
7
+ export * from './schemas/invoice.schema.js';
8
+ export * from './schemas/client.schema.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AAGxB,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ // @timbra-ec/types — Shared type definitions and Zod schemas
2
+ // This package is the stability anchor for the entire monorepo.
3
+ // All other packages depend on these types.
4
+ // Re-export all types
5
+ export * from './invoice.js';
6
+ export * from './client.js';
7
+ export * from './product.js';
8
+ export * from './user.js';
9
+ export * from './sri.js';
10
+ export * from './ice.js';
11
+ // Re-export schemas
12
+ export * from './schemas/invoice.schema.js';
13
+ export * from './schemas/client.schema.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,gEAAgE;AAChE,4CAA4C;AAE5C,sBAAsB;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AAExB,oBAAoB;AACpB,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1,129 @@
1
+ import type { SriMensaje } from './sri.js';
2
+ /** SRI Document type codes */
3
+ export type DocumentTypeCode = '01' | '03' | '04' | '05' | '06' | '07';
4
+ export declare const DOCUMENT_TYPES: {
5
+ readonly FACTURA: "01";
6
+ readonly LIQUIDACION_COMPRA: "03";
7
+ readonly NOTA_CREDITO: "04";
8
+ readonly NOTA_DEBITO: "05";
9
+ readonly GUIA_REMISION: "06";
10
+ readonly COMPROBANTE_RETENCION: "07";
11
+ };
12
+ /** SRI IVA rate codes */
13
+ export declare const IVA_RATES: {
14
+ /** 0% IVA */
15
+ readonly ZERO: {
16
+ readonly codigoPorcentaje: "0";
17
+ readonly tarifa: "0.00";
18
+ };
19
+ /** 12% IVA (historical, pre-2024) */
20
+ readonly TWELVE: {
21
+ readonly codigoPorcentaje: "2";
22
+ readonly tarifa: "12.00";
23
+ };
24
+ /** 14% IVA (historical) */
25
+ readonly FOURTEEN: {
26
+ readonly codigoPorcentaje: "3";
27
+ readonly tarifa: "14.00";
28
+ };
29
+ /** 15% IVA (current since 2024) */
30
+ readonly FIFTEEN: {
31
+ readonly codigoPorcentaje: "4";
32
+ readonly tarifa: "15.00";
33
+ };
34
+ /** 5% IVA (special reduced rate) — SRI Ficha Tecnica v2.30 Tabla 17, code 5 */
35
+ readonly FIVE: {
36
+ readonly codigoPorcentaje: "5";
37
+ readonly tarifa: "5.00";
38
+ };
39
+ /** 8% IVA diferenciado (tourism, up to 12 days/year by executive decree) — SRI Tabla 17 code 8 */
40
+ readonly EIGHT: {
41
+ readonly codigoPorcentaje: "8";
42
+ readonly tarifa: "8.00";
43
+ };
44
+ };
45
+ /** Payment method codes — SRI Ficha Tecnica v2.30, Formas de Pago Vigentes */
46
+ export declare const PAYMENT_METHODS: {
47
+ readonly EFECTIVO: "01";
48
+ readonly COMPENSACION_DEUDAS: "15";
49
+ readonly TARJETA_DEBITO: "16";
50
+ readonly DINERO_ELECTRONICO: "17";
51
+ readonly TARJETA_PREPAGO: "18";
52
+ readonly TARJETA_CREDITO: "19";
53
+ /** "Otros con utilizacion del sistema financiero" — covers bank transfers */
54
+ readonly TRANSFERENCIA: "20";
55
+ readonly ENDOSO_TITULOS: "21";
56
+ };
57
+ /** SRI environment */
58
+ export type SriEnvironment = '1' | '2';
59
+ /** SRI emission type */
60
+ export type EmissionType = '1' | '2';
61
+ /** SRI authorization status */
62
+ export type SriAuthStatus = 'PENDIENTE' | 'RECIBIDA' | 'DEVUELTA' | 'AUTORIZADO' | 'NO AUTORIZADO' | 'EN PROCESO' | 'ANULADO' | 'FALLIDO';
63
+ /** Invoice line item */
64
+ export interface InvoiceItem {
65
+ codigoPrincipal: string;
66
+ descripcion: string;
67
+ cantidad: number;
68
+ precioUnitario: number;
69
+ descuento: number;
70
+ precioTotalSinImpuesto: number;
71
+ impuestos: {
72
+ codigo: string;
73
+ codigoPorcentaje: string;
74
+ tarifa: number;
75
+ baseImponible: number;
76
+ valor: number;
77
+ }[];
78
+ detallesAdicionales?: {
79
+ nombre: string;
80
+ valor: string;
81
+ }[];
82
+ }
83
+ /** Payment detail */
84
+ export interface PaymentDetail {
85
+ formaPago: string;
86
+ total: number;
87
+ plazo?: number;
88
+ unidadTiempo?: string;
89
+ }
90
+ /** Core invoice data */
91
+ export interface Invoice {
92
+ id: string;
93
+ organizationId: string;
94
+ claveAcceso: string;
95
+ codDoc: DocumentTypeCode;
96
+ estab: string;
97
+ ptoEmi: string;
98
+ secuencial: string;
99
+ fechaEmision: string;
100
+ ambiente: SriEnvironment;
101
+ tipoEmision: EmissionType;
102
+ tipoIdentificacionComprador: string;
103
+ identificacionComprador: string;
104
+ razonSocialComprador: string;
105
+ totalSinImpuestos: number;
106
+ totalDescuento: number;
107
+ propina: number;
108
+ importeTotal: number;
109
+ moneda: string;
110
+ items: InvoiceItem[];
111
+ pagos: PaymentDetail[];
112
+ infoAdicional?: Record<string, string>;
113
+ sriStatus: SriAuthStatus;
114
+ sriMensajes?: SriMensaje[];
115
+ numeroAutorizacion?: string;
116
+ fechaAutorizacion?: string;
117
+ authorizedXmlUrl?: string;
118
+ ridePdfUrl?: string;
119
+ /** Transport data for guia de remision (cod_doc='06'), stored as jsonb */
120
+ guiaData?: Record<string, unknown>;
121
+ /** Fiscal period MM/YYYY for retenciones (cod_doc='07') */
122
+ periodoFiscal?: string;
123
+ retryCount: number;
124
+ retryAfter?: string;
125
+ lastSriError?: string;
126
+ createdAt: string;
127
+ updatedAt: string;
128
+ }
129
+ //# sourceMappingURL=invoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../src/invoice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export const DOCUMENT_TYPES = {
2
+ FACTURA: '01',
3
+ LIQUIDACION_COMPRA: '03',
4
+ NOTA_CREDITO: '04',
5
+ NOTA_DEBITO: '05',
6
+ GUIA_REMISION: '06',
7
+ COMPROBANTE_RETENCION: '07',
8
+ };
9
+ /** SRI IVA rate codes */
10
+ export const IVA_RATES = {
11
+ /** 0% IVA */
12
+ ZERO: { codigoPorcentaje: '0', tarifa: '0.00' },
13
+ /** 12% IVA (historical, pre-2024) */
14
+ TWELVE: { codigoPorcentaje: '2', tarifa: '12.00' },
15
+ /** 14% IVA (historical) */
16
+ FOURTEEN: { codigoPorcentaje: '3', tarifa: '14.00' },
17
+ /** 15% IVA (current since 2024) */
18
+ FIFTEEN: { codigoPorcentaje: '4', tarifa: '15.00' },
19
+ /** 5% IVA (special reduced rate) — SRI Ficha Tecnica v2.30 Tabla 17, code 5 */
20
+ FIVE: { codigoPorcentaje: '5', tarifa: '5.00' },
21
+ /** 8% IVA diferenciado (tourism, up to 12 days/year by executive decree) — SRI Tabla 17 code 8 */
22
+ EIGHT: { codigoPorcentaje: '8', tarifa: '8.00' },
23
+ };
24
+ /** Payment method codes — SRI Ficha Tecnica v2.30, Formas de Pago Vigentes */
25
+ export const PAYMENT_METHODS = {
26
+ EFECTIVO: '01', // Sin utilizacion del sistema financiero
27
+ COMPENSACION_DEUDAS: '15',
28
+ TARJETA_DEBITO: '16',
29
+ DINERO_ELECTRONICO: '17',
30
+ TARJETA_PREPAGO: '18',
31
+ TARJETA_CREDITO: '19',
32
+ /** "Otros con utilizacion del sistema financiero" — covers bank transfers */
33
+ TRANSFERENCIA: '20',
34
+ ENDOSO_TITULOS: '21',
35
+ };
36
+ //# sourceMappingURL=invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../src/invoice.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,IAAI;IACxB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,qBAAqB,EAAE,IAAI;CACnB,CAAA;AAEV,yBAAyB;AACzB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa;IACb,IAAI,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;IAC/C,qCAAqC;IACrC,MAAM,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;IAClD,2BAA2B;IAC3B,QAAQ,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,mCAAmC;IACnC,OAAO,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;IACnD,+EAA+E;IAC/E,IAAI,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;IAC/C,kGAAkG;IAClG,KAAK,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;CACxC,CAAA;AAEV,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,IAAI,EAAE,yCAAyC;IACzD,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,6EAA6E;IAC7E,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;CACZ,CAAA"}
@@ -0,0 +1,20 @@
1
+ /** Product or service in a business catalog */
2
+ export interface Product {
3
+ id: string;
4
+ organizationId: string;
5
+ codigoPrincipal: string;
6
+ descripcion: string;
7
+ precioUnitario: number;
8
+ codigoPorcentajeIva: string;
9
+ detallesAdicionales?: {
10
+ nombre: string;
11
+ valor: string;
12
+ }[];
13
+ iceCodigoPorcentaje?: string;
14
+ iceTarifa?: number;
15
+ activo: boolean;
16
+ lastUsedAt?: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ //# sourceMappingURL=product.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=product.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ export declare const createClientSchema: z.ZodObject<{
3
+ tipoIdentificacion: z.ZodEnum<["04", "05", "06", "07", "08"]>;
4
+ identificacion: z.ZodString;
5
+ razonSocial: z.ZodString;
6
+ nombreComercial: z.ZodOptional<z.ZodString>;
7
+ direccion: z.ZodOptional<z.ZodString>;
8
+ email: z.ZodString;
9
+ telefono: z.ZodOptional<z.ZodString>;
10
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ notes: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ tipoIdentificacion: "04" | "05" | "06" | "07" | "08";
14
+ identificacion: string;
15
+ razonSocial: string;
16
+ email: string;
17
+ nombreComercial?: string | undefined;
18
+ direccion?: string | undefined;
19
+ telefono?: string | undefined;
20
+ tags?: string[] | undefined;
21
+ notes?: string | undefined;
22
+ }, {
23
+ tipoIdentificacion: "04" | "05" | "06" | "07" | "08";
24
+ identificacion: string;
25
+ razonSocial: string;
26
+ email: string;
27
+ nombreComercial?: string | undefined;
28
+ direccion?: string | undefined;
29
+ telefono?: string | undefined;
30
+ tags?: string[] | undefined;
31
+ notes?: string | undefined;
32
+ }>;
33
+ export type CreateClientInput = z.infer<typeof createClientSchema>;
34
+ //# sourceMappingURL=client.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/client.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export const createClientSchema = z.object({
3
+ tipoIdentificacion: z.enum(['04', '05', '06', '07', '08']),
4
+ identificacion: z.string().min(1).max(20),
5
+ razonSocial: z.string().min(1).max(300),
6
+ nombreComercial: z.string().max(300).optional(),
7
+ direccion: z.string().max(300).optional(),
8
+ email: z.string().email(),
9
+ telefono: z.string().max(20).optional(),
10
+ tags: z.array(z.string()).optional(),
11
+ notes: z.string().max(500).optional(),
12
+ });
13
+ //# sourceMappingURL=client.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.schema.js","sourceRoot":"","sources":["../../src/schemas/client.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAA"}
@@ -0,0 +1,204 @@
1
+ import { z } from 'zod';
2
+ export declare const invoiceItemSchema: z.ZodObject<{
3
+ codigoPrincipal: z.ZodString;
4
+ descripcion: z.ZodString;
5
+ cantidad: z.ZodNumber;
6
+ precioUnitario: z.ZodNumber;
7
+ descuento: z.ZodDefault<z.ZodNumber>;
8
+ codigoPorcentajeIva: z.ZodEnum<["0", "2", "3", "4", "5", "8"]>;
9
+ iceCodigoPorcentaje: z.ZodOptional<z.ZodString>;
10
+ iceTarifa: z.ZodOptional<z.ZodNumber>;
11
+ detallesAdicionales: z.ZodOptional<z.ZodArray<z.ZodObject<{
12
+ nombre: z.ZodString;
13
+ valor: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ nombre: string;
16
+ valor: string;
17
+ }, {
18
+ nombre: string;
19
+ valor: string;
20
+ }>, "many">>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ codigoPrincipal: string;
23
+ descripcion: string;
24
+ cantidad: number;
25
+ precioUnitario: number;
26
+ descuento: number;
27
+ codigoPorcentajeIva: "3" | "0" | "2" | "4" | "5" | "8";
28
+ iceCodigoPorcentaje?: string | undefined;
29
+ iceTarifa?: number | undefined;
30
+ detallesAdicionales?: {
31
+ nombre: string;
32
+ valor: string;
33
+ }[] | undefined;
34
+ }, {
35
+ codigoPrincipal: string;
36
+ descripcion: string;
37
+ cantidad: number;
38
+ precioUnitario: number;
39
+ codigoPorcentajeIva: "3" | "0" | "2" | "4" | "5" | "8";
40
+ descuento?: number | undefined;
41
+ iceCodigoPorcentaje?: string | undefined;
42
+ iceTarifa?: number | undefined;
43
+ detallesAdicionales?: {
44
+ nombre: string;
45
+ valor: string;
46
+ }[] | undefined;
47
+ }>;
48
+ /** Valid SRI payment method codes — Ficha Tecnica v2.30, Formas de Pago Vigentes */
49
+ export declare const SRI_PAYMENT_CODES: readonly ["01", "15", "16", "17", "18", "19", "20", "21"];
50
+ export type SriPaymentCode = (typeof SRI_PAYMENT_CODES)[number];
51
+ export declare const paymentDetailSchema: z.ZodObject<{
52
+ formaPago: z.ZodEnum<["01", "15", "16", "17", "18", "19", "20", "21"]>;
53
+ total: z.ZodNumber;
54
+ plazo: z.ZodOptional<z.ZodNumber>;
55
+ unidadTiempo: z.ZodOptional<z.ZodString>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ formaPago: "01" | "15" | "16" | "17" | "18" | "19" | "20" | "21";
58
+ total: number;
59
+ plazo?: number | undefined;
60
+ unidadTiempo?: string | undefined;
61
+ }, {
62
+ formaPago: "01" | "15" | "16" | "17" | "18" | "19" | "20" | "21";
63
+ total: number;
64
+ plazo?: number | undefined;
65
+ unidadTiempo?: string | undefined;
66
+ }>;
67
+ export declare const createInvoiceSchema: z.ZodObject<{
68
+ tipoIdentificacionComprador: z.ZodEnum<["04", "05", "06", "07", "08"]>;
69
+ identificacionComprador: z.ZodString;
70
+ razonSocialComprador: z.ZodString;
71
+ emailComprador: z.ZodOptional<z.ZodString>;
72
+ telefonoComprador: z.ZodOptional<z.ZodString>;
73
+ fechaEmision: z.ZodString;
74
+ items: z.ZodArray<z.ZodObject<{
75
+ codigoPrincipal: z.ZodString;
76
+ descripcion: z.ZodString;
77
+ cantidad: z.ZodNumber;
78
+ precioUnitario: z.ZodNumber;
79
+ descuento: z.ZodDefault<z.ZodNumber>;
80
+ codigoPorcentajeIva: z.ZodEnum<["0", "2", "3", "4", "5", "8"]>;
81
+ iceCodigoPorcentaje: z.ZodOptional<z.ZodString>;
82
+ iceTarifa: z.ZodOptional<z.ZodNumber>;
83
+ detallesAdicionales: z.ZodOptional<z.ZodArray<z.ZodObject<{
84
+ nombre: z.ZodString;
85
+ valor: z.ZodString;
86
+ }, "strip", z.ZodTypeAny, {
87
+ nombre: string;
88
+ valor: string;
89
+ }, {
90
+ nombre: string;
91
+ valor: string;
92
+ }>, "many">>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ codigoPrincipal: string;
95
+ descripcion: string;
96
+ cantidad: number;
97
+ precioUnitario: number;
98
+ descuento: number;
99
+ codigoPorcentajeIva: "3" | "0" | "2" | "4" | "5" | "8";
100
+ iceCodigoPorcentaje?: string | undefined;
101
+ iceTarifa?: number | undefined;
102
+ detallesAdicionales?: {
103
+ nombre: string;
104
+ valor: string;
105
+ }[] | undefined;
106
+ }, {
107
+ codigoPrincipal: string;
108
+ descripcion: string;
109
+ cantidad: number;
110
+ precioUnitario: number;
111
+ codigoPorcentajeIva: "3" | "0" | "2" | "4" | "5" | "8";
112
+ descuento?: number | undefined;
113
+ iceCodigoPorcentaje?: string | undefined;
114
+ iceTarifa?: number | undefined;
115
+ detallesAdicionales?: {
116
+ nombre: string;
117
+ valor: string;
118
+ }[] | undefined;
119
+ }>, "many">;
120
+ pagos: z.ZodArray<z.ZodObject<{
121
+ formaPago: z.ZodEnum<["01", "15", "16", "17", "18", "19", "20", "21"]>;
122
+ total: z.ZodNumber;
123
+ plazo: z.ZodOptional<z.ZodNumber>;
124
+ unidadTiempo: z.ZodOptional<z.ZodString>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ formaPago: "01" | "15" | "16" | "17" | "18" | "19" | "20" | "21";
127
+ total: number;
128
+ plazo?: number | undefined;
129
+ unidadTiempo?: string | undefined;
130
+ }, {
131
+ formaPago: "01" | "15" | "16" | "17" | "18" | "19" | "20" | "21";
132
+ total: number;
133
+ plazo?: number | undefined;
134
+ unidadTiempo?: string | undefined;
135
+ }>, "many">;
136
+ propina: z.ZodDefault<z.ZodNumber>;
137
+ infoAdicional: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
138
+ sendEmail: z.ZodDefault<z.ZodBoolean>;
139
+ sendWhatsApp: z.ZodDefault<z.ZodBoolean>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ tipoIdentificacionComprador: "04" | "05" | "06" | "07" | "08";
142
+ identificacionComprador: string;
143
+ razonSocialComprador: string;
144
+ fechaEmision: string;
145
+ items: {
146
+ codigoPrincipal: string;
147
+ descripcion: string;
148
+ cantidad: number;
149
+ precioUnitario: number;
150
+ descuento: number;
151
+ codigoPorcentajeIva: "3" | "0" | "2" | "4" | "5" | "8";
152
+ iceCodigoPorcentaje?: string | undefined;
153
+ iceTarifa?: number | undefined;
154
+ detallesAdicionales?: {
155
+ nombre: string;
156
+ valor: string;
157
+ }[] | undefined;
158
+ }[];
159
+ pagos: {
160
+ formaPago: "01" | "15" | "16" | "17" | "18" | "19" | "20" | "21";
161
+ total: number;
162
+ plazo?: number | undefined;
163
+ unidadTiempo?: string | undefined;
164
+ }[];
165
+ propina: number;
166
+ sendEmail: boolean;
167
+ sendWhatsApp: boolean;
168
+ emailComprador?: string | undefined;
169
+ telefonoComprador?: string | undefined;
170
+ infoAdicional?: Record<string, string> | undefined;
171
+ }, {
172
+ tipoIdentificacionComprador: "04" | "05" | "06" | "07" | "08";
173
+ identificacionComprador: string;
174
+ razonSocialComprador: string;
175
+ fechaEmision: string;
176
+ items: {
177
+ codigoPrincipal: string;
178
+ descripcion: string;
179
+ cantidad: number;
180
+ precioUnitario: number;
181
+ codigoPorcentajeIva: "3" | "0" | "2" | "4" | "5" | "8";
182
+ descuento?: number | undefined;
183
+ iceCodigoPorcentaje?: string | undefined;
184
+ iceTarifa?: number | undefined;
185
+ detallesAdicionales?: {
186
+ nombre: string;
187
+ valor: string;
188
+ }[] | undefined;
189
+ }[];
190
+ pagos: {
191
+ formaPago: "01" | "15" | "16" | "17" | "18" | "19" | "20" | "21";
192
+ total: number;
193
+ plazo?: number | undefined;
194
+ unidadTiempo?: string | undefined;
195
+ }[];
196
+ emailComprador?: string | undefined;
197
+ telefonoComprador?: string | undefined;
198
+ propina?: number | undefined;
199
+ infoAdicional?: Record<string, string> | undefined;
200
+ sendEmail?: boolean | undefined;
201
+ sendWhatsApp?: boolean | undefined;
202
+ }>;
203
+ export type CreateInvoiceInput = z.infer<typeof createInvoiceSchema>;
204
+ //# sourceMappingURL=invoice.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/invoice.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa5B,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,2DAA4D,CAAA;AAE1F,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB9B,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}