arcli 1.4.0 → 1.5.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/README.md +3 -1
  3. package/dist/cli/commands/billing.command.options.js +6 -0
  4. package/dist/cli/commands/billing.command.options.js.map +1 -1
  5. package/dist/cli/commands/billing.command.output.d.ts +2 -0
  6. package/dist/cli/commands/billing.command.output.js +15 -1
  7. package/dist/cli/commands/billing.command.output.js.map +1 -1
  8. package/dist/cli/commands/billing.command.parser.js +14 -0
  9. package/dist/cli/commands/billing.command.parser.js.map +1 -1
  10. package/dist/cli/commands/billing.command.pdf.d.ts +24 -0
  11. package/dist/cli/commands/billing.command.pdf.js +130 -0
  12. package/dist/cli/commands/billing.command.pdf.js.map +1 -0
  13. package/dist/cli/commands/billing.command.shared.js +14 -1
  14. package/dist/cli/commands/billing.command.shared.js.map +1 -1
  15. package/dist/cli/commands/config.command.js +6 -6
  16. package/dist/cli/commands/config.command.js.map +1 -1
  17. package/dist/cli/commands/pdf.command.d.ts +2 -0
  18. package/dist/cli/commands/pdf.command.js +78 -0
  19. package/dist/cli/commands/pdf.command.js.map +1 -0
  20. package/dist/cli/help.js +1 -0
  21. package/dist/cli/help.js.map +1 -1
  22. package/dist/cli/interactive/pdf.flow.d.ts +5 -0
  23. package/dist/cli/interactive/pdf.flow.js +89 -0
  24. package/dist/cli/interactive/pdf.flow.js.map +1 -0
  25. package/dist/cli/interactive/session.js +2 -0
  26. package/dist/cli/interactive/session.js.map +1 -1
  27. package/dist/cli/program.js +2 -0
  28. package/dist/cli/program.js.map +1 -1
  29. package/dist/cli/version.d.ts +1 -1
  30. package/dist/cli/version.js +1 -1
  31. package/dist/modules/billing/billing.schemas.d.ts +4 -0
  32. package/dist/modules/billing/billing.schemas.js +6 -0
  33. package/dist/modules/billing/billing.schemas.js.map +1 -1
  34. package/dist/modules/billing/billing.serialize.js +13 -0
  35. package/dist/modules/billing/billing.serialize.js.map +1 -1
  36. package/dist/modules/billing/billing.types.internal.d.ts +3 -0
  37. package/dist/modules/config/config-doctor.js +13 -0
  38. package/dist/modules/config/config-doctor.js.map +1 -1
  39. package/dist/modules/config/config-value-parser.d.ts +1 -1
  40. package/dist/modules/config/config-value-parser.js +41 -1
  41. package/dist/modules/config/config-value-parser.js.map +1 -1
  42. package/dist/modules/config/config.presenter.d.ts +6 -2
  43. package/dist/modules/config/config.presenter.js +25 -6
  44. package/dist/modules/config/config.presenter.js.map +1 -1
  45. package/dist/modules/config/config.schemas.d.ts +42 -0
  46. package/dist/modules/config/config.schemas.js +29 -0
  47. package/dist/modules/config/config.schemas.js.map +1 -1
  48. package/dist/modules/config/config.service.d.ts +8 -0
  49. package/dist/modules/config/config.service.js +21 -0
  50. package/dist/modules/config/config.service.js.map +1 -1
  51. package/dist/modules/examples/examples.js +1 -0
  52. package/dist/modules/examples/examples.js.map +1 -1
  53. package/dist/modules/pdf/pdf-data.mapper.d.ts +4 -0
  54. package/dist/modules/pdf/pdf-data.mapper.js +117 -0
  55. package/dist/modules/pdf/pdf-data.mapper.js.map +1 -0
  56. package/dist/modules/pdf/pdf-decision.d.ts +14 -0
  57. package/dist/modules/pdf/pdf-decision.js +19 -0
  58. package/dist/modules/pdf/pdf-decision.js.map +1 -0
  59. package/dist/modules/pdf/pdf-file-name.d.ts +3 -0
  60. package/dist/modules/pdf/pdf-file-name.js +7 -0
  61. package/dist/modules/pdf/pdf-file-name.js.map +1 -0
  62. package/dist/modules/pdf/pdf-issuer.d.ts +8 -0
  63. package/dist/modules/pdf/pdf-issuer.js +43 -0
  64. package/dist/modules/pdf/pdf-issuer.js.map +1 -0
  65. package/dist/modules/pdf/pdf.errors.d.ts +10 -0
  66. package/dist/modules/pdf/pdf.errors.js +11 -0
  67. package/dist/modules/pdf/pdf.errors.js.map +1 -0
  68. package/dist/modules/pdf/pdf.types.d.ts +91 -0
  69. package/dist/modules/pdf/pdf.types.js +2 -0
  70. package/dist/modules/pdf/pdf.types.js.map +1 -0
  71. package/dist/modules/storybook/showcase.js +6 -2
  72. package/dist/modules/storybook/showcase.js.map +1 -1
  73. package/dist/services/pdf/pdf-browser.d.ts +5 -0
  74. package/dist/services/pdf/pdf-browser.js +54 -0
  75. package/dist/services/pdf/pdf-browser.js.map +1 -0
  76. package/dist/services/pdf/pdf-exporter.d.ts +19 -0
  77. package/dist/services/pdf/pdf-exporter.js +47 -0
  78. package/dist/services/pdf/pdf-exporter.js.map +1 -0
  79. package/dist/services/pdf/pdf-plugin.d.ts +50 -0
  80. package/dist/services/pdf/pdf-plugin.js +143 -0
  81. package/dist/services/pdf/pdf-plugin.js.map +1 -0
  82. package/dist/ui/presenters/errors.presenter.js +11 -0
  83. package/dist/ui/presenters/errors.presenter.js.map +1 -1
  84. package/dist/ui/presenters/index.d.ts +1 -0
  85. package/dist/ui/presenters/index.js +1 -0
  86. package/dist/ui/presenters/index.js.map +1 -1
  87. package/dist/ui/presenters/pdf.presenter.d.ts +13 -0
  88. package/dist/ui/presenters/pdf.presenter.js +46 -0
  89. package/dist/ui/presenters/pdf.presenter.js.map +1 -0
  90. package/llms.txt +17 -2
  91. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Copia de los tipos de entrada de `@arcasdk/pdf` (0.2.x), solo con los campos que usa arcli.
3
+ * No se importan del paquete porque es un plugin que puede no estar instalado.
4
+ */
5
+ export interface InvoicePdfIssuer {
6
+ readonly condicionIva: string;
7
+ readonly cuit: string;
8
+ readonly domicilioComercial: string;
9
+ /** yyyymmdd */
10
+ readonly fechaInicioActividades: string;
11
+ readonly iibb: string;
12
+ readonly razonSocial: string;
13
+ }
14
+ export interface InvoicePdfReceiver {
15
+ readonly condicionIva: string;
16
+ readonly documentoNro: string;
17
+ /** "CUIT", "CUIL", "DNI" u "Otro". */
18
+ readonly documentoTipo: string;
19
+ readonly domicilio?: string;
20
+ readonly razonSocial: string;
21
+ }
22
+ export interface InvoicePdfItem {
23
+ readonly alicuotaIva?: number;
24
+ readonly cantidad: number;
25
+ readonly descripcion: string;
26
+ readonly precioUnitario: number;
27
+ readonly subtotal: number;
28
+ readonly unidadMedida: string;
29
+ }
30
+ export interface InvoicePdfIva {
31
+ readonly baseImponible: number;
32
+ readonly descripcion: string;
33
+ readonly id: number;
34
+ readonly importe: number;
35
+ }
36
+ export interface InvoicePdfAssociatedVoucher {
37
+ readonly cuit?: string;
38
+ readonly fecha?: string;
39
+ readonly numero: number;
40
+ readonly puntoVenta: number;
41
+ readonly tipo: number;
42
+ }
43
+ export interface InvoicePdfData {
44
+ readonly cae: string;
45
+ /** yyyymmdd */
46
+ readonly caeFechaVencimiento: string;
47
+ readonly cbteDesde: number;
48
+ /** yyyymmdd */
49
+ readonly cbteFecha: string;
50
+ readonly cbteHasta: number;
51
+ readonly cbteLetra: string;
52
+ readonly cbteTipo: number;
53
+ readonly cbtesAsociados?: readonly InvoicePdfAssociatedVoucher[];
54
+ readonly concepto: number;
55
+ readonly cotizacion?: number;
56
+ readonly emisor: InvoicePdfIssuer;
57
+ readonly fechaServicioDesde?: string;
58
+ readonly fechaServicioHasta?: string;
59
+ readonly fechaVtoPago?: string;
60
+ readonly importeExento?: number;
61
+ readonly importeIva: number;
62
+ readonly importeNetoGravado: number;
63
+ readonly importeNetoNoGravado?: number;
64
+ readonly importeTotal: number;
65
+ readonly items: readonly InvoicePdfItem[];
66
+ readonly iva?: readonly InvoicePdfIva[];
67
+ readonly moneda?: string;
68
+ readonly puntoVenta: number;
69
+ readonly receptor: InvoicePdfReceiver;
70
+ }
71
+ export interface InvoicePdfOptions {
72
+ readonly footerText?: string;
73
+ /** Data URL de la imagen. */
74
+ readonly logo?: string;
75
+ }
76
+ /** Datos que no estan en ARCA y se pasan por flag o en el JSON de --cargar. Solo se usan en el PDF. */
77
+ export interface PdfVoucherExtras {
78
+ readonly descripcion?: string;
79
+ readonly receptorDomicilio?: string;
80
+ readonly receptorNombre?: string;
81
+ }
82
+ /** Resultado de generar el PDF de un comprobante: la ruta del archivo o el error, que no frena la emision. */
83
+ export type PdfOutcome = {
84
+ readonly path: string;
85
+ } | {
86
+ readonly error: {
87
+ readonly code: string;
88
+ readonly message: string;
89
+ readonly suggestion?: string;
90
+ };
91
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pdf.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.types.js","sourceRoot":"","sources":["../../../src/modules/pdf/pdf.types.ts"],"names":[],"mappings":""}
@@ -75,6 +75,7 @@ function createSampleConfig() {
75
75
  cuit: '20409509763',
76
76
  conceptoPorDefecto: 'servicios',
77
77
  cotizacionPorDefecto: 1,
78
+ emisor: {},
78
79
  entornoPorDefecto: 'testing',
79
80
  ivaReceptorPorDefecto: 'consumidor-final',
80
81
  key: {
@@ -252,7 +253,7 @@ function buildConfigScene() {
252
253
  const doctor = buildConfigDoctorReport(config, { validation: createSampleValidation() });
253
254
  return [
254
255
  sceneTitle('Configuracion', 'Vista actual y revision'),
255
- formatConfigAsText(config, createSampleValidation().ticketPath),
256
+ formatConfigAsText(config, { pdfFolder: '~/arcli/comprobantes', ticketPath: createSampleValidation().ticketPath }),
256
257
  formatConfigDoctorAsText(doctor),
257
258
  ].join('\n\n');
258
259
  }
@@ -268,7 +269,10 @@ function buildErrorScene() {
268
269
  }
269
270
  function buildJsonScene() {
270
271
  const billingJson = highlightJsonValues(formatBillingResultAsJson(createBillingResult(), { raw: true }));
271
- const configJson = highlightJsonValues(formatConfig(createSampleConfig(), createSampleValidation().ticketPath));
272
+ const configJson = highlightJsonValues(formatConfig(createSampleConfig(), {
273
+ pdfFolder: '~/arcli/comprobantes',
274
+ ticketPath: createSampleValidation().ticketPath,
275
+ }));
272
276
  const doctorJson = highlightJsonValues(formatConfigDoctor(buildConfigDoctorReport(createSampleConfig(), { validation: createSampleValidation() })));
273
277
  return [
274
278
  sceneTitle('Json', 'Contratos estructurados para automatizacion y respuesta bruta'),
@@ -1 +1 @@
1
- {"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../../src/modules/storybook/showcase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../../src/modules/storybook/showcase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EACL,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,yBAAyB,EACzB,cAAc,EACd,SAAS,EACT,WAAW,EACX,aAAa,EACb,QAAQ,GAGT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGpG,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,SAAS,iBAAiB,CAAC,OAAuC;IAChE,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,WAAW;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;QACnC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,KAAK;QACvD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG;QAC7B,yBAAyB,EAAE,OAAO,CAAC,yBAAyB,IAAI,KAAK;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA2C,EAAE;IACxE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,YAAY;QAChD,OAAO,EAAE;YACP,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,CAAC;YACX,sBAAsB,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC;YACT,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SACU;QACtC,QAAQ,EAAE;YACR,GAAG,EAAE,gBAAgB;YACrB,cAAc,EAAE,UAAU;YAC1B,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE;gBACH,GAAG,EAAE,gBAAgB;gBACrB,SAAS,EAAE,UAAU;gBACrB,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;qBACvC;iBACF;aAC2C;YAC9C,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,EAAE;YACf,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC5B;QACD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,IAAI,EAAE;YACJ,UAAU,EAAE,+CAA+C;YAC3D,OAAO,EAAE,4CAA4C;SACtD;QACD,IAAI,EAAE,aAAa;QACnB,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,CAAC;QACvB,MAAM,EAAE,EAAE;QACV,iBAAiB,EAAE,SAAS;QAC5B,qBAAqB,EAAE,kBAAkB;QACzC,GAAG,EAAE;YACH,UAAU,EAAE,yCAAyC;YACrD,OAAO,EAAE,sCAAsC;SAChD;QACD,gBAAgB,EAAE,KAAK;QACvB,MAAM,EAAE;YACN,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,KAAK;SACvB;QACD,oBAAoB,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B;IACpC,OAAO;QACL,cAAc,EAAE,OAAO;QACvB,aAAa,EAAE,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;QACL,QAAQ,EAAE,4CAA4C;QACtD,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,sCAAsC;QAC/C,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,4BAA4B;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,QAAiB;IAClD,OAAO,WAAW,CAAC;QACjB,WAAW,EAAE,wBAAwB,CAAC,WAAW;QACjD,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,EAAE;QACX,QAAQ;QACR,aAAa,EAAE,OAAO;QACtB,KAAK;QACL,KAAK,EAAE,wBAAwB,CAAC,UAAU;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,WAAW,CAAC;QACjB,WAAW,EAAE,wBAAwB,CAAC,WAAW;QACjD,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,OAAO;QACtB,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,wBAAwB,CAAC,eAAe;KAChD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,UAAU,CAAC,YAAY,EAAE,+BAA+B,CAAC;QACzD,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAAE;QACzE,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,iCAAiC,EAAE,MAAM,CAAC,EAAE;QACjF,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,iCAAiC,EAAE,QAAQ,CAAC,EAAE;QACrF,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC,6BAA6B,EAAE,SAAS,CAAC,EAAE;QACnF,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EAAE;QACzE,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC,EAAE;KAC9E,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,cAAc,GAQhB;IACF,CAAC,QAAQ,EAAE,SAAS,EAAE,wCAAwC,EAAE,SAAS,EAAE,WAAW,CAAC;IACvF,CAAC,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,CAAC;IACzD,CAAC,WAAW,EAAE,eAAe,EAAE,gDAAgD,EAAE,SAAS,CAAC;IAC3F,CAAC,KAAK,EAAE,aAAa,EAAE,uCAAuC,EAAE,SAAS,CAAC;IAC1E,CAAC,OAAO,EAAE,eAAe,EAAE,iDAAiD,EAAE,MAAM,CAAC;IACrF,CAAC,WAAW,EAAE,UAAU,EAAE,2BAA2B,EAAE,SAAS,EAAE,WAAW,CAAC;IAC9E,CAAC,SAAS,EAAE,sBAAsB,EAAE,kDAAkD,EAAE,MAAM,CAAC;IAC/F,CAAC,MAAM,EAAE,OAAO,EAAE,iDAAiD,EAAE,SAAS,CAAC;IAC/E,CAAC,SAAS,EAAE,SAAS,EAAE,+BAA+B,EAAE,SAAS,CAAC;IAClE,CAAC,MAAM,EAAE,eAAe,EAAE,mCAAmC,EAAE,MAAM,CAAC;IACtE,CAAC,MAAM,EAAE,cAAc,EAAE,0BAA0B,EAAE,QAAQ,CAAC;IAC9D,CAAC,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,SAAS,CAAC;IACzE,CAAC,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,OAAO,CAAC;CAC5D,CAAC;AAEF,SAAS,iBAAiB;IACxB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CACnF,WAAW,CAAC;QACV,UAAU;QACV,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,MAAM;QACN,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;QAC9B,KAAK;QACL,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,SAAS;KACjB,CAAC,CACH,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC;QAC1B,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE;YACP,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;YACrC,yEAAyE;SAC1E;KACF,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,CAAC,QAAQ,EAAE,iEAAiE,CAAC;QACvF,GAAG,KAAK;QACR,GAAG,QAAQ,CAAC,qCAAqC,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE;QAC5H,GAAG,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC,KAAK,cAAc,CAAC,WAAW,CAAC,EAAE;QACnF,GAAG,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE;KAC3D,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,yBAAyB,CACvC,mBAAmB,CAAC;QAClB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE;YACR,GAAG,mBAAmB,EAAE,CAAC,QAAQ;YACjC,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,IAAI;SAChB;KACF,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,yBAAyB,CACxC,mBAAmB,CAAC;QAClB,QAAQ,EAAE;YACR,GAAG,mBAAmB,EAAE,CAAC,QAAQ;YACjC,aAAa,EAAE,CAAC,wCAAwC,CAAC;YACzD,WAAW,EAAE,wCAAwC;YACrD,GAAG,EAAE;gBACH,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;qBACvC;iBACF;aAC2C;YAC9C,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,CAAC,0DAA0D,CAAC;SAC1E;QACD,WAAW,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACtG,OAAO,EAAE;YACP,GAAG,mBAAmB,EAAE,CAAC,OAAO;YAChC,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,WAAW;YACnB,sBAAsB,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;SACwB;KACvC,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,yBAAyB,CACxC,mBAAmB,CAAC;QAClB,QAAQ,EAAE;YACR,GAAG,mBAAmB,EAAE,CAAC,QAAQ;YACjC,GAAG,EAAE,IAAI;YACT,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,uEAAuE,EAAE,CAAC;YACrG,GAAG,EAAE;gBACH,QAAQ,EAAE;oBACR,MAAM,EAAE;wBACN,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,uEAAuE,EAAE,CAAC;qBACnG;iBACF;aAC2C;YAC9C,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,CAAC,0FAA0F,CAAC;SAC1G;KACF,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9E,OAAO;QACL,UAAU,CAAC,cAAc,EAAE,iDAAiD,CAAC;QAC7E,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;KACN,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAEzF,OAAO;QACL,UAAU,CAAC,eAAe,EAAE,yBAAyB,CAAC;QACtD,kBAAkB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,UAAU,EAAE,sBAAsB,EAAE,CAAC,UAAU,EAAE,CAAC;QAClH,wBAAwB,CAAC,MAAM,CAAC;KACjC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,eAAe;IACtB,OAAO;QACL,UAAU,CAAC,SAAS,EAAE,2CAA2C,CAAC;QAClE,cAAc,CACZ,IAAI,kBAAkB,CAAC,iDAAiD,EAAE;YACxE,IAAI,EAAE,sCAAsC;SAC7C,CAAC,EACF,KAAK,CACN;QACD,cAAc,CAAC,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC;QACrE,cAAc,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC;KAC7D,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,WAAW,GAAG,mBAAmB,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzG,MAAM,UAAU,GAAG,mBAAmB,CACpC,YAAY,CAAC,kBAAkB,EAAE,EAAE;QACjC,SAAS,EAAE,sBAAsB;QACjC,UAAU,EAAE,sBAAsB,EAAE,CAAC,UAAU;KAChD,CAAC,CACH,CAAC;IACF,MAAM,UAAU,GAAG,mBAAmB,CACpC,kBAAkB,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAC5G,CAAC;IAEF,OAAO;QACL,UAAU,CAAC,MAAM,EAAE,+DAA+D,CAAC;QACnF,YAAY,CAAC,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QAC3E,YAAY,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACzE,YAAY,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAC1E,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,uBAAuB,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC9E,MAAM,YAAY,GAA8C;QAC9D,CAAC,MAAM,EAAE,eAAe,CAAC;QACzB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrB,CAAC,SAAS,EAAE,SAAS,CAAC;KACvB,CAAC;IACF,MAAM,UAAU,GAA8C;QAC5D,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACzB,CAAC,eAAe,EAAE,IAAI,CAAC;QACvB,CAAC,SAAS,EAAE,CAAC,CAAC;KACf,CAAC;IACF,MAAM,cAAc,GAAG,yBAAyB,CAAC,SAAS,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,kBAAkB,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QACzE,YAAY,EAAE,MAAM;QACpB,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;QACzC,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;SACP;QACD,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,WAAW,CACxB,aAAa,EACb;QACE,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QAC7E,EAAE;QACF,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;KAC3E,EACD,UAAU,EACV,SAAS,EACT,SAAS,CACV,CAAC;IAEF,MAAM,OAAO,GAAG,YAAY,CAC1B,gBAAgB,EAChB,YAAY,CAAC;QACX,GAAG,EAAE,gBAAgB;QACrB,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;KAClD,CAAC,EACF,MAAM,EACN,MAAM,CACP,CAAC;IAEF,OAAO;QACL,UAAU,CAAC,aAAa,EAAE,+BAA+B,CAAC;QAC1D,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,OAAO;KACR,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAsB;IAC5D,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAmC;QAC7C,MAAM,EAAE,iBAAiB,EAAE;QAC3B,OAAO,EAAE,gBAAgB,EAAE;QAC3B,WAAW,EAAE,oBAAoB,EAAE;QACnC,YAAY,EAAE,iBAAiB,EAAE;QACjC,aAAa,EAAE,gBAAgB,EAAE;QACjC,OAAO,EAAE,eAAe,EAAE;QAC1B,IAAI,EAAE,cAAc,EAAE;KACvB,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,aAAa,EAAE;YACf,IAAI;YACJ,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,OAAO;SACf,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Rutas conocidas de Chrome, Chromium y Edge. Con alguno instalado no hace falta descargar un navegador. */
2
+ export declare function listSystemBrowserCandidates(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv): string[];
3
+ export declare function findSystemBrowser(candidates?: readonly string[]): string | undefined;
4
+ /** Binario de chrome-headless-shell descargado con el CLI de Puppeteer en `<cacheDir>/chrome-headless-shell/<build>/<carpeta>/`. */
5
+ export declare function findDownloadedBrowser(cacheDir: string): string | undefined;
@@ -0,0 +1,54 @@
1
+ import { existsSync, readdirSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ /** Rutas conocidas de Chrome, Chromium y Edge. Con alguno instalado no hace falta descargar un navegador. */
5
+ export function listSystemBrowserCandidates(platform = process.platform, env = process.env) {
6
+ switch (platform) {
7
+ case 'darwin':
8
+ return ['/Applications', join(homedir(), 'Applications')].flatMap((folder) => [
9
+ join(folder, 'Google Chrome.app/Contents/MacOS/Google Chrome'),
10
+ join(folder, 'Chromium.app/Contents/MacOS/Chromium'),
11
+ join(folder, 'Microsoft Edge.app/Contents/MacOS/Microsoft Edge'),
12
+ ]);
13
+ case 'win32':
14
+ return [env.PROGRAMFILES, env['PROGRAMFILES(X86)'], env.LOCALAPPDATA]
15
+ .filter((folder) => Boolean(folder))
16
+ .flatMap((folder) => [
17
+ join(folder, 'Google', 'Chrome', 'Application', 'chrome.exe'),
18
+ join(folder, 'Microsoft', 'Edge', 'Application', 'msedge.exe'),
19
+ ]);
20
+ default:
21
+ return [
22
+ '/usr/bin/google-chrome',
23
+ '/usr/bin/google-chrome-stable',
24
+ '/usr/bin/chromium',
25
+ '/usr/bin/chromium-browser',
26
+ '/usr/bin/microsoft-edge',
27
+ '/snap/bin/chromium',
28
+ ];
29
+ }
30
+ }
31
+ export function findSystemBrowser(candidates = listSystemBrowserCandidates()) {
32
+ return candidates.find((candidate) => existsSync(candidate));
33
+ }
34
+ /** Binario de chrome-headless-shell descargado con el CLI de Puppeteer en `<cacheDir>/chrome-headless-shell/<build>/<carpeta>/`. */
35
+ export function findDownloadedBrowser(cacheDir) {
36
+ const root = join(cacheDir, 'chrome-headless-shell');
37
+ if (!existsSync(root)) {
38
+ return undefined;
39
+ }
40
+ const binaryName = process.platform === 'win32' ? 'chrome-headless-shell.exe' : 'chrome-headless-shell';
41
+ const folders = (path) => readdirSync(path, { withFileTypes: true })
42
+ .filter((entry) => entry.isDirectory())
43
+ .map((entry) => entry.name);
44
+ for (const build of folders(root)) {
45
+ for (const folder of folders(join(root, build))) {
46
+ const binary = join(root, build, folder, binaryName);
47
+ if (existsSync(binary)) {
48
+ return binary;
49
+ }
50
+ }
51
+ }
52
+ return undefined;
53
+ }
54
+ //# sourceMappingURL=pdf-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-browser.js","sourceRoot":"","sources":["../../../src/services/pdf/pdf-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,6GAA6G;AAC7G,MAAM,UAAU,2BAA2B,CACzC,WAA4B,OAAO,CAAC,QAAQ,EAC5C,MAAyB,OAAO,CAAC,GAAG;IAEpC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5E,IAAI,CAAC,MAAM,EAAE,gDAAgD,CAAC;gBAC9D,IAAI,CAAC,MAAM,EAAE,sCAAsC,CAAC;gBACpD,IAAI,CAAC,MAAM,EAAE,kDAAkD,CAAC;aACjE,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;iBAClE,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBACrD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC;gBAC7D,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC;aAC/D,CAAC,CAAC;QACP;YACE,OAAO;gBACL,wBAAwB;gBACxB,+BAA+B;gBAC/B,mBAAmB;gBACnB,2BAA2B;gBAC3B,yBAAyB;gBACzB,oBAAoB;aACrB,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAgC,2BAA2B,EAAE;IAC7F,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,oIAAoI;AACpI,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAExG,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAErD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { BillingExecutionResult } from '../../modules/billing/billing.types.internal';
2
+ import type { ArcliConfig } from '../../modules/config/config.schemas';
3
+ import type { PdfOutcome, PdfVoucherExtras } from '../../modules/pdf/pdf.types';
4
+ import type { PdfRenderer } from './pdf-plugin';
5
+ export declare const TESTING_FOOTER = "COMPROBANTE DE PRUEBA - SIN VALIDEZ FISCAL";
6
+ export declare function toPdfFailure(error: unknown): Extract<PdfOutcome, {
7
+ error: unknown;
8
+ }>;
9
+ /** Los de testing van a una subcarpeta y con un pie que avisa que no valen, para no mezclarlos con los reales. */
10
+ export declare function resolvePdfTargetFolder(folder: string, environment: BillingExecutionResult['environment']): string;
11
+ export interface ExportPdfInput {
12
+ readonly config: Pick<ArcliConfig, 'cuit' | 'emisor'>;
13
+ readonly extras?: PdfVoucherExtras;
14
+ readonly folder: string;
15
+ readonly renderer: PdfRenderer;
16
+ readonly result: BillingExecutionResult;
17
+ }
18
+ /** Genera y guarda el PDF de un comprobante emitido. Devuelve la ruta del archivo. */
19
+ export declare function exportBillingPdf(input: ExportPdfInput): Promise<string>;
@@ -0,0 +1,47 @@
1
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { extname, join } from 'node:path';
3
+ import { AppError } from '../../lib/errors/app-error.js';
4
+ import { PdfError } from '../../modules/pdf/pdf.errors.js';
5
+ import { mapBillingResultToPdfData } from '../../modules/pdf/pdf-data.mapper.js';
6
+ import { buildPdfFileName } from '../../modules/pdf/pdf-file-name.js';
7
+ import { resolvePdfIssuer } from '../../modules/pdf/pdf-issuer.js';
8
+ export const TESTING_FOOTER = 'COMPROBANTE DE PRUEBA - SIN VALIDEZ FISCAL';
9
+ export function toPdfFailure(error) {
10
+ if (error instanceof PdfError) {
11
+ return { error: { code: error.code, message: error.message, suggestion: error.suggestion } };
12
+ }
13
+ if (error instanceof AppError) {
14
+ return { error: { code: error.code, message: error.message } };
15
+ }
16
+ return {
17
+ error: { code: 'PDF_GENERATION_ERROR', message: error instanceof Error ? error.message : String(error) },
18
+ };
19
+ }
20
+ function readLogoAsDataUrl(path) {
21
+ if (!path) {
22
+ return undefined;
23
+ }
24
+ const mime = extname(path).toLowerCase() === '.png' ? 'image/png' : 'image/jpeg';
25
+ return `data:${mime};base64,${readFileSync(path).toString('base64')}`;
26
+ }
27
+ /** Los de testing van a una subcarpeta y con un pie que avisa que no valen, para no mezclarlos con los reales. */
28
+ export function resolvePdfTargetFolder(folder, environment) {
29
+ return environment === 'testing' ? join(folder, 'testing') : folder;
30
+ }
31
+ /** Genera y guarda el PDF de un comprobante emitido. Devuelve la ruta del archivo. */
32
+ export async function exportBillingPdf(input) {
33
+ const { result } = input;
34
+ const issuer = resolvePdfIssuer(input.config, result.voucherKind.letter);
35
+ const data = mapBillingResultToPdfData(result, issuer, input.extras);
36
+ const options = {
37
+ footerText: result.environment === 'testing' ? TESTING_FOOTER : undefined,
38
+ logo: readLogoAsDataUrl(input.config.emisor.logo),
39
+ };
40
+ const bytes = await input.renderer.render(data, options);
41
+ const folder = resolvePdfTargetFolder(input.folder, result.environment);
42
+ const path = join(folder, buildPdfFileName(result.voucherKind, data.puntoVenta, data.cbteDesde));
43
+ mkdirSync(folder, { recursive: true });
44
+ writeFileSync(path, bytes);
45
+ return path;
46
+ }
47
+ //# sourceMappingURL=pdf-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-exporter.js","sourceRoot":"","sources":["../../../src/services/pdf/pdf-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { InvoicePdfData, InvoicePdfOptions } from '../../modules/pdf/pdf.types';
2
+ export declare const PDF_PLUGIN_PACKAGE = "@arcasdk/pdf";
3
+ /** Version probada con arcli. Se sube a mano despues de revisar los PDFs que genera. */
4
+ export declare const PDF_PLUGIN_VERSION = "0.2.1";
5
+ export type PdfBrowserSource = 'config' | 'descargado' | 'entorno' | 'sistema';
6
+ export interface PdfPluginStatus {
7
+ readonly browser?: string;
8
+ readonly browserSource?: PdfBrowserSource;
9
+ readonly installed: boolean;
10
+ /** Version instalada, aunque no sea la que espera arcli. */
11
+ readonly installedVersion?: string;
12
+ readonly path: string;
13
+ readonly version: string;
14
+ }
15
+ export interface ProcessResult {
16
+ readonly code: number | null;
17
+ readonly output: string;
18
+ }
19
+ export type ProcessRunner = (command: string, args: readonly string[], options: {
20
+ readonly cwd: string;
21
+ readonly env: NodeJS.ProcessEnv;
22
+ }) => Promise<ProcessResult>;
23
+ export interface PdfRenderer {
24
+ render(data: InvoicePdfData, options: InvoicePdfOptions): Promise<Uint8Array>;
25
+ }
26
+ export interface PdfPluginOptions {
27
+ /** Ruta de `pdfNavegador` en la config. */
28
+ readonly configuredBrowser?: string;
29
+ readonly env?: NodeJS.ProcessEnv;
30
+ readonly findSystemBrowser?: () => string | undefined;
31
+ /** Carpeta del plugin: `<carpeta de config>/plugins/pdf`. */
32
+ readonly path: string;
33
+ readonly runProcess?: ProcessRunner;
34
+ }
35
+ export declare class PdfPlugin {
36
+ private readonly options;
37
+ private readonly env;
38
+ private readonly findSystemBrowser;
39
+ private readonly runProcess;
40
+ constructor(options: PdfPluginOptions);
41
+ private get browsersPath();
42
+ private readInstalledVersion;
43
+ /** Orden: config, variable de entorno de Puppeteer, navegador del sistema y, por ultimo, el descargado. */
44
+ private resolveBrowser;
45
+ getStatus(): PdfPluginStatus;
46
+ /** Instala el paquete y, si no hay un navegador para usar, descarga chrome-headless-shell. */
47
+ install(onStep?: (message: string) => void): Promise<PdfPluginStatus>;
48
+ uninstall(): void;
49
+ load(): PdfRenderer;
50
+ }
@@ -0,0 +1,143 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
3
+ import { createRequire } from 'node:module';
4
+ import { join } from 'node:path';
5
+ import { PDF_INSTALL_SUGGESTION, PdfError } from '../../modules/pdf/pdf.errors.js';
6
+ import { findDownloadedBrowser, findSystemBrowser } from './pdf-browser.js';
7
+ export const PDF_PLUGIN_PACKAGE = '@arcasdk/pdf';
8
+ /** Version probada con arcli. Se sube a mano despues de revisar los PDFs que genera. */
9
+ export const PDF_PLUGIN_VERSION = '0.2.1';
10
+ const runProcessWithSpawn = (command, args, options) => new Promise((resolve) => {
11
+ // En Windows npm es un .cmd y necesita shell.
12
+ const child = spawn(command, args, { cwd: options.cwd, env: options.env, shell: process.platform === 'win32' });
13
+ let output = '';
14
+ child.stdout.on('data', (chunk) => (output += chunk.toString()));
15
+ child.stderr.on('data', (chunk) => (output += chunk.toString()));
16
+ child.on('error', (error) => resolve({ code: 1, output: `${output}${error.message}` }));
17
+ child.on('close', (code) => resolve({ code, output }));
18
+ });
19
+ function lastLines(output, count = 5) {
20
+ return output.trim().split('\n').slice(-count).join('\n');
21
+ }
22
+ export class PdfPlugin {
23
+ options;
24
+ env;
25
+ findSystemBrowser;
26
+ runProcess;
27
+ constructor(options) {
28
+ this.options = options;
29
+ this.env = options.env ?? process.env;
30
+ this.findSystemBrowser = options.findSystemBrowser ?? (() => findSystemBrowser());
31
+ this.runProcess = options.runProcess ?? runProcessWithSpawn;
32
+ }
33
+ get browsersPath() {
34
+ return join(this.options.path, 'browsers');
35
+ }
36
+ readInstalledVersion() {
37
+ const manifest = join(this.options.path, 'node_modules', ...PDF_PLUGIN_PACKAGE.split('/'), 'package.json');
38
+ if (!existsSync(manifest)) {
39
+ return undefined;
40
+ }
41
+ return JSON.parse(readFileSync(manifest, 'utf8')).version;
42
+ }
43
+ /** Orden: config, variable de entorno de Puppeteer, navegador del sistema y, por ultimo, el descargado. */
44
+ resolveBrowser() {
45
+ if (this.options.configuredBrowser) {
46
+ return { path: this.options.configuredBrowser, source: 'config' };
47
+ }
48
+ if (this.env.PUPPETEER_EXECUTABLE_PATH) {
49
+ return { path: this.env.PUPPETEER_EXECUTABLE_PATH, source: 'entorno' };
50
+ }
51
+ const system = this.findSystemBrowser();
52
+ if (system) {
53
+ return { path: system, source: 'sistema' };
54
+ }
55
+ const downloaded = findDownloadedBrowser(this.browsersPath);
56
+ return downloaded ? { path: downloaded, source: 'descargado' } : undefined;
57
+ }
58
+ getStatus() {
59
+ const installedVersion = this.readInstalledVersion();
60
+ const browser = this.resolveBrowser();
61
+ return {
62
+ browser: browser?.path,
63
+ browserSource: browser?.source,
64
+ installed: installedVersion === PDF_PLUGIN_VERSION && Boolean(browser),
65
+ installedVersion,
66
+ path: this.options.path,
67
+ version: PDF_PLUGIN_VERSION,
68
+ };
69
+ }
70
+ /** Instala el paquete y, si no hay un navegador para usar, descarga chrome-headless-shell. */
71
+ async install(onStep = () => undefined) {
72
+ mkdirSync(this.options.path, { recursive: true });
73
+ const manifest = join(this.options.path, 'package.json');
74
+ if (!existsSync(manifest)) {
75
+ writeFileSync(manifest, `${JSON.stringify({ description: 'Plugin de PDF de arcli', private: true }, null, 2)}\n`);
76
+ }
77
+ if (this.readInstalledVersion() !== PDF_PLUGIN_VERSION) {
78
+ onStep(`Descargando ${PDF_PLUGIN_PACKAGE}@${PDF_PLUGIN_VERSION}...`);
79
+ // --ignore-scripts: npm 12 ya los bloquea; asi se comporta igual con cualquier version y el navegador lo
80
+ // resolvemos nosotros.
81
+ const result = await this.runProcess(process.platform === 'win32' ? 'npm.cmd' : 'npm', [
82
+ 'install',
83
+ `${PDF_PLUGIN_PACKAGE}@${PDF_PLUGIN_VERSION}`,
84
+ '--omit=dev',
85
+ '--ignore-scripts',
86
+ '--no-audit',
87
+ '--no-fund',
88
+ '--save-exact',
89
+ ], { cwd: this.options.path, env: this.env });
90
+ if (result.code !== 0) {
91
+ throw new PdfError('PDF_PLUGIN_INSTALL_ERROR', `npm no pudo instalar ${PDF_PLUGIN_PACKAGE}.`, {
92
+ details: { salida: lastLines(result.output) },
93
+ suggestion: 'Revise la conexion a internet o el proxy de npm y vuelva a correr `arcli pdf instalar`.',
94
+ });
95
+ }
96
+ }
97
+ if (!this.resolveBrowser()) {
98
+ onStep('Descargando el navegador para generar PDFs (unos 200 MB)...');
99
+ const require = createRequire(join(this.options.path, 'package.json'));
100
+ const puppeteerCli = join(require.resolve('puppeteer/package.json'), '..', 'lib', 'puppeteer', 'node', 'cli.js');
101
+ const result = await this.runProcess(process.execPath, [puppeteerCli, 'browsers', 'install', 'chrome-headless-shell'], { cwd: this.options.path, env: { ...this.env, PUPPETEER_CACHE_DIR: this.browsersPath } });
102
+ if (result.code !== 0 || !findDownloadedBrowser(this.browsersPath)) {
103
+ throw new PdfError('PDF_PLUGIN_INSTALL_ERROR', 'No se pudo descargar el navegador para generar PDFs.', {
104
+ details: { salida: lastLines(result.output) },
105
+ suggestion: 'Si ya tiene Chrome, Chromium o Edge, indique su ruta con `arcli config establecer pdfNavegador <ruta>`.',
106
+ });
107
+ }
108
+ }
109
+ return this.getStatus();
110
+ }
111
+ uninstall() {
112
+ rmSync(this.options.path, { force: true, recursive: true });
113
+ }
114
+ load() {
115
+ const installedVersion = this.readInstalledVersion();
116
+ if (installedVersion !== PDF_PLUGIN_VERSION) {
117
+ throw new PdfError('PDF_PLUGIN_MISSING', installedVersion
118
+ ? `El plugin de PDF esta en la version ${installedVersion} y arcli usa la ${PDF_PLUGIN_VERSION}.`
119
+ : 'Para generar PDFs falta instalar el plugin de PDF.', { suggestion: PDF_INSTALL_SUGGESTION });
120
+ }
121
+ const browser = this.resolveBrowser();
122
+ if (!browser) {
123
+ throw new PdfError('PDF_PLUGIN_MISSING', 'No se encontro un navegador para generar PDFs.', {
124
+ suggestion: `${PDF_INSTALL_SUGGESTION} Descarga uno, o indique Chrome con \`arcli config establecer pdfNavegador <ruta>\`.`,
125
+ });
126
+ }
127
+ // El SDK no deja elegir el ejecutable; Puppeteer lo toma de esta variable.
128
+ process.env.PUPPETEER_EXECUTABLE_PATH = browser.path;
129
+ const require = createRequire(join(this.options.path, 'package.json'));
130
+ const sdk = require(PDF_PLUGIN_PACKAGE);
131
+ return {
132
+ render: async (data, options) => {
133
+ try {
134
+ return await new sdk.InvoicePdfGenerator(options).generate(data);
135
+ }
136
+ catch (error) {
137
+ throw new PdfError('PDF_GENERATION_ERROR', `No se pudo generar el PDF: ${error instanceof Error ? error.message : String(error)}`, { suggestion: 'Si el navegador falla, pruebe con otro: `arcli config establecer pdfNavegador <ruta>`.' });
138
+ }
139
+ },
140
+ };
141
+ }
142
+ }
143
+ //# sourceMappingURL=pdf-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-plugin.js","sourceRoot":"","sources":["../../../src/services/pdf/pdf-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ZodError } from 'zod';
2
2
  import { AppError } from '../../lib/errors/app-error.js';
3
+ import { PdfError } from '../../modules/pdf/pdf.errors.js';
3
4
  import { errorPanel } from '../components/errorPanel.js';
4
5
  import { renderJson } from '../primitives/renderJson.js';
5
6
  import { bold } from '../primitives/text.js';
@@ -14,11 +15,20 @@ function formatErrorTitle(code) {
14
15
  return 'Lote invalido';
15
16
  case 'BATCH_EMISSION_ERROR':
16
17
  return 'Lote interrumpido';
18
+ case 'PDF_GENERATION_ERROR':
19
+ case 'PDF_ISSUER_INCOMPLETE':
20
+ case 'PDF_PLUGIN_MISSING':
21
+ return 'PDF no generado';
22
+ case 'PDF_PLUGIN_INSTALL_ERROR':
23
+ return 'Plugin de PDF no instalado';
17
24
  default:
18
25
  return 'Error';
19
26
  }
20
27
  }
21
28
  function formatErrorHint(error) {
29
+ if (error instanceof PdfError && error.suggestion) {
30
+ return error.suggestion;
31
+ }
22
32
  switch (error.code) {
23
33
  case 'CONFIGURATION_ERROR':
24
34
  return 'Revise la configuracion con `arcli config` o corra `arcli config revisar`.';
@@ -78,6 +88,7 @@ export function formatCliError(error, useJson) {
78
88
  codigo: error.code,
79
89
  detalles: formatErrorDetailsAsJson(error.details),
80
90
  error: error.message,
91
+ ...(error instanceof PdfError && error.suggestion ? { sugerencia: error.suggestion } : {}),
81
92
  });
82
93
  }
83
94
  const details = formatErrorDetails(error.details);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,SAAS,gBAAgB,CAAC,IAAY;IACpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,qBAAqB;YACxB,OAAO,wBAAwB,CAAC;QAClC,KAAK,wBAAwB;YAC3B,OAAO,kBAAkB,CAAC;QAC5B,KAAK,wBAAwB;YAC3B,OAAO,eAAe,CAAC;QACzB,KAAK,sBAAsB;YACzB,OAAO,mBAAmB,CAAC;QAC7B;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAe;IACtC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,qBAAqB;YACxB,OAAO,4EAA4E,CAAC;QACtF,KAAK,wBAAwB;YAC3B,OAAO,qEAAqE,CAAC;QAC/E,KAAK,wBAAwB;YAC3B,OAAO,6EAA6E,CAAC;QACvF,KAAK,sBAAsB;YACzB,OAAO,mHAAmH,CAAC;QAC7H;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAI3C,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,UAAU,EACR,8HAA8H;YAChI,KAAK,EAAE,wBAAwB;SAChC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC3C,OAAO;YACL,UAAU,EACR,6HAA6H;YAC/H,KAAK,EAAE,wBAAwB;SAChC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA4C;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oFAAoF;IACpF,sEAAsE;IACtE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;SACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,MAAM,KAAK,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAE5C,OAAO,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA4C;IAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,OAAgB;IAC7D,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,UAAU,CAAC;gBAChB,MAAM,EAAE,KAAK,CAAC,IAAI;gBAClB,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC;gBACjD,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;IACxF,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAErD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,UAAU,CAAC;YAChB,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB;YAC/D,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,cAAc,EAAE,UAAU,IAAI,IAAI;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CACf,cAAc,EAAE,KAAK,IAAI,kBAAkB,EAC3C,OAAO,EACP,EAAE,EACF,cAAc,EAAE,UAAU,IAAI,gFAAgF,CAC/G,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.presenter.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from './billing.presenter';
2
2
  export * from './config.presenter';
3
3
  export * from './errors.presenter';
4
4
  export { summarizeZodError } from './errors.zod-presenter';
5
+ export * from './pdf.presenter';
5
6
  export * from './showcase.presenter';
@@ -2,5 +2,6 @@ export * from './billing.presenter.js';
2
2
  export * from './config.presenter.js';
3
3
  export * from './errors.presenter.js';
4
4
  export { summarizeZodError } from './errors.zod-presenter.js';
5
+ export * from './pdf.presenter.js';
5
6
  export * from './showcase.presenter.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { PdfOutcome } from '../../modules/pdf/pdf.types';
2
+ /** Texto que sigue al comprobante emitido: la ruta del PDF o por que no se genero. */
3
+ export declare function formatPdfOutcomeAsText(outcome: PdfOutcome, label?: string): string;
4
+ export interface PdfPluginStatusView {
5
+ readonly browser?: string;
6
+ readonly browserSource?: 'config' | 'descargado' | 'entorno' | 'sistema';
7
+ readonly installed: boolean;
8
+ readonly installedVersion?: string;
9
+ readonly path: string;
10
+ readonly version: string;
11
+ }
12
+ export declare function formatPdfPluginStatusAsJson(status: PdfPluginStatusView): string;
13
+ export declare function formatPdfPluginStatusAsText(status: PdfPluginStatusView, title?: string): string;