arcli 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -1
- package/README.md +55 -156
- package/dist/cli/commands/vouchers.command.js +4 -3
- package/dist/cli/commands/vouchers.command.js.map +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/cli/interactive/config.flow.d.ts +1 -1
- package/dist/cli/interactive/config.flow.js +53 -18
- package/dist/cli/interactive/config.flow.js.map +1 -1
- package/dist/cli/interactive/history.flow.d.ts +4 -0
- package/dist/cli/interactive/history.flow.js +22 -8
- package/dist/cli/interactive/history.flow.js.map +1 -1
- package/dist/cli/interactive/interactive-mode.js +24 -10
- package/dist/cli/interactive/interactive-mode.js.map +1 -1
- package/dist/cli/interactive/invoice-picker.d.ts +25 -0
- package/dist/cli/interactive/invoice-picker.js +152 -0
- package/dist/cli/interactive/invoice-picker.js.map +1 -0
- package/dist/cli/interactive/note.flow.d.ts +6 -2
- package/dist/cli/interactive/note.flow.js +19 -30
- package/dist/cli/interactive/note.flow.js.map +1 -1
- package/dist/cli/interactive/prompts.d.ts +34 -5
- package/dist/cli/interactive/prompts.js +181 -19
- package/dist/cli/interactive/prompts.js.map +1 -1
- package/dist/cli/interactive/repeat.flow.js +5 -11
- package/dist/cli/interactive/repeat.flow.js.map +1 -1
- package/dist/cli/interactive/status.flow.d.ts +3 -0
- package/dist/cli/interactive/status.flow.js +29 -0
- package/dist/cli/interactive/status.flow.js.map +1 -0
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/modules/config/config-value-parser.d.ts +1 -1
- package/dist/modules/config/config-value-parser.js +10 -0
- package/dist/modules/config/config-value-parser.js.map +1 -1
- package/dist/modules/config/config.presenter.d.ts +4 -0
- package/dist/modules/config/config.presenter.js +57 -37
- package/dist/modules/config/config.presenter.js.map +1 -1
- package/dist/modules/config/config.schemas.d.ts +2 -0
- package/dist/modules/config/config.schemas.js +4 -0
- package/dist/modules/config/config.schemas.js.map +1 -1
- package/dist/modules/config/config.sections.d.ts +14 -0
- package/dist/modules/config/config.sections.js +61 -0
- package/dist/modules/config/config.sections.js.map +1 -0
- package/dist/modules/config/config.service.js +1 -0
- package/dist/modules/config/config.service.js.map +1 -1
- package/dist/modules/interactive/config-fields.d.ts +1 -3
- package/dist/modules/interactive/config-fields.js +36 -42
- package/dist/modules/interactive/config-fields.js.map +1 -1
- package/dist/modules/vouchers/voucher-history.d.ts +9 -4
- package/dist/modules/vouchers/voucher-history.js +8 -3
- package/dist/modules/vouchers/voucher-history.js.map +1 -1
- package/dist/modules/vouchers/voucher-history.presenter.d.ts +9 -2
- package/dist/modules/vouchers/voucher-history.presenter.js +32 -14
- package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -1
- package/dist/ui/components/statusBar.d.ts +2 -0
- package/dist/ui/components/statusBar.js +5 -1
- package/dist/ui/components/statusBar.js.map +1 -1
- package/llms.txt +3 -3
- package/package.json +1 -1
- package/dist/cli/interactive/lookup.flow.d.ts +0 -5
- package/dist/cli/interactive/lookup.flow.js +0 -72
- package/dist/cli/interactive/lookup.flow.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,40 @@ 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.8.0] - 2026-10-09
|
|
12
|
+
|
|
13
|
+
Suma la clave `comprobantesPorLista` y sube a 15 el default de `arcli ultimos`; el resto son cambios del modo interactivo. Ningún flag ni formato JSON cambia.
|
|
14
|
+
|
|
15
|
+
### Agregado
|
|
16
|
+
|
|
17
|
+
- **Modo interactivo, elegir factura:** en notas de crédito/débito, en "Repetir factura" y en "Consultar comprobantes", la lista ahora muestra los últimos 15, con el formato de `arcli ultimos`, y tiene **Cargar más…** para traer los anteriores e **Ingresar el número a mano…**, que pide punto de venta y número. Así se puede hacer una nota sobre una factura vieja o emitida desde otro punto de venta.
|
|
18
|
+
- **Nueva clave de config `comprobantesPorLista`** (1 a 50, por defecto 15): cuántos comprobantes muestran `arcli ultimos` y las listas del modo interactivo. `arcli config establecer comprobantesPorLista 25`.
|
|
19
|
+
|
|
20
|
+
### Cambiado
|
|
21
|
+
|
|
22
|
+
- **`arcli ultimos` muestra 15 comprobantes por defecto** (antes 10), o los de `config.comprobantesPorLista`. `--cantidad` sigue mandando. Si un script dependía de que vinieran 10, agregá `--cantidad 10`.
|
|
23
|
+
- **Modo interactivo:** "Nota de crédito o débito sobre una factura" se separó en **Emitir nota de crédito** y **Emitir nota de débito**, así el flujo ya no pregunta cuál.
|
|
24
|
+
- **Modo interactivo:** "Ver últimos comprobantes" y "Consultar un comprobante" se unificaron en **Consultar comprobantes**: elegís el tipo, la lista muestra los últimos y al elegir uno ves el detalle y volvés a la lista.
|
|
25
|
+
- **Modo interactivo:** **Esc** vuelve al paso anterior, en listas y en preguntas de texto (antes había que escribir `<`, que sigue funcionando). La pregunta abandonada no queda en pantalla. La ayuda de teclas de las listas pasó a castellano.
|
|
26
|
+
- **`arcli config` por secciones:** cuenta, certificados, al facturar, FCE, datos del emisor, PDF, y salida y listados. Cambia solo la salida en texto; `arcli config --json` queda igual.
|
|
27
|
+
- **Modo interactivo, configuración:** nueva opción **Ver configuración**. "Cambiar un dato" pasó a llamarse **Modificar configuración**: usa las mismas secciones que `arcli config`, suma moneda, cotización y carpeta de tickets, y vuelve a la lista después de cada cambio.
|
|
28
|
+
- **Docs:** GIF del modo interactivo regrabado y uno nuevo de "Consultar comprobantes" en la guía del modo interactivo. `scripts/demo/record.sh` acepta los guiones a grabar. README con el logo en alta resolución y los chips centrados.
|
|
29
|
+
- **Modo interactivo:** Esc en el menú principal cierra el asistente. Más aire entre preguntas: dos líneas arriba de la activa, una debajo de la pregunta y otra entre la descripción y la ayuda de teclas.
|
|
30
|
+
- **Modo interactivo:** la pregunta activa tiene una línea en blanco arriba, así se distingue de las ya respondidas, que quedan juntas. "← Volver" queda separado de las opciones por una línea en blanco.
|
|
31
|
+
|
|
32
|
+
## [1.7.1] - 2026-10-06
|
|
33
|
+
|
|
34
|
+
Versión de documentación. No cambia ningún comando, flag, clave de config ni JSON.
|
|
35
|
+
|
|
36
|
+
### Cambiado
|
|
37
|
+
|
|
38
|
+
- **Documentación reorganizada:** nuevo índice en `docs/README.md` y nueva guía de [arquitectura](https://github.com/LcsGrz/arcli/blob/main/docs/architecture.md). El README quedó más corto, con instalación, configuración y uso mínimos. Se eliminaron secciones duplicadas entre documentos y el checklist manual de UI, que usaba comandos que ya no existen.
|
|
39
|
+
- **Seguridad:** `SECURITY.md` apunta al reporte privado de vulnerabilidades de GitHub.
|
|
40
|
+
|
|
41
|
+
### Corregido
|
|
42
|
+
|
|
43
|
+
- **Docs:** el glosario decía que la alícuota de IVA era fija al 21%; la referencia del CLI citaba claves de config inexistentes; `llms.txt` documentaba un campo JSON (`confirmarProduccion`) que no existe; faltaban en la guía de configuración `NO_UPDATE_NOTIFIER` y `PUPPETEER_EXECUTABLE_PATH`.
|
|
44
|
+
|
|
11
45
|
## [1.7.0] - 2026-10-05
|
|
12
46
|
|
|
13
47
|
Esta versión completa el modo interactivo: configuración guiada la primera vez, cambiar cualquier dato desde un menú, repetir una factura anterior con fechas nuevas, consultar un comprobante y ver el estado de ARCA. También corrige el PDF de la Factura B, enlaza la guía de certificados desde la configuración y suma GIF e imágenes al README. No se rompe ningún comando, flag ni JSON existente.
|
|
@@ -197,7 +231,9 @@ Primera versión publicada en npm.
|
|
|
197
231
|
- `llms.txt`: referencia condensada para que un agente de IA con acceso a terminal ejecute el CLI.
|
|
198
232
|
- Publicación con npm Trusted Publishers (OIDC).
|
|
199
233
|
|
|
200
|
-
[Sin publicar]: https://github.com/LcsGrz/arcli/compare/v1.
|
|
234
|
+
[Sin publicar]: https://github.com/LcsGrz/arcli/compare/v1.8.0...HEAD
|
|
235
|
+
[1.8.0]: https://github.com/LcsGrz/arcli/compare/v1.7.1...v1.8.0
|
|
236
|
+
[1.7.1]: https://github.com/LcsGrz/arcli/compare/v1.7.0...v1.7.1
|
|
201
237
|
[1.7.0]: https://github.com/LcsGrz/arcli/compare/v1.6.0...v1.7.0
|
|
202
238
|
[1.6.0]: https://github.com/LcsGrz/arcli/compare/v1.5.0...v1.6.0
|
|
203
239
|
[1.5.0]: https://github.com/LcsGrz/arcli/compare/v1.4.0...v1.5.0
|
package/README.md
CHANGED
|
@@ -1,74 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
[](https://github.com/LcsGrz/arcli/actions/workflows/ci.yml)
|
|
5
|
-
[](LICENSE)
|
|
6
|
-
[](package.json)
|
|
7
|
-
|
|
8
|
-
```text
|
|
9
|
-
d8888 8888888b. .d8888b. 888 8888888
|
|
10
|
-
d88888 888 Y88b d88P Y88b 888 888
|
|
11
|
-
d88P888 888 888 888 888 888 888
|
|
12
|
-
d88P 888 888 d88P 888 888 888
|
|
13
|
-
d88P 888 8888888P" 888 888 888
|
|
14
|
-
d88P 888 888 T88b 888 888 888 888
|
|
15
|
-
d8888888888 888 T88b Y88b d88P 888 888
|
|
16
|
-
d88P 888 888 T88b "Y8888P" 88888888 8888888
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Emití o previsualizá comprobantes ARCA desde tu terminal, con un flujo claro, seguro y rapido en lugar de utilizar UI.
|
|
20
|
-
|
|
21
|
-
## Características
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/LcsGrz/arcli/main/docs/assets/imagenes/arcliChip.png" alt="ARCLI" width="560">
|
|
3
|
+
</p>
|
|
22
4
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- comandos para automatizar: cada paso del asistente muestra el comando equivalente
|
|
29
|
-
- consultas a ARCA sin emitir: últimos comprobantes, detalle de uno, estado de los servidores, tablas y cotización oficial
|
|
30
|
-
- integración real con ARCA
|
|
31
|
-
- Factura de Crédito Electrónica (FCE) completa: CBU, transferencia, anulación y consulta del régimen del receptor
|
|
32
|
-
- alícuotas de IVA, importes exentos y no gravados, moneda extranjera y período asociado
|
|
33
|
-
- validaciones locales con las reglas del manual de ARCA, para que los errores aparezcan antes de emitir
|
|
34
|
-
- PDF del comprobante con el QR de ARCA, con un plugin que se descarga solo si lo usás
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/arcli"><img src="https://img.shields.io/npm/v/arcli.svg" alt="npm version"></a>
|
|
7
|
+
<a href="https://github.com/LcsGrz/arcli/actions/workflows/ci.yml"><img src="https://github.com/LcsGrz/arcli/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
8
|
+
<a href="https://github.com/LcsGrz/arcli/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/arcli.svg" alt="license: MIT"></a>
|
|
9
|
+
</p>
|
|
35
10
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
**Modo interactivo**, para facturar de vez en cuando sin memorizar nada:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
npm install -g arcli
|
|
42
|
-
arcli
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
La primera vez ofrece una **configuración guiada** (CUIT, certificado, punto de venta). Después, un menú para emitir, repetir facturas, hacer notas, consultar y configurar:
|
|
11
|
+
CLI para previsualizar y emitir comprobantes electrónicos de ARCA (ex AFIP) desde la terminal. Sin emitir hasta que lo pedís, con validaciones locales y salida lista para automatizar.
|
|
46
12
|
|
|
47
13
|
<p align="center"><img src="https://raw.githubusercontent.com/LcsGrz/arcli/main/docs/assets/demo/interactivo.gif" alt="Modo interactivo de arcli emitiendo una Factura C en testing" width="760"></p>
|
|
48
14
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
**Comandos con flags**, para scripts, automatizaciones o agentes de IA:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
arcli fc -m 15000 --cs --consumidor-final --ir-cf # vista previa
|
|
55
|
-
arcli fc -m 15000 --cs --consumidor-final --ir-cf --emitir # emitir
|
|
56
|
-
arcli fc --cargar ./facturas.json --emitir --json # lote desde JSON, salida JSON
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
<p align="center"><img src="https://raw.githubusercontent.com/LcsGrz/arcli/main/docs/assets/demo/comandos.gif" alt="Vista previa de una Factura C y emisión con salida JSON filtrada con jq" width="760"></p>
|
|
60
|
-
|
|
61
|
-
Ver [Referencia del CLI](docs/cli-reference.md).
|
|
62
|
-
|
|
63
|
-
### PDF con el QR de ARCA
|
|
64
|
-
|
|
65
|
-
Con `--exportar-pdf`, o respondiendo que sí en el asistente, cada comprobante emitido queda en PDF, listo para mandarle al cliente. Ver [PDF de comprobantes](docs/pdf.md).
|
|
66
|
-
|
|
67
|
-
<p align="center"><img src="https://raw.githubusercontent.com/LcsGrz/arcli/main/docs/assets/demo/pdf-factura.png" alt="PDF de una Factura B generado por arcli, con datos de ejemplo" width="480"></p>
|
|
15
|
+
## Características
|
|
68
16
|
|
|
69
|
-
|
|
17
|
+
- **Modo interactivo:** `arcli` sin argumentos abre un asistente que guía la emisión, repite facturas anteriores, arma notas de crédito y débito, consulta comprobantes y configura el CLI. Cada paso muestra el comando equivalente.
|
|
18
|
+
- **Vista previa por defecto:** nada se emite sin `--emitir`.
|
|
19
|
+
- **Comprobantes:** Factura, Nota de Crédito y Nota de Débito A, B y C, y sus versiones de Factura de Crédito Electrónica (FCE), con CBU, transferencia, anulación y consulta del régimen del receptor.
|
|
20
|
+
- **Entrada y salida flexibles:** flags o JSON (incluso lotes); salida legible, `--json` o respuesta bruta de ARCA.
|
|
21
|
+
- **Validaciones locales** basadas en el manual de ARCA, para detectar errores antes de llamar al servicio.
|
|
22
|
+
- **Consultas sin emitir:** últimos comprobantes, detalle de uno, estado de los servidores, tablas de parámetros y cotización oficial.
|
|
23
|
+
- **PDF con el QR de ARCA** mediante un plugin que se descarga solo si lo usás.
|
|
70
24
|
|
|
71
|
-
|
|
25
|
+
## Instalación
|
|
72
26
|
|
|
73
27
|
Requiere Node.js 22.22.1 o superior.
|
|
74
28
|
|
|
@@ -76,131 +30,76 @@ Requiere Node.js 22.22.1 o superior.
|
|
|
76
30
|
npm install -g arcli
|
|
77
31
|
```
|
|
78
32
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
La forma más simple es abrir el asistente y seguir la **configuración guiada**:
|
|
33
|
+
## Configuración
|
|
82
34
|
|
|
83
|
-
|
|
84
|
-
arcli
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Si preferís hacerlo con comandos (por ejemplo, en un servidor), seguí los pasos 3 y 4. Para ver o crear la configuración:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
arcli config
|
|
91
|
-
```
|
|
35
|
+
Necesitás tu CUIT, un punto de venta y un certificado con su clave privada de ARCA. Si todavía no los tenés, seguí [Cómo obtener los certificados](docs/obtencion-certificados.md).
|
|
92
36
|
|
|
93
|
-
|
|
37
|
+
Lo más simple es correr `arcli` y seguir la configuración guiada. Para hacerlo por comandos (por ejemplo, en un servidor):
|
|
94
38
|
|
|
95
39
|
```bash
|
|
96
40
|
arcli config establecer cuit 20168598204
|
|
97
41
|
arcli config establecer puntoVenta 3
|
|
98
|
-
arcli config establecer concepto servicios
|
|
99
|
-
arcli config establecer ivaReceptor consumidor-final
|
|
100
|
-
arcli config establecer moneda ARS
|
|
101
|
-
arcli config establecer cotizacion 1
|
|
102
|
-
arcli config establecer emitir false
|
|
103
|
-
arcli config establecer bruto false
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### 4. Configurar credenciales
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
42
|
arcli config establecer cert.testing /ruta/al/certificado.crt
|
|
110
43
|
arcli config establecer key.testing /ruta/a/la/clave.key
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Si después querés usar producción:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
arcli config establecer cert.produccion /ruta/al/certificado.crt
|
|
117
|
-
arcli config establecer key.produccion /ruta/a/la/clave.key
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### 5. Revisar el entorno activo
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
44
|
arcli config revisar
|
|
124
45
|
```
|
|
125
46
|
|
|
126
|
-
|
|
47
|
+
`arcli config revisar` verifica que el entorno activo esté listo para emitir. Todas las claves disponibles están en [Configuración](docs/configuration.md).
|
|
127
48
|
|
|
128
|
-
|
|
129
|
-
arcli fc -m 15000 --cs --consumidor-final --ir-cf
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### 7. Emitir de verdad
|
|
49
|
+
## Uso
|
|
133
50
|
|
|
134
51
|
```bash
|
|
135
|
-
arcli fc -m 15000 --cs --consumidor-final --ir-cf
|
|
52
|
+
arcli fc -m 15000 --cs --consumidor-final --ir-cf # vista previa de una Factura C
|
|
53
|
+
arcli fc -m 15000 --cs --consumidor-final --ir-cf --emitir # emitir
|
|
54
|
+
arcli fc --cargar ./facturas.json --emitir --json # lote desde JSON, salida JSON
|
|
55
|
+
arcli fc -m 15000 --cs --consumidor-final --ir-cf --emitir --exportar-pdf
|
|
136
56
|
```
|
|
137
57
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
ARCLI toma datos por flags, JSON o config, valida lo que puede localmente, arma el payload y — si corresponde — llama a ARCA. La prioridad es `flags > JSON > config > defaults`.
|
|
58
|
+
Otras consultas: `arcli ultimos`, `arcli consultar`, `arcli estado`, `arcli parametros`, `arcli fce-obligado`. Para ver todos los comprobantes y ejemplos: `arcli --ayuda` y `arcli ejemplos`.
|
|
141
59
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
## Seguridad: testing vs producción
|
|
60
|
+
<p align="center"><img src="https://raw.githubusercontent.com/LcsGrz/arcli/main/docs/assets/demo/comandos.gif" alt="Vista previa de una Factura C y emisión con salida JSON filtrada con jq" width="760"></p>
|
|
145
61
|
|
|
146
|
-
|
|
147
|
-
- `testing` usa `cert.testing` y `key.testing`.
|
|
148
|
-
- `produccion` usa `cert.produccion` y `key.produccion`.
|
|
149
|
-
- Para emitir realmente en producción hacen falta:
|
|
150
|
-
- `--produccion`
|
|
151
|
-
- `--emitir`
|
|
62
|
+
La prioridad de los valores es `flags > JSON > config > defaults`. Ver el [modelo mental](docs/mental-model.md) y la [referencia del CLI](docs/cli-reference.md).
|
|
152
63
|
|
|
153
|
-
|
|
64
|
+
### Testing y producción
|
|
154
65
|
|
|
155
|
-
|
|
156
|
-
arcli fa -m 15000 --cs --cuit 20168598204 --ir-ri \
|
|
157
|
-
--produccion \
|
|
158
|
-
--emitir
|
|
159
|
-
```
|
|
66
|
+
Por defecto se usa el entorno `testing`, con `cert.testing` y `key.testing`. Para emitir en producción hay que configurar `cert.produccion` y `key.produccion` y pasar `--produccion --emitir`.
|
|
160
67
|
|
|
161
68
|
## Documentación
|
|
162
69
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- [
|
|
166
|
-
- [
|
|
167
|
-
- [
|
|
168
|
-
- [Configuración](docs/configuration.md)
|
|
70
|
+
El índice completo está en [docs/](docs/README.md). Lo principal:
|
|
71
|
+
|
|
72
|
+
- [Modo interactivo](docs/modo-interactivo.md) y [Patrones de uso](docs/usage-patterns.md)
|
|
73
|
+
- [Referencia del CLI](docs/cli-reference.md) y [Configuración](docs/configuration.md)
|
|
74
|
+
- [Entrada y salida](docs/input-output.md): formato del JSON
|
|
169
75
|
- [PDF de comprobantes](docs/pdf.md)
|
|
170
|
-
- [Cómo obtener los certificados
|
|
171
|
-
- [
|
|
172
|
-
- [
|
|
173
|
-
- [Troubleshooting](docs/troubleshooting.md)
|
|
174
|
-
- [Limitaciones actuales](docs/limitations.md)
|
|
175
|
-
- [Guía de desarrollo](docs/development.md)
|
|
176
|
-
- [Testing](docs/ui-smoke-checklist.md)
|
|
76
|
+
- [Cómo obtener los certificados](docs/obtencion-certificados.md)
|
|
77
|
+
- [Troubleshooting](docs/troubleshooting.md), [Reglas de validación](docs/validation-rules.md) y [Limitaciones](docs/limitations.md)
|
|
78
|
+
- [llms.txt](llms.txt): referencia condensada para agentes de IA con acceso a terminal
|
|
177
79
|
- [Changelog](CHANGELOG.md)
|
|
178
|
-
- [Cómo contribuir](CONTRIBUTING.md)
|
|
179
|
-
- [llms.txt](llms.txt): referencia condensada para que un agente/IA con acceso a terminal ejecute el CLI directamente
|
|
180
|
-
- [Seguridad](SECURITY.md)
|
|
181
80
|
|
|
182
|
-
##
|
|
81
|
+
## Desarrollo
|
|
183
82
|
|
|
184
|
-
|
|
83
|
+
```bash
|
|
84
|
+
git clone https://github.com/LcsGrz/arcli.git
|
|
85
|
+
cd arcli
|
|
86
|
+
yarn install
|
|
87
|
+
yarn dev --ayuda
|
|
88
|
+
```
|
|
185
89
|
|
|
186
|
-
|
|
187
|
-
- [Arpit Bhayani](https://github.com/arpitbbhayani) por cederme el paquete de npm bajo el nombre de 'arcli', estaba siendo utilizado por el.
|
|
90
|
+
Antes de abrir un PR: `yarn typecheck`, `yarn lint` y `yarn test`. Más en la [guía de desarrollo](docs/development.md) y la [arquitectura](docs/architecture.md).
|
|
188
91
|
|
|
189
|
-
|
|
92
|
+
## Contribuir
|
|
190
93
|
|
|
191
|
-
|
|
94
|
+
Leé [CONTRIBUTING.md](CONTRIBUTING.md). Para vulnerabilidades, ver [SECURITY.md](SECURITY.md); no subas certificados, claves ni tokens reales a issues ni PRs.
|
|
192
95
|
|
|
193
|
-
|
|
96
|
+
## Agradecimientos
|
|
194
97
|
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
|
|
98
|
+
- [`@arcasdk/core`](https://github.com/ralcorta/arcasdk) y [`@arcasdk/pdf`](https://www.afipts.com/packages/pdf), de [Rodrigo Alcorta](https://github.com/ralcorta).
|
|
99
|
+
- [Arpit Bhayani](https://github.com/arpitbbhayani), por ceder el nombre `arcli` en npm.
|
|
100
|
+
|
|
101
|
+
Si el proyecto te resulta útil, podés dejar una estrella o invitarme un [Cafecito](https://cafecito.app/lcsgrz).
|
|
198
102
|
|
|
199
103
|
## Licencia
|
|
200
104
|
|
|
201
105
|
MIT © [LcsGrz](https://github.com/LcsGrz). Ver [LICENSE](LICENSE).
|
|
202
|
-
|
|
203
|
-
## Proyecto
|
|
204
|
-
|
|
205
|
-
- repo: [github.com/LcsGrz/arcli](https://github.com/LcsGrz/arcli)
|
|
206
|
-
- issues: [github.com/LcsGrz/arcli/issues](https://github.com/LcsGrz/arcli/issues)
|
|
@@ -47,16 +47,17 @@ export function registerVoucherQueryCommands(program) {
|
|
|
47
47
|
.command('ultimos')
|
|
48
48
|
.argument('<tipo>', 'atajo del comprobante, por ejemplo fb, fc o nca')
|
|
49
49
|
.description('listar los ultimos comprobantes emitidos en ARCA')
|
|
50
|
-
.option('--cantidad <numero>', `cuantos comprobantes mostrar (1 a ${MAX_RECENT_VOUCHERS})`, parseInteger)).addHelpText('after', createVoucherQueryHelp());
|
|
50
|
+
.option('--cantidad <numero>', `cuantos comprobantes mostrar (1 a ${MAX_RECENT_VOUCHERS}; por defecto config.comprobantesPorLista o ${RECENT_VOUCHERS_LIMIT})`, parseInteger)).addHelpText('after', createVoucherQueryHelp());
|
|
51
51
|
registerGlobalOptions(recent);
|
|
52
52
|
configureSpanishHelp(recent);
|
|
53
53
|
recent.action(async (shortcut, options, self) => {
|
|
54
54
|
const voucherKind = requireVoucherKind(shortcut);
|
|
55
|
-
const
|
|
56
|
-
if (!Number.isInteger(
|
|
55
|
+
const { cantidad } = options;
|
|
56
|
+
if (cantidad !== undefined && (!Number.isInteger(cantidad) || cantidad < 1 || cantidad > MAX_RECENT_VOUCHERS)) {
|
|
57
57
|
throw new InputValidationError(`--cantidad tiene que ser un numero entre 1 y ${MAX_RECENT_VOUCHERS}.`);
|
|
58
58
|
}
|
|
59
59
|
const { gateway, runtime } = createContext(self);
|
|
60
|
+
const limit = cantidad ?? runtime.config.comprobantesPorLista ?? RECENT_VOUCHERS_LIMIT;
|
|
60
61
|
const pointOfSale = requirePointOfSale(options, runtime);
|
|
61
62
|
const vouchers = await withSpinner(runtime, () => listRecentVouchers(gateway, pointOfSale, voucherKind.arcaType, { limit }));
|
|
62
63
|
const report = { environment: runtime.environment, pointOfSale, voucherKind, vouchers };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vouchers.command.js","sourceRoot":"","sources":["../../../src/cli/commands/vouchers.command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vouchers.command.js","sourceRoot":"","sources":["../../../src/cli/commands/vouchers.command.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/help.js
CHANGED
|
@@ -475,7 +475,7 @@ export function createVoucherQueryHelp() {
|
|
|
475
475
|
return [
|
|
476
476
|
'',
|
|
477
477
|
section('Ejemplos', [
|
|
478
|
-
' - arcli ultimos fb ultimas
|
|
478
|
+
' - arcli ultimos fb ultimas 15 facturas B del punto de venta configurado',
|
|
479
479
|
' - arcli ultimos nca --cantidad 25 ultimas 25 notas de credito A',
|
|
480
480
|
' - arcli consultar fb 14 detalle de la factura B numero 14',
|
|
481
481
|
' - arcli consultar fb 14 --json lo mismo, en JSON',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GlobalCliOptions } from '../types';
|
|
2
2
|
/** Configuracion guiada: lo minimo para emitir, los defaults mas usados y, si se quiere, los datos del PDF. */
|
|
3
3
|
export declare function runGuidedSetup(): Promise<void>;
|
|
4
|
-
/** Submenu de configuracion: revisar, configuracion guiada,
|
|
4
|
+
/** Submenu de configuracion: ver, revisar, configuracion guiada, modificar y el plugin de PDF. */
|
|
5
5
|
export declare function runConfigMenu(options: GlobalCliOptions): Promise<void>;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { Separator } from '@inquirer/select';
|
|
1
2
|
import { join } from 'node:path';
|
|
2
3
|
import { CERTIFICATE_GUIDE_URL } from '../../lib/links.js';
|
|
4
|
+
import { CONFIG_SECTIONS } from '../../modules/config/config.sections.js';
|
|
3
5
|
import { ConfigService, validateConfigValue } from '../../modules/config/config.service.js';
|
|
4
6
|
import { buildConfigDoctorReport } from '../../modules/config/config-doctor.js';
|
|
5
|
-
import { CONFIG_FIELDS,
|
|
7
|
+
import { CONFIG_FIELDS, describeConfigValue, getConfigField, } from '../../modules/interactive/config-fields.js';
|
|
6
8
|
import { BACK, runWizard } from '../../modules/interactive/wizard.js';
|
|
7
9
|
import { PdfPlugin } from '../../services/pdf/pdf-plugin.js';
|
|
8
|
-
import { formatConfigDoctorAsText, formatPdfPluginStatusAsText, noticePanel, writeTerminalOutput } from '../../ui/index.js';
|
|
10
|
+
import { bold, formatConfigAsText, formatConfigDoctorAsText, formatPdfPluginStatusAsText, noticePanel, writeTerminalOutput, } from '../../ui/index.js';
|
|
9
11
|
import { buildRuntimeCheck } from '../commands/config.command.js';
|
|
10
12
|
import { startSpinner } from '../spinner.js';
|
|
11
|
-
import { askTextStep, chooseOne, chooseStep, confirm } from './prompts.js';
|
|
13
|
+
import { askTextStep, chooseOne, chooseStep, confirm, fitPageSize } from './prompts.js';
|
|
12
14
|
const CLEAR = '__borrar__';
|
|
13
15
|
const KEEP = '__mantener__';
|
|
14
16
|
/** Lo que pide la configuracion guiada, en orden. Los primeros cuatro son obligatorios para emitir. */
|
|
@@ -123,20 +125,39 @@ export async function runGuidedSetup() {
|
|
|
123
125
|
}
|
|
124
126
|
writeTerminalOutput(noticePanel('Configuracion guardada. Ya podes emitir en testing.', 'success'));
|
|
125
127
|
}
|
|
128
|
+
/** Los datos agrupados por seccion, en el mismo orden que `arcli config`, con un titulo arriba de cada una. */
|
|
129
|
+
function fieldChoicesBySection(config) {
|
|
130
|
+
const sections = CONFIG_SECTIONS.map((section) => ({
|
|
131
|
+
fields: section.keys.flatMap((key) => CONFIG_FIELDS.filter((field) => field.key === key)),
|
|
132
|
+
label: section.label,
|
|
133
|
+
})).filter((section) => section.fields.length > 0);
|
|
134
|
+
return sections.flatMap((section, index) => [
|
|
135
|
+
...(index > 0 ? [new Separator(' ')] : []),
|
|
136
|
+
new Separator(bold(section.label)),
|
|
137
|
+
...section.fields.map((field) => ({
|
|
138
|
+
description: describeConfigValue(field, config),
|
|
139
|
+
name: field.label,
|
|
140
|
+
value: field,
|
|
141
|
+
})),
|
|
142
|
+
]);
|
|
143
|
+
}
|
|
144
|
+
/** Lista de datos por seccion; despues de cambiar uno (o volver) se muestra de nuevo, hasta "Volver". */
|
|
126
145
|
async function runChangeField() {
|
|
127
|
-
const config = readConfig();
|
|
128
|
-
const field = await chooseStep('¿Que dato queres cambiar?', CONFIG_FIELDS.map((candidate) => ({
|
|
129
|
-
description: `${CONFIG_GROUP_LABELS[candidate.group]} · ${describeConfigValue(candidate, config)}`,
|
|
130
|
-
name: candidate.label,
|
|
131
|
-
value: candidate,
|
|
132
|
-
})));
|
|
133
|
-
if (field === BACK) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const result = await askField(field, config);
|
|
137
146
|
const messages = { borrado: 'Dato borrado.', guardado: 'Guardado.', 'sin-cambios': 'Sin cambios.' };
|
|
138
|
-
|
|
139
|
-
|
|
147
|
+
let lastField;
|
|
148
|
+
for (;;) {
|
|
149
|
+
const config = readConfig();
|
|
150
|
+
const choices = fieldChoicesBySection(config);
|
|
151
|
+
// +2: el separador y "Volver" que agrega chooseStep.
|
|
152
|
+
const field = await chooseStep('¿Que queres modificar?', choices, lastField, fitPageSize(choices.length + 2));
|
|
153
|
+
if (field === BACK) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
lastField = field;
|
|
157
|
+
const result = await askField(field, config);
|
|
158
|
+
if (result !== BACK) {
|
|
159
|
+
writeTerminalOutput(noticePanel(messages[result], result === 'sin-cambios' ? 'muted' : 'success'));
|
|
160
|
+
}
|
|
140
161
|
}
|
|
141
162
|
}
|
|
142
163
|
async function runPdfPluginMenu() {
|
|
@@ -176,10 +197,17 @@ async function runPdfPluginMenu() {
|
|
|
176
197
|
}
|
|
177
198
|
writeTerminalOutput(formatPdfPluginStatusAsText(plugin.getStatus(), 'Plugin de PDF instalado'));
|
|
178
199
|
}
|
|
179
|
-
|
|
200
|
+
function showConfig() {
|
|
201
|
+
withConfigService((service) => {
|
|
202
|
+
const config = service.getConfig();
|
|
203
|
+
writeTerminalOutput(formatConfigAsText(config, service.resolvePaths(config)));
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/** Submenu de configuracion: ver, revisar, configuracion guiada, modificar y el plugin de PDF. */
|
|
180
207
|
export async function runConfigMenu(options) {
|
|
181
208
|
for (;;) {
|
|
182
209
|
const option = await chooseOne('Configuracion', [
|
|
210
|
+
{ description: 'Todos los datos guardados, como arcli config', name: 'Ver configuracion', value: 'ver' },
|
|
183
211
|
{
|
|
184
212
|
description: 'Credenciales, defaults y validacion contra ARCA',
|
|
185
213
|
name: 'Revisar configuracion',
|
|
@@ -190,13 +218,20 @@ export async function runConfigMenu(options) {
|
|
|
190
218
|
name: 'Configuracion guiada',
|
|
191
219
|
value: 'guiada',
|
|
192
220
|
},
|
|
193
|
-
{
|
|
221
|
+
{
|
|
222
|
+
description: 'Elegis un dato, agrupado por seccion, y lo cambias',
|
|
223
|
+
name: 'Modificar configuracion',
|
|
224
|
+
value: 'cambiar',
|
|
225
|
+
},
|
|
194
226
|
{ description: 'Estado, instalar o desinstalar', name: 'Plugin de PDF', value: 'pdf' },
|
|
227
|
+
new Separator(' '),
|
|
195
228
|
{ name: '← Volver al menu', value: 'volver' },
|
|
196
|
-
]);
|
|
229
|
+
], undefined, { escapeValue: 'volver' });
|
|
197
230
|
if (option === 'volver') {
|
|
198
231
|
return;
|
|
199
232
|
}
|
|
233
|
+
if (option === 'ver')
|
|
234
|
+
showConfig();
|
|
200
235
|
if (option === 'revisar') {
|
|
201
236
|
writeTerminalOutput(formatConfigDoctorAsText(buildConfigDoctorReport(readConfig(), buildRuntimeCheck(options))));
|
|
202
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/config.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"config.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/config.flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
import { type InteractiveSession } from './session';
|
|
2
|
+
/**
|
|
3
|
+
* Consultar comprobantes de cualquier tipo: la lista de los ultimos, cargar mas o buscar por numero.
|
|
4
|
+
* Al elegir uno muestra el detalle y vuelve a la lista.
|
|
5
|
+
*/
|
|
2
6
|
export declare function runHistoryFlow(session: InteractiveSession): Promise<void>;
|
|
@@ -1,22 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VOUCHER_KIND_MAP, VOUCHER_SHORTCUTS } from '../../modules/billing/voucher-kind-map.js';
|
|
2
2
|
import { BACK } from '../../modules/interactive/wizard.js';
|
|
3
|
-
import {
|
|
4
|
-
import { formatVoucherListAsText } from '../../modules/vouchers/voucher-history.presenter.js';
|
|
3
|
+
import { formatVoucherDetailAsText } from '../../modules/vouchers/voucher-history.presenter.js';
|
|
5
4
|
import { writeTerminalOutput } from '../../ui/index.js';
|
|
6
|
-
import {
|
|
5
|
+
import { pickInvoice } from './invoice-picker.js';
|
|
7
6
|
import { chooseStep } from './prompts.js';
|
|
8
7
|
import { requirePointOfSale } from './session.js';
|
|
8
|
+
/**
|
|
9
|
+
* Consultar comprobantes de cualquier tipo: la lista de los ultimos, cargar mas o buscar por numero.
|
|
10
|
+
* Al elegir uno muestra el detalle y vuelve a la lista.
|
|
11
|
+
*/
|
|
9
12
|
export async function runHistoryFlow(session) {
|
|
10
13
|
const pointOfSale = requirePointOfSale(session);
|
|
11
14
|
if (!pointOfSale) {
|
|
12
15
|
return;
|
|
13
16
|
}
|
|
14
|
-
const voucherKind = await chooseStep('¿Que comprobantes queres
|
|
17
|
+
const voucherKind = await chooseStep('¿Que comprobantes queres consultar?', VOUCHER_SHORTCUTS.map((shortcut) => ({
|
|
18
|
+
name: `${VOUCHER_KIND_MAP[shortcut].displayName} (${shortcut})`,
|
|
19
|
+
value: VOUCHER_KIND_MAP[shortcut],
|
|
20
|
+
})));
|
|
15
21
|
if (voucherKind === BACK) {
|
|
16
22
|
return;
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
await pickInvoice(session, {
|
|
25
|
+
message: `¿Que ${voucherKind.displayName} queres ver?`,
|
|
26
|
+
onPick: (picked) => writeTerminalOutput(formatVoucherDetailAsText({
|
|
27
|
+
environment: session.runtime.environment,
|
|
28
|
+
pointOfSale: picked.pointOfSale,
|
|
29
|
+
voucher: picked.invoice,
|
|
30
|
+
voucherKind,
|
|
31
|
+
})),
|
|
32
|
+
pointOfSale,
|
|
33
|
+
voucherKind,
|
|
34
|
+
});
|
|
21
35
|
}
|
|
22
36
|
//# sourceMappingURL=history.flow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/history.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"history.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/history.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAA2B,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA2B;IAC9D,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,UAAU,CAClC,qCAAqC,EACrC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAW,KAAK,QAAQ,GAAG;QAC/D,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC;KAClC,CAAC,CAAC,CACJ,CAAC;IAEF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,WAAW,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,QAAQ,WAAW,CAAC,WAAW,cAAc;QACtD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CACjB,mBAAmB,CACjB,yBAAyB,CAAC;YACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;YACxC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;SACZ,CAAC,CACH;QACH,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
|