arcli 1.3.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 (151) hide show
  1. package/CHANGELOG.md +48 -1
  2. package/README.md +3 -1
  3. package/dist/cli/commands/billing.command.batch.d.ts +22 -0
  4. package/dist/cli/commands/billing.command.batch.js +51 -0
  5. package/dist/cli/commands/billing.command.batch.js.map +1 -0
  6. package/dist/cli/commands/billing.command.options.js +7 -1
  7. package/dist/cli/commands/billing.command.options.js.map +1 -1
  8. package/dist/cli/commands/billing.command.output.d.ts +2 -0
  9. package/dist/cli/commands/billing.command.output.js +15 -1
  10. package/dist/cli/commands/billing.command.output.js.map +1 -1
  11. package/dist/cli/commands/billing.command.parser.d.ts +7 -0
  12. package/dist/cli/commands/billing.command.parser.js +96 -11
  13. package/dist/cli/commands/billing.command.parser.js.map +1 -1
  14. package/dist/cli/commands/billing.command.pdf.d.ts +24 -0
  15. package/dist/cli/commands/billing.command.pdf.js +130 -0
  16. package/dist/cli/commands/billing.command.pdf.js.map +1 -0
  17. package/dist/cli/commands/billing.command.shared.js +28 -12
  18. package/dist/cli/commands/billing.command.shared.js.map +1 -1
  19. package/dist/cli/commands/config.command.js +6 -6
  20. package/dist/cli/commands/config.command.js.map +1 -1
  21. package/dist/cli/commands/pdf.command.d.ts +2 -0
  22. package/dist/cli/commands/pdf.command.js +78 -0
  23. package/dist/cli/commands/pdf.command.js.map +1 -0
  24. package/dist/cli/commands/vouchers.command.d.ts +2 -0
  25. package/dist/cli/commands/vouchers.command.js +96 -0
  26. package/dist/cli/commands/vouchers.command.js.map +1 -0
  27. package/dist/cli/help.d.ts +1 -0
  28. package/dist/cli/help.js +23 -1
  29. package/dist/cli/help.js.map +1 -1
  30. package/dist/cli/interactive/advanced-options.d.ts +14 -0
  31. package/dist/cli/interactive/advanced-options.js +126 -0
  32. package/dist/cli/interactive/advanced-options.js.map +1 -0
  33. package/dist/cli/interactive/history.flow.js +10 -19
  34. package/dist/cli/interactive/history.flow.js.map +1 -1
  35. package/dist/cli/interactive/interactive-mode.js +2 -1
  36. package/dist/cli/interactive/interactive-mode.js.map +1 -1
  37. package/dist/cli/interactive/invoice.flow.d.ts +20 -0
  38. package/dist/cli/interactive/invoice.flow.js +120 -42
  39. package/dist/cli/interactive/invoice.flow.js.map +1 -1
  40. package/dist/cli/interactive/note.flow.d.ts +24 -0
  41. package/dist/cli/interactive/note.flow.js +205 -68
  42. package/dist/cli/interactive/note.flow.js.map +1 -1
  43. package/dist/cli/interactive/pdf.flow.d.ts +5 -0
  44. package/dist/cli/interactive/pdf.flow.js +89 -0
  45. package/dist/cli/interactive/pdf.flow.js.map +1 -0
  46. package/dist/cli/interactive/prompts.d.ts +8 -0
  47. package/dist/cli/interactive/prompts.js +22 -0
  48. package/dist/cli/interactive/prompts.js.map +1 -1
  49. package/dist/cli/interactive/session.d.ts +1 -1
  50. package/dist/cli/interactive/session.js +5 -1
  51. package/dist/cli/interactive/session.js.map +1 -1
  52. package/dist/cli/interactive/validators.d.ts +4 -0
  53. package/dist/cli/interactive/validators.js +18 -0
  54. package/dist/cli/interactive/validators.js.map +1 -1
  55. package/dist/cli/program.js +4 -0
  56. package/dist/cli/program.js.map +1 -1
  57. package/dist/cli/version.d.ts +1 -1
  58. package/dist/cli/version.js +1 -1
  59. package/dist/modules/billing/billing.amounts.d.ts +1 -1
  60. package/dist/modules/billing/billing.amounts.js +34 -13
  61. package/dist/modules/billing/billing.amounts.js.map +1 -1
  62. package/dist/modules/billing/billing.batch.d.ts +23 -0
  63. package/dist/modules/billing/billing.batch.js +43 -0
  64. package/dist/modules/billing/billing.batch.js.map +1 -0
  65. package/dist/modules/billing/billing.display.js +12 -3
  66. package/dist/modules/billing/billing.display.js.map +1 -1
  67. package/dist/modules/billing/billing.schemas.d.ts +35 -0
  68. package/dist/modules/billing/billing.schemas.js +32 -6
  69. package/dist/modules/billing/billing.schemas.js.map +1 -1
  70. package/dist/modules/billing/billing.serialize.js +13 -0
  71. package/dist/modules/billing/billing.serialize.js.map +1 -1
  72. package/dist/modules/billing/billing.types.internal.d.ts +3 -0
  73. package/dist/modules/config/config-doctor.js +13 -0
  74. package/dist/modules/config/config-doctor.js.map +1 -1
  75. package/dist/modules/config/config-value-parser.d.ts +1 -1
  76. package/dist/modules/config/config-value-parser.js +43 -2
  77. package/dist/modules/config/config-value-parser.js.map +1 -1
  78. package/dist/modules/config/config.presenter.d.ts +6 -2
  79. package/dist/modules/config/config.presenter.js +25 -6
  80. package/dist/modules/config/config.presenter.js.map +1 -1
  81. package/dist/modules/config/config.schemas.d.ts +42 -0
  82. package/dist/modules/config/config.schemas.js +29 -0
  83. package/dist/modules/config/config.schemas.js.map +1 -1
  84. package/dist/modules/config/config.service.d.ts +8 -0
  85. package/dist/modules/config/config.service.js +21 -0
  86. package/dist/modules/config/config.service.js.map +1 -1
  87. package/dist/modules/examples/examples.js +1 -0
  88. package/dist/modules/examples/examples.js.map +1 -1
  89. package/dist/modules/interactive/equivalent-command.js +13 -0
  90. package/dist/modules/interactive/equivalent-command.js.map +1 -1
  91. package/dist/modules/interactive/wizard.d.ts +16 -0
  92. package/dist/modules/interactive/wizard.js +33 -0
  93. package/dist/modules/interactive/wizard.js.map +1 -0
  94. package/dist/modules/pdf/pdf-data.mapper.d.ts +4 -0
  95. package/dist/modules/pdf/pdf-data.mapper.js +117 -0
  96. package/dist/modules/pdf/pdf-data.mapper.js.map +1 -0
  97. package/dist/modules/pdf/pdf-decision.d.ts +14 -0
  98. package/dist/modules/pdf/pdf-decision.js +19 -0
  99. package/dist/modules/pdf/pdf-decision.js.map +1 -0
  100. package/dist/modules/pdf/pdf-file-name.d.ts +3 -0
  101. package/dist/modules/pdf/pdf-file-name.js +7 -0
  102. package/dist/modules/pdf/pdf-file-name.js.map +1 -0
  103. package/dist/modules/pdf/pdf-issuer.d.ts +8 -0
  104. package/dist/modules/pdf/pdf-issuer.js +43 -0
  105. package/dist/modules/pdf/pdf-issuer.js.map +1 -0
  106. package/dist/modules/pdf/pdf.errors.d.ts +10 -0
  107. package/dist/modules/pdf/pdf.errors.js +11 -0
  108. package/dist/modules/pdf/pdf.errors.js.map +1 -0
  109. package/dist/modules/pdf/pdf.types.d.ts +91 -0
  110. package/dist/modules/pdf/pdf.types.js +2 -0
  111. package/dist/modules/pdf/pdf.types.js.map +1 -0
  112. package/dist/modules/storybook/showcase.js +6 -2
  113. package/dist/modules/storybook/showcase.js.map +1 -1
  114. package/dist/modules/{interactive → vouchers}/voucher-history.d.ts +9 -0
  115. package/dist/modules/{interactive → vouchers}/voucher-history.js +1 -0
  116. package/dist/modules/vouchers/voucher-history.js.map +1 -0
  117. package/dist/modules/vouchers/voucher-history.presenter.d.ts +22 -0
  118. package/dist/modules/vouchers/voucher-history.presenter.js +108 -0
  119. package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -0
  120. package/dist/services/arca/arca-voucher-history.gateway.d.ts +1 -1
  121. package/dist/services/arca/arca-voucher-history.gateway.js +9 -1
  122. package/dist/services/arca/arca-voucher-history.gateway.js.map +1 -1
  123. package/dist/services/pdf/pdf-browser.d.ts +5 -0
  124. package/dist/services/pdf/pdf-browser.js +54 -0
  125. package/dist/services/pdf/pdf-browser.js.map +1 -0
  126. package/dist/services/pdf/pdf-exporter.d.ts +19 -0
  127. package/dist/services/pdf/pdf-exporter.js +47 -0
  128. package/dist/services/pdf/pdf-exporter.js.map +1 -0
  129. package/dist/services/pdf/pdf-plugin.d.ts +50 -0
  130. package/dist/services/pdf/pdf-plugin.js +143 -0
  131. package/dist/services/pdf/pdf-plugin.js.map +1 -0
  132. package/dist/ui/presenters/errors.presenter.js +22 -1
  133. package/dist/ui/presenters/errors.presenter.js.map +1 -1
  134. package/dist/ui/presenters/errors.zod-presenter.d.ts +2 -0
  135. package/dist/ui/presenters/errors.zod-presenter.js +4 -0
  136. package/dist/ui/presenters/errors.zod-presenter.js.map +1 -1
  137. package/dist/ui/presenters/index.d.ts +2 -0
  138. package/dist/ui/presenters/index.js +2 -0
  139. package/dist/ui/presenters/index.js.map +1 -1
  140. package/dist/ui/presenters/pdf.presenter.d.ts +13 -0
  141. package/dist/ui/presenters/pdf.presenter.js +46 -0
  142. package/dist/ui/presenters/pdf.presenter.js.map +1 -0
  143. package/dist/ui/primitives/text.d.ts +5 -0
  144. package/dist/ui/primitives/text.js +10 -1
  145. package/dist/ui/primitives/text.js.map +1 -1
  146. package/llms.txt +25 -5
  147. package/package.json +1 -1
  148. package/dist/cli/interactive/voucher-format.d.ts +0 -4
  149. package/dist/cli/interactive/voucher-format.js +0 -28
  150. package/dist/cli/interactive/voucher-format.js.map +0 -1
  151. package/dist/modules/interactive/voucher-history.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,51 @@ El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y e
8
8
 
9
9
  ## [Sin publicar]
10
10
 
11
+ ## [1.5.0] - 2026-10-04
12
+
13
+ Esta versión suma el PDF del comprobante con el QR de ARCA, para mandarle al cliente. El PDF lo genera un plugin que se descarga solo si lo usás, así que ARCLI no pesa más para quien no quiere PDFs. No se rompe ningún comando, flag ni JSON existente: todo lo nuevo es opcional, y el JSON suma la clave `pdf` solo cuando se intenta generar el PDF.
14
+
15
+ ### Agregado
16
+
17
+ - **PDF del comprobante con el QR de ARCA**, para mandarle al cliente. Ver [PDF de comprobantes](docs/pdf.md).
18
+ - `--exportar-pdf` (alias `--pdf`) lo genera después de emitir y `--sin-pdf` no. Sin flag decide la config `pdf`: `preguntar` (por defecto), `siempre` o `nunca`. Con `preguntar`, sin terminal o con `--json` no se genera.
19
+ - Datos que solo van en el PDF, porque ARCA no los guarda: `--descripcion`, `--receptor-nombre` y `--receptor-domicilio`, y en el JSON de `--cargar`, `pdf`, `descripcion`, `receptorNombre` y `receptorDomicilio`.
20
+ - Claves de config nuevas: `pdf`, `pdfCarpeta` (por defecto `~/arcli/comprobantes`), `pdfNavegador` y los datos del emisor: `emisor.razonSocial`, `emisor.domicilio`, `emisor.inicioActividades`, `emisor.iibb`, `emisor.condicionIva` y `emisor.logo`.
21
+ - El archivo se llama `factura-c_0003-00000125.pdf`. Los de testing van a la subcarpeta `testing/` con un pie que dice que no tienen validez fiscal.
22
+ - En JSON, cada resultado suma la clave `pdf` (`{ ruta }` o `{ error }`) **solo si se intentó generar**. Un error del PDF no cambia el código de salida, porque el comprobante ya está emitido.
23
+ - El modo interactivo pregunta si generar el PDF después de emitir, y pide los datos del emisor que falten (ofrece guardarlos).
24
+ - **`arcli pdf`** (`estado`, `instalar`, `desinstalar`): el PDF lo genera [`@arcasdk/pdf`](https://www.afipts.com/packages/pdf), que **no viene con ARCLI** porque pesa unos 160 MB (más un navegador de unos 200 MB si no hay Chrome, Chromium o Edge instalado). Se descarga recién cuando alguien quiere PDFs: en una terminal, ARCLI lo ofrece la primera vez; sin terminal nunca se descarga solo.
25
+ - `config revisar` avisa si `pdf` es `siempre` y faltan datos del emisor.
26
+
27
+ ## [1.4.0] - 2026-10-02
28
+
29
+ Esta versión suma dos comandos para ver lo emitido (`ultimos` y `consultar`), facturas con varias alícuotas de IVA y un modo interactivo más completo. Los lotes ahora se validan enteros antes de emitir. No se rompe ningún comando, flag ni JSON existente: `--alicuota` con un solo número funciona igual que antes.
30
+
31
+ ### Agregado
32
+
33
+ - **Modo interactivo:**
34
+ - **Volver al paso anterior** con "← Volver" en las opciones o `<` en los textos.
35
+ - **Opciones avanzadas** antes de la vista previa: moneda extranjera (incluida la cotización oficial si te pagan en dólares), exento y no gravado, período del servicio y vencimiento del pago.
36
+ - Las notas comunes se pueden asociar **a un período** en lugar de a una factura.
37
+ - **Varias alícuotas por comprobante:** repetí `--alicuota TASA:MONTO` con el monto IVA incluido de cada una, por ejemplo `--alicuota general:1210 --alicuota reducida:552.50`. El total se calcula solo y se envía una entrada de IVA por alícuota. En JSON: `alicuotas: [{tasa, monto}]`.
38
+ - **Alias de alícuotas:** `general` (21), `reducida` (10.5), `incrementada` (27) y `cero` (0). Se aceptan igual que el número en `--alicuota`, `alicuotaIva` y `config alicuota`.
39
+ - `arcli ultimos <tipo>`: lista los últimos comprobantes emitidos en ARCA (`--cantidad` de 1 a 50, por defecto 10).
40
+ - `arcli consultar <tipo> <numero>`: muestra el detalle de un comprobante emitido, con CAE, vencimiento, importes y receptor.
41
+ - Los dos tienen `--json` y `--pv`. Antes esto solo se podía ver desde el modo interactivo.
42
+
43
+ ### Cambiado
44
+
45
+ - **Lotes (`--cargar` con un array):**
46
+ - Se validan **todos** los comprobantes antes de emitir el primero. Si alguno es inválido, no se emite ninguno y el error `BATCH_VALIDATION_ERROR` los lista a todos con su índice.
47
+ - Antes, las reglas de negocio se validaban mientras se emitía: si el #3 era inválido, el #1 y el #2 ya estaban emitidos y sus resultados no se mostraban.
48
+ - Si la emisión se corta a mitad (red, ARCA), se muestran los comprobantes ya procesados y después el error `BATCH_EMISSION_ERROR`, con el ítem que falló y los que quedaron sin procesar.
49
+
50
+ ### Corregido
51
+
52
+ - El comando equivalente del modo interactivo no incluía la moneda extranjera (`--moneda`, `--cm`, `--misma-moneda`).
53
+ - **La salida `--json` traía códigos de color ANSI cuando se redirigía** (`arcli ... --json | jq` fallaba con `parse error`). Ahora solo hay colores si la salida es una terminal real. `FORCE_COLOR=1` los fuerza y `NO_COLOR` los apaga.
54
+ - En el modo interactivo, el logo ahora tiene 3 líneas en blanco abajo, igual que arriba. Antes la barra de estado quedaba pegada.
55
+
11
56
  ## [1.3.0] - 2026-10-02
12
57
 
13
58
  Esta versión suma el modo interactivo para quien factura de vez en cuando y renueva la salida de la terminal: bordes según el tipo de panel, paneles que se ajustan a ventanas angostas y varios bugs de color corregidos. No se rompe ningún comando, flag ni JSON existente. El único cambio de comportamiento es que `arcli` sin argumentos, en una terminal interactiva, abre el asistente en lugar de la ayuda.
@@ -120,7 +165,9 @@ Primera versión publicada en npm.
120
165
  - `llms.txt`: referencia condensada para que un agente de IA con acceso a terminal ejecute el CLI.
121
166
  - Publicación con npm Trusted Publishers (OIDC).
122
167
 
123
- [Sin publicar]: https://github.com/LcsGrz/arcli/compare/v1.3.0...HEAD
168
+ [Sin publicar]: https://github.com/LcsGrz/arcli/compare/v1.5.0...HEAD
169
+ [1.5.0]: https://github.com/LcsGrz/arcli/compare/v1.4.0...v1.5.0
170
+ [1.4.0]: https://github.com/LcsGrz/arcli/compare/v1.3.0...v1.4.0
124
171
  [1.3.0]: https://github.com/LcsGrz/arcli/compare/v1.2.0...v1.3.0
125
172
  [1.2.0]: https://github.com/LcsGrz/arcli/compare/v1.1.0...v1.2.0
126
173
  [1.1.0]: https://github.com/LcsGrz/arcli/releases/tag/v1.1.0
package/README.md CHANGED
@@ -29,6 +29,7 @@ Emití o previsualizá comprobantes ARCA desde tu terminal, con un flujo claro,
29
29
  - Factura de Crédito Electrónica (FCE) completa: CBU, transferencia, anulación y consulta del régimen del receptor
30
30
  - alícuotas de IVA, importes exentos y no gravados, moneda extranjera y período asociado
31
31
  - validaciones locales con las reglas del manual de ARCA, para que los errores aparezcan antes de emitir
32
+ - PDF del comprobante con el QR de ARCA, con un plugin que se descarga solo si lo usás
32
33
 
33
34
  ## Demo basica
34
35
 
@@ -135,6 +136,7 @@ arcli fa -m 15000 --cs --cuit 20168598204 --ir-ri \
135
136
  - [Modo interactivo](docs/modo-interactivo.md)
136
137
  - [Patrones de uso](docs/usage-patterns.md)
137
138
  - [Configuración](docs/configuration.md)
139
+ - [PDF de comprobantes](docs/pdf.md)
138
140
  - [Cómo obtener los certificados de ARCA](docs/obtencion-certificados.md)
139
141
  - [Entrada y salida](docs/input-output.md)
140
142
  - [Reglas de validación](docs/validation-rules.md)
@@ -151,7 +153,7 @@ arcli fa -m 15000 --cs --cuit 20168598204 --ir-ri \
151
153
 
152
154
  ARCLI existe apoyado en trabajo open source que ya resolvió partes difíciles del problema. En particular:
153
155
 
154
- - [`@arcasdk/core`](https://github.com/ralcorta/arcasdk) creada por [Rodrigo Alcorta](https://github.com/ralcorta)
156
+ - [`@arcasdk/core`](https://github.com/ralcorta/arcasdk) y [`@arcasdk/pdf`](https://www.afipts.com/packages/pdf), creadas por [Rodrigo Alcorta](https://github.com/ralcorta)
155
157
  - [Arpit Bhayani](https://github.com/arpitbbhayani) por cederme el paquete de npm bajo el nombre de 'arcli', estaba siendo utilizado por el.
156
158
 
157
159
  Y la comunidad open source que mantiene herramientas de este estilo vivas y usables
@@ -0,0 +1,22 @@
1
+ import { type BatchItemError } from '../../modules/billing/billing.batch';
2
+ interface BatchPlan {
3
+ readonly inputIndexes: readonly number[];
4
+ readonly invalidItems: readonly BatchItemError[];
5
+ readonly total: number;
6
+ }
7
+ /**
8
+ * En un lote, valida todos los comprobantes antes de emitir el primero. `validate` tira si el item es
9
+ * invalido (lectura del JSON o reglas de negocio). Si alguno falla, no se emite ninguno y se informan todos.
10
+ */
11
+ export declare function validateBatchBeforeEmitting<T>(plan: BatchPlan, inputs: readonly T[], validate: (input: T) => void): void;
12
+ /**
13
+ * Emite los items en orden. Si uno falla a mitad del lote, entrega lo ya procesado a `onPartialResults`
14
+ * antes de cortar: si no se mostrara, alguien volveria a correr el lote y duplicaria comprobantes.
15
+ */
16
+ export declare function emitBatch<T, R>(options: {
17
+ readonly emit: (input: T, position: number) => Promise<R>;
18
+ readonly inputs: readonly T[];
19
+ readonly onPartialResults: (results: R[]) => void;
20
+ readonly plan: BatchPlan;
21
+ }): Promise<R[]>;
22
+ export {};
@@ -0,0 +1,51 @@
1
+ import { BatchEmissionError, BatchValidationError, describeBatchItemError, } from '../../modules/billing/billing.batch.js';
2
+ /**
3
+ * En un lote, valida todos los comprobantes antes de emitir el primero. `validate` tira si el item es
4
+ * invalido (lectura del JSON o reglas de negocio). Si alguno falla, no se emite ninguno y se informan todos.
5
+ */
6
+ export function validateBatchBeforeEmitting(plan, inputs, validate) {
7
+ if (plan.total === 1) {
8
+ return;
9
+ }
10
+ const errors = [...plan.invalidItems];
11
+ inputs.forEach((input, position) => {
12
+ try {
13
+ validate(input);
14
+ }
15
+ catch (error) {
16
+ errors.push({ index: plan.inputIndexes[position] ?? position + 1, message: describeBatchItemError(error) });
17
+ }
18
+ });
19
+ if (errors.length > 0) {
20
+ throw new BatchValidationError([...errors].sort((left, right) => left.index - right.index), plan.total);
21
+ }
22
+ }
23
+ /**
24
+ * Emite los items en orden. Si uno falla a mitad del lote, entrega lo ya procesado a `onPartialResults`
25
+ * antes de cortar: si no se mostrara, alguien volveria a correr el lote y duplicaria comprobantes.
26
+ */
27
+ export async function emitBatch(options) {
28
+ const { emit, inputs, onPartialResults, plan } = options;
29
+ const results = [];
30
+ for (const [position, input] of inputs.entries()) {
31
+ try {
32
+ results.push(await emit(input, position));
33
+ }
34
+ catch (error) {
35
+ if (plan.total === 1) {
36
+ throw error;
37
+ }
38
+ if (results.length > 0) {
39
+ onPartialResults(results);
40
+ }
41
+ throw new BatchEmissionError({
42
+ cause: error,
43
+ emitted: results.length,
44
+ failedIndex: plan.inputIndexes[position] ?? position + 1,
45
+ total: plan.total,
46
+ });
47
+ }
48
+ }
49
+ return results;
50
+ }
51
+ //# sourceMappingURL=billing.command.batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.command.batch.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.batch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAQ7C;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAe,EACf,MAAoB,EACpB,QAA4B;IAE5B,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAqB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAExD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,oBAAoB,CAC5B,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAC3D,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAO,OAKrC;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzD,MAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;gBACxD,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -2,7 +2,7 @@ import { Option } from 'commander';
2
2
  export function registerBillingOptions(command) {
3
3
  command
4
4
  .option('-m, --monto <number>', 'importe total del comprobante', parseFloat)
5
- .option('--alicuota <tasa>', 'alicuota de IVA para A y B: 0, 2.5, 5, 10.5, 21 o 27 (por defecto 21)')
5
+ .option('--alicuota <tasa>', 'alicuota de IVA para A y B: general (21), reducida (10.5), incrementada (27), cero (0), 5 o 2.5. Repetible como TASA:MONTO para varias alicuotas', (value, previous) => [...(previous ?? []), value])
6
6
  .option('--exento <number>', 'parte exenta del monto total (A y B)', parseFloat)
7
7
  // No puede llamarse --no-gravado: commander interpreta --no-* como negacion de un flag booleano.
8
8
  .option('--nogravado <number>', 'parte no gravada del monto total (A y B)', parseFloat)
@@ -59,6 +59,12 @@ export function registerBillingOptions(command) {
59
59
  .option('--alias <alias>', 'alias del CBU del emisor para facturas FCE')
60
60
  .option('--transferencia <modalidad>', 'modalidad de transferencia FCE: sca o adc (por defecto sca)')
61
61
  .option('--anulacion', 'NC/ND FCE de anulacion (la factura asociada fue rechazada por el comprador)')
62
+ .option('--exportar-pdf', 'generar el PDF del comprobante emitido, aunque la config diga otra cosa')
63
+ .option('--pdf', 'alias de --exportar-pdf')
64
+ .option('--sin-pdf', 'no generar el PDF, aunque la config diga otra cosa')
65
+ .option('--descripcion <texto>', 'detalle del comprobante en el PDF; por defecto "Segun detalle"')
66
+ .option('--receptor-nombre <texto>', 'nombre o razon social del receptor en el PDF')
67
+ .option('--receptor-domicilio <texto>', 'domicilio del receptor en el PDF')
62
68
  .option('--previsualizar', 'mostrar el payload antes de emitir en ARCA')
63
69
  .addOption(new Option('--emitir', 'emitir realmente en ARCA'));
64
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"billing.command.options.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.command.options.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.options.ts"],"names":[],"mappings":"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"}
@@ -10,3 +10,5 @@ export declare function writeBillingCommandResults(results: BillingExecutionResu
10
10
  readonly previewShown?: boolean;
11
11
  readonly raw: boolean;
12
12
  }): void;
13
+ /** En texto el comprobante ya se mostro: solo se agrega lo que paso con el PDF y los avisos nuevos. */
14
+ export declare function writePdfOutcomes(before: readonly BillingExecutionResult[], after: readonly BillingExecutionResult[]): void;
@@ -1,5 +1,5 @@
1
1
  import { serializeBillingBatch } from '../../modules/billing/billing.serialize.js';
2
- import { formatBillingResultAsJson, formatBillingResultAsText, writeTerminalJson, writeTerminalOutput } from '../../ui/index.js';
2
+ import { formatBillingResultAsJson, formatBillingResultAsText, formatPdfOutcomeAsText, noticePanel, writeTerminalJson, writeTerminalOutput, } from '../../ui/index.js';
3
3
  export function formatBillingOutputs(results, options) {
4
4
  return results
5
5
  .map((result, index) => {
@@ -30,4 +30,18 @@ export function writeBillingCommandResults(results, options) {
30
30
  raw: options.raw,
31
31
  }));
32
32
  }
33
+ /** En texto el comprobante ya se mostro: solo se agrega lo que paso con el PDF y los avisos nuevos. */
34
+ export function writePdfOutcomes(before, after) {
35
+ const blocks = after.flatMap((result, index) => {
36
+ const label = after.length > 1 ? `Lote ${index + 1}/${after.length}` : undefined;
37
+ const newWarnings = (result.warnings ?? []).slice(before[index]?.warnings?.length ?? 0);
38
+ return [
39
+ ...(result.pdf ? [formatPdfOutcomeAsText(result.pdf, label)] : []),
40
+ ...newWarnings.map((warning) => noticePanel(label ? `${label}: ${warning}` : warning, 'warning')),
41
+ ];
42
+ });
43
+ if (blocks.length > 0) {
44
+ writeTerminalOutput(blocks.join('\n'));
45
+ }
46
+ }
33
47
  //# sourceMappingURL=billing.command.output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"billing.command.output.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAExH,MAAM,UAAU,oBAAoB,CAClC,OAAiC,EACjC,OAIC;IAED,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,EAAE;YAC/C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAiC,EACjC,OAKC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,iBAAiB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAE/E,OAAO;QACT,CAAC;QAED,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjG,OAAO;IACT,CAAC;IAED,mBAAmB,CACjB,oBAAoB,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"billing.command.output.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.output.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Command } from 'commander';
2
+ import { type BatchItemError } from '../../modules/billing/billing.batch';
2
3
  import { type BillingCommandInput } from '../../modules/billing/billing.schemas';
3
4
  import type { VoucherShortcut } from '../../modules/billing/billing.types';
4
5
  export { registerBillingOptions } from './billing.command.options';
@@ -13,8 +14,14 @@ export interface BillingCommandDefaults {
13
14
  readonly defaultIvaCondition?: BillingCommandInput['ivaCondition'];
14
15
  }
15
16
  export interface BillingCommandPlan {
17
+ /** Posicion en el lote (desde 1) de cada item de `inputs`. */
18
+ readonly inputIndexes: number[];
16
19
  readonly inputs: BillingCommandInput[];
20
+ /** Items del lote que no se pudieron leer; el comando no emite nada si hay alguno. */
21
+ readonly invalidItems: BatchItemError[];
17
22
  readonly modeSource: 'default' | 'file' | 'flags';
23
+ /** Cantidad de items del lote (1 si no hay lote). */
24
+ readonly total: number;
18
25
  }
19
26
  export declare function parseBillingCommandPlan(command: Command, shortcut: VoucherShortcut, defaults?: BillingCommandDefaults): BillingCommandPlan;
20
27
  export declare function parseBillingCommandInputs(command: Command, shortcut: VoucherShortcut, defaults?: BillingCommandDefaults): BillingCommandInput[];
@@ -1,5 +1,6 @@
1
1
  import { InputValidationError } from '../../lib/errors/app-error.js';
2
2
  import { readJsonFile } from '../../lib/files/read-json-file.js';
3
+ import { BatchValidationError, describeBatchItemError } from '../../modules/billing/billing.batch.js';
3
4
  import { isForeignCurrency } from '../../modules/billing/billing.currency.js';
4
5
  import { billingCommandSchema } from '../../modules/billing/billing.schemas.js';
5
6
  import { getVoucherKindByShortcut } from '../../modules/billing/voucher-kind-map.js';
@@ -11,6 +12,46 @@ function pickString(...values) {
11
12
  function pickNumber(...values) {
12
13
  return values.find((value) => typeof value === 'number');
13
14
  }
15
+ function parseAmountText(raw) {
16
+ const value = raw.trim();
17
+ // "552,50" -> 552.5; con punto se toma como decimal, igual que --monto.
18
+ return Number(value.includes(',') && !value.includes('.') ? value.replace(',', '.') : value);
19
+ }
20
+ /**
21
+ * `--alicuota` acepta una tasa sola ("reducida", "10.5") o, repetido, pares TASA:MONTO con el importe
22
+ * de cada alicuota IVA incluido. No se pueden mezclar las dos formas.
23
+ */
24
+ function parseIvaRateFlags(values) {
25
+ if (!values || values.length === 0) {
26
+ return {};
27
+ }
28
+ const withAmount = values.filter((value) => value.includes(':'));
29
+ if (withAmount.length === 0) {
30
+ if (values.length > 1) {
31
+ throw new InputValidationError('Para varias alicuotas use --alicuota TASA:MONTO en cada una, por ejemplo --alicuota general:1210 --alicuota reducida:552.50.');
32
+ }
33
+ return { ivaRate: values[0] };
34
+ }
35
+ if (withAmount.length !== values.length) {
36
+ throw new InputValidationError('No mezcle --alicuota TASA con --alicuota TASA:MONTO: use una sola forma.');
37
+ }
38
+ return {
39
+ ivaRateAmounts: values.map((value) => {
40
+ const separator = value.indexOf(':');
41
+ return { amount: parseAmountText(value.slice(separator + 1)), rate: value.slice(0, separator) };
42
+ }),
43
+ };
44
+ }
45
+ function resolvePdfFlag(commandOptions, fileInput) {
46
+ const exportPdf = commandOptions.exportarPdf === true || commandOptions.pdf === true;
47
+ if (exportPdf && commandOptions.sinPdf === true) {
48
+ throw new InputValidationError('Use --exportar-pdf o --sin-pdf, pero no ambos a la vez.');
49
+ }
50
+ if (exportPdf) {
51
+ return true;
52
+ }
53
+ return commandOptions.sinPdf === true ? false : fileInput?.pdf;
54
+ }
14
55
  function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaults = {}) {
15
56
  const commandOptions = command.optsWithGlobals();
16
57
  const emitirSource = command.getOptionValueSource('emitir');
@@ -104,6 +145,18 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
104
145
  const periodFrom = pickString(commandOptions.periodoDesde, commandOptions.pd);
105
146
  const periodTo = pickString(commandOptions.periodoHasta, commandOptions.ph);
106
147
  const associatedPeriod = periodFrom || periodTo ? { desde: periodFrom, hasta: periodTo } : fileInput?.periodoAsociado;
148
+ const flagRates = parseIvaRateFlags(commandOptions.alicuota);
149
+ const fileRateAmounts = fileInput?.alicuotas?.map((item) => ({ amount: item.monto, rate: item.tasa }));
150
+ const ivaRateAmounts = flagRates.ivaRateAmounts ?? fileRateAmounts;
151
+ const exemptAmount = pickNumber(commandOptions.exento, fileInput?.importeExento);
152
+ const untaxedAmount = pickNumber(commandOptions.nogravado, fileInput?.importeNoGravado);
153
+ // Con varias alicuotas el monto total se puede omitir: es la suma de cada una mas exento y no gravado.
154
+ const totalAmount = pickNumber(commandOptions.monto, fileInput?.montoTotal) ??
155
+ (ivaRateAmounts
156
+ ? ivaRateAmounts.reduce((sum, item) => sum + (typeof item.amount === 'number' ? item.amount : 0), 0) +
157
+ (exemptAmount ?? 0) +
158
+ (untaxedAmount ?? 0)
159
+ : undefined);
107
160
  return {
108
161
  ...billingCommandSchema.parse({
109
162
  associatedPeriod,
@@ -120,20 +173,25 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
120
173
  dueDay: pickNumber(commandOptions.dia, fileInput?.dia),
121
174
  emit: shouldEmit,
122
175
  exchangeRate,
123
- exemptAmount: pickNumber(commandOptions.exento, fileInput?.importeExento),
124
- ivaRate: pickString(commandOptions.alicuota) ??
125
- fileInput?.alicuotaIva ??
126
- (usesIvaRateDefault ? defaults.defaultIvaRate : undefined),
176
+ exemptAmount,
177
+ ivaRate: ivaRateAmounts
178
+ ? undefined
179
+ : (flagRates.ivaRate ?? fileInput?.alicuotaIva ?? (usesIvaRateDefault ? defaults.defaultIvaRate : undefined)),
180
+ ivaRateAmounts,
127
181
  ivaCondition: resolvedIvaCondition,
128
182
  paymentDueDate: pickString(commandOptions.vencimiento, commandOptions.vto, fileInput?.vencimientoPago),
183
+ pdf: resolvePdfFlag(commandOptions, fileInput),
184
+ pdfDescription: pickString(commandOptions.descripcion, fileInput?.descripcion),
129
185
  pointOfSale: pickNumber(commandOptions.puntoVenta, commandOptions.pv, fileInput?.puntoVenta),
186
+ receiverAddress: pickString(commandOptions.receptorDomicilio, fileInput?.receptorDomicilio),
187
+ receiverName: pickString(commandOptions.receptorNombre, fileInput?.receptorNombre),
130
188
  sameCurrency,
131
189
  serviceEndDate: pickString(commandOptions.servicioHasta, commandOptions.sh, fileInput?.servicioHasta),
132
190
  serviceStartDate: pickString(commandOptions.servicioDesde, commandOptions.sd, fileInput?.servicioDesde),
133
191
  shortcut,
134
- totalAmount: pickNumber(commandOptions.monto, fileInput?.montoTotal),
192
+ totalAmount: totalAmount === undefined ? undefined : Math.round(totalAmount * 100) / 100,
135
193
  transferMode: pickString(commandOptions.transferencia, fileInput?.transferencia),
136
- untaxedAmount: pickNumber(commandOptions.nogravado, fileInput?.importeNoGravado),
194
+ untaxedAmount,
137
195
  }),
138
196
  __modeSource: modeSource,
139
197
  };
@@ -146,23 +204,50 @@ export function parseBillingCommandPlan(command, shortcut, defaults = {}) {
146
204
  if (fileInputs.length === 0) {
147
205
  const { __modeSource, ...input } = parseBillingCommandInputFromSource(command, shortcut, undefined, defaults);
148
206
  return {
207
+ inputIndexes: [1],
149
208
  inputs: [input],
209
+ invalidItems: [],
150
210
  modeSource: __modeSource,
211
+ total: 1,
151
212
  };
152
213
  }
153
- const inputs = fileInputs.map((fileInput) => parseBillingCommandInputFromSource(command, shortcut, fileInput, defaults));
154
- const modeSource = inputs.some((input) => input.__modeSource === 'flags')
214
+ // Un solo comprobante falla como siempre. En un lote se leen todos y se juntan los errores,
215
+ // para informarlos de una vez en lugar de cortar en el primero.
216
+ if (fileInputs.length === 1) {
217
+ const { __modeSource, ...input } = parseBillingCommandInputFromSource(command, shortcut, fileInputs[0], defaults);
218
+ return { inputIndexes: [1], inputs: [input], invalidItems: [], modeSource: __modeSource, total: 1 };
219
+ }
220
+ const parsed = [];
221
+ const inputIndexes = [];
222
+ const invalidItems = [];
223
+ fileInputs.forEach((fileInput, position) => {
224
+ try {
225
+ parsed.push(parseBillingCommandInputFromSource(command, shortcut, fileInput, defaults));
226
+ inputIndexes.push(position + 1);
227
+ }
228
+ catch (error) {
229
+ invalidItems.push({ index: position + 1, message: describeBatchItemError(error) });
230
+ }
231
+ });
232
+ const modeSource = parsed.some((input) => input.__modeSource === 'flags')
155
233
  ? 'flags'
156
- : inputs.some((input) => input.__modeSource === 'file')
234
+ : parsed.some((input) => input.__modeSource === 'file')
157
235
  ? 'file'
158
236
  : 'default';
159
237
  return {
160
- inputs: inputs.map(({ __modeSource: _modeSource, ...input }) => input),
238
+ inputIndexes,
239
+ inputs: parsed.map(({ __modeSource: _modeSource, ...input }) => input),
240
+ invalidItems,
161
241
  modeSource,
242
+ total: fileInputs.length,
162
243
  };
163
244
  }
164
245
  export function parseBillingCommandInputs(command, shortcut, defaults = {}) {
165
- return parseBillingCommandPlan(command, shortcut, defaults).inputs;
246
+ const plan = parseBillingCommandPlan(command, shortcut, defaults);
247
+ if (plan.invalidItems.length > 0) {
248
+ throw new BatchValidationError(plan.invalidItems, plan.total);
249
+ }
250
+ return plan.inputs;
166
251
  }
167
252
  export function parseBillingCommandInput(command, shortcut, defaults = {}) {
168
253
  return parseBillingCommandInputs(command, shortcut, defaults)[0];
@@ -1 +1 @@
1
- {"version":3,"file":"billing.command.parser.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.command.parser.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { BillingCommandInput } from '../../modules/billing/billing.schemas';
2
+ import type { BillingExecutionResult } from '../../modules/billing/billing.types.internal';
3
+ import type { ArcliConfig } from '../../modules/config/config.schemas';
4
+ import { PdfPlugin } from '../../services/pdf/pdf-plugin';
5
+ export declare const PDF_ONLY_FLAGS_WARNING = "--descripcion, --receptor-nombre y --receptor-domicilio solo se usan en el PDF; no se genero ninguno.";
6
+ export interface PdfStepDependencies {
7
+ readonly confirm: (message: string, yesLabel: string, noLabel?: string) => Promise<boolean>;
8
+ readonly createPlugin: (config: ArcliConfig) => PdfPlugin;
9
+ readonly resolveFolder: (config: ArcliConfig) => string;
10
+ }
11
+ export declare const defaultPdfStepDependencies: PdfStepDependencies;
12
+ export interface PdfStepOptions {
13
+ readonly config: ArcliConfig;
14
+ /** Alineados con `results`. */
15
+ readonly inputs: readonly BillingCommandInput[];
16
+ /** Hay alguien para responder preguntas: terminal interactiva y sin --json. */
17
+ readonly interactive: boolean;
18
+ readonly results: readonly BillingExecutionResult[];
19
+ }
20
+ /**
21
+ * Genera los PDFs de los comprobantes emitidos. Nunca lanza: el comprobante ya esta emitido, asi que un
22
+ * error del PDF se devuelve en `pdf.error` y no cambia el codigo de salida.
23
+ */
24
+ export declare function attachPdfs(options: PdfStepOptions, deps?: PdfStepDependencies): Promise<BillingExecutionResult[]>;