arcli 1.7.1 → 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.
Files changed (60) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/README.md +9 -16
  3. package/dist/cli/commands/vouchers.command.js +4 -3
  4. package/dist/cli/commands/vouchers.command.js.map +1 -1
  5. package/dist/cli/help.js +1 -1
  6. package/dist/cli/interactive/config.flow.d.ts +1 -1
  7. package/dist/cli/interactive/config.flow.js +53 -18
  8. package/dist/cli/interactive/config.flow.js.map +1 -1
  9. package/dist/cli/interactive/history.flow.d.ts +4 -0
  10. package/dist/cli/interactive/history.flow.js +22 -8
  11. package/dist/cli/interactive/history.flow.js.map +1 -1
  12. package/dist/cli/interactive/interactive-mode.js +24 -10
  13. package/dist/cli/interactive/interactive-mode.js.map +1 -1
  14. package/dist/cli/interactive/invoice-picker.d.ts +25 -0
  15. package/dist/cli/interactive/invoice-picker.js +152 -0
  16. package/dist/cli/interactive/invoice-picker.js.map +1 -0
  17. package/dist/cli/interactive/note.flow.d.ts +6 -2
  18. package/dist/cli/interactive/note.flow.js +19 -30
  19. package/dist/cli/interactive/note.flow.js.map +1 -1
  20. package/dist/cli/interactive/prompts.d.ts +34 -5
  21. package/dist/cli/interactive/prompts.js +181 -19
  22. package/dist/cli/interactive/prompts.js.map +1 -1
  23. package/dist/cli/interactive/repeat.flow.js +5 -11
  24. package/dist/cli/interactive/repeat.flow.js.map +1 -1
  25. package/dist/cli/interactive/status.flow.d.ts +3 -0
  26. package/dist/cli/interactive/status.flow.js +29 -0
  27. package/dist/cli/interactive/status.flow.js.map +1 -0
  28. package/dist/cli/version.d.ts +1 -1
  29. package/dist/cli/version.js +1 -1
  30. package/dist/modules/config/config-value-parser.d.ts +1 -1
  31. package/dist/modules/config/config-value-parser.js +10 -0
  32. package/dist/modules/config/config-value-parser.js.map +1 -1
  33. package/dist/modules/config/config.presenter.d.ts +4 -0
  34. package/dist/modules/config/config.presenter.js +57 -37
  35. package/dist/modules/config/config.presenter.js.map +1 -1
  36. package/dist/modules/config/config.schemas.d.ts +2 -0
  37. package/dist/modules/config/config.schemas.js +4 -0
  38. package/dist/modules/config/config.schemas.js.map +1 -1
  39. package/dist/modules/config/config.sections.d.ts +14 -0
  40. package/dist/modules/config/config.sections.js +61 -0
  41. package/dist/modules/config/config.sections.js.map +1 -0
  42. package/dist/modules/config/config.service.js +1 -0
  43. package/dist/modules/config/config.service.js.map +1 -1
  44. package/dist/modules/interactive/config-fields.d.ts +1 -3
  45. package/dist/modules/interactive/config-fields.js +36 -42
  46. package/dist/modules/interactive/config-fields.js.map +1 -1
  47. package/dist/modules/vouchers/voucher-history.d.ts +9 -4
  48. package/dist/modules/vouchers/voucher-history.js +8 -3
  49. package/dist/modules/vouchers/voucher-history.js.map +1 -1
  50. package/dist/modules/vouchers/voucher-history.presenter.d.ts +9 -2
  51. package/dist/modules/vouchers/voucher-history.presenter.js +32 -14
  52. package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -1
  53. package/dist/ui/components/statusBar.d.ts +2 -0
  54. package/dist/ui/components/statusBar.js +5 -1
  55. package/dist/ui/components/statusBar.js.map +1 -1
  56. package/llms.txt +2 -2
  57. package/package.json +1 -1
  58. package/dist/cli/interactive/lookup.flow.d.ts +0 -5
  59. package/dist/cli/interactive/lookup.flow.js +0 -72
  60. package/dist/cli/interactive/lookup.flow.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,27 @@ 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
+
11
32
  ## [1.7.1] - 2026-10-06
12
33
 
13
34
  Versión de documentación. No cambia ningún comando, flag, clave de config ni JSON.
@@ -210,7 +231,8 @@ Primera versión publicada en npm.
210
231
  - `llms.txt`: referencia condensada para que un agente de IA con acceso a terminal ejecute el CLI.
211
232
  - Publicación con npm Trusted Publishers (OIDC).
212
233
 
213
- [Sin publicar]: https://github.com/LcsGrz/arcli/compare/v1.7.1...HEAD
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
214
236
  [1.7.1]: https://github.com/LcsGrz/arcli/compare/v1.7.0...v1.7.1
215
237
  [1.7.0]: https://github.com/LcsGrz/arcli/compare/v1.6.0...v1.7.0
216
238
  [1.6.0]: https://github.com/LcsGrz/arcli/compare/v1.5.0...v1.6.0
package/README.md CHANGED
@@ -1,19 +1,12 @@
1
- # ARCLI
2
-
3
- [![npm version](https://img.shields.io/npm/v/arcli.svg)](https://www.npmjs.com/package/arcli)
4
- [![CI](https://github.com/LcsGrz/arcli/actions/workflows/ci.yml/badge.svg)](https://github.com/LcsGrz/arcli/actions/workflows/ci.yml)
5
- [![license: MIT](https://img.shields.io/npm/l/arcli.svg)](LICENSE)
6
-
7
- ```text
8
- d8888 8888888b. .d8888b. 888 8888888
9
- d88888 888 Y88b d88P Y88b 888 888
10
- d88P888 888 888 888 888 888 888
11
- d88P 888 888 d88P 888 888 888
12
- d88P 888 8888888P" 888 888 888
13
- d88P 888 888 T88b 888 888 888 888
14
- d8888888888 888 T88b Y88b d88P 888 888
15
- d88P 888 888 T88b "Y8888P" 88888888 8888888
16
- ```
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>
4
+
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>
17
10
 
18
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.
19
12
 
@@ -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 limit = options.cantidad ?? RECENT_VOUCHERS_LIMIT;
56
- if (!Number.isInteger(limit) || limit < 1 || limit > MAX_RECENT_VOUCHERS) {
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 10 facturas B del punto de venta configurado',
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, cambiar un dato y el plugin de PDF. */
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, CONFIG_GROUP_LABELS, describeConfigValue, getConfigField, } from '../../modules/interactive/config-fields.js';
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
- if (result !== BACK) {
139
- writeTerminalOutput(noticePanel(messages[result], result === 'sin-cambios' ? 'muted' : 'success'));
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
- /** Submenu de configuracion: revisar, configuracion guiada, cambiar un dato y el plugin de PDF. */
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
- { description: 'Elegis un dato de la lista y lo cambias', name: 'Cambiar un dato', value: 'cambiar' },
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":"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"}
1
+ {"version":3,"file":"config.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/config.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EACL,aAAa,EAEb,mBAAmB,EACnB,cAAc,GACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAmB,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EACL,IAAI,EACJ,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,WAAW,EACX,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAe,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAElG,MAAM,KAAK,GAAG,YAAY,CAAC;AAC3B,MAAM,IAAI,GAAG,cAAc,CAAC;AAE5B,uGAAuG;AACvG,MAAM,WAAW,GAA+B;IAC9C,MAAM;IACN,cAAc;IACd,aAAa;IACb,YAAY;IACZ,UAAU;IACV,aAAa;CACd,CAAC;AACF,MAAM,WAAW,GAA+B,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;AAEvH,SAAS,iBAAiB,CAAI,GAAkC;IAC9D,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAE5B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAoB,EAAE,KAAa;IACnD,IAAI,CAAC;QACH,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,QAAQ,CACrB,KAAkB,EAClB,MAAmB,EACnB,UAA2C,EAAE;IAE7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,KAAa,CAAC;IAElB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,GAAG,KAAK,CAAC,KAAK,GAAG,EACjB;YACE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACnE,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F,EACD,OAAO,CACR,CAAC;QAEF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,qFAAqF;QACrF,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;YAC7E,YAAY,EAAE,OAAO;YACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBACjB,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/D,CAAC;gBAED,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,KAAK,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAgC,EAAE,QAAoC;IACxF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,IAAI,GAAG,KAAK,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzD,mBAAmB,CACjB,WAAW,CAAC,oDAAoD,qBAAqB,EAAE,EAAE,OAAO,CAAC,CAClG,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEvG,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+GAA+G;AAC/G,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,mBAAmB,CACjB,WAAW,CACT,0FAA0F,qBAAqB,EAAE,EACjH,MAAM,CACP,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,mBAAmB,CAAC,WAAW,CAAC,kEAAkE,EAAE,OAAO,CAAC,CAAC,CAAC;QAE9G,OAAO;IACT,CAAC;IAED,IAAI,MAAM,OAAO,CAAC,qDAAqD,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QAC3F,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB,CAAC,WAAW,CAAC,qDAAqD,EAAE,SAAS,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,+GAA+G;AAC/G,SAAS,qBAAqB,CAAC,MAAmB;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACzF,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,WAAW,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC;YAC/C,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,yGAAyG;AACzG,KAAK,UAAU,cAAc;IAC3B,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAW,CAAC;IAC7G,IAAI,SAAkC,CAAC;IAEvC,SAAS,CAAC;QACR,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9C,qDAAqD;QACrD,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B,wBAAwB,EACxB,OAAO,EACP,SAAS,EACT,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAChC,CAAC;QAEF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,SAAS,GAAG,KAAK,CAAC;QAElB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE7C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,MAAM,GAAG,iBAAiB,CAC9B,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,SAAS,CAAC;QACZ,iBAAiB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,YAAY;QACnD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC;KAC5C,CAAC,CACL,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,mBAAmB,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAA6B,oCAAoC,EAAE;QAChG,MAAM,CAAC,SAAS;YACd,CAAC,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;YACzG,CAAC,CAAC;gBACE,WAAW,EAAE,uCAAuC;gBACpD,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;gBACzD,KAAK,EAAE,UAAU;aAClB;KACN,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,mBAAmB,CAAC,WAAW,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC,CAAC;QAE3E,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,gCAAgC,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,mBAAmB,CAAC,2BAA2B,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;AAClG,CAAC;AAID,SAAS,UAAU;IACjB,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QAEnC,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyB;IAC3D,SAAS,CAAC;QACR,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,eAAe,EACf;YACE,EAAE,WAAW,EAAE,8CAA8C,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE;YACxG;gBACE,WAAW,EAAE,iDAAiD;gBAC9D,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,SAAS;aACjB;YACD;gBACE,WAAW,EAAE,2DAA2D;gBACxE,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,QAAQ;aAChB;YACD;gBACE,WAAW,EAAE,oDAAoD;gBACjE,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,SAAS;aACjB;YACD,EAAE,WAAW,EAAE,gCAAgC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE;YACtF,IAAI,SAAS,CAAC,GAAG,CAAC;YAClB,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC9C,EACD,SAAS,EACT,EAAE,WAAW,EAAE,QAAQ,EAAE,CAC1B,CAAC;QAEF,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,KAAK;YAAE,UAAU,EAAE,CAAC;QAEnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,mBAAmB,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,UAAU,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ;YAAE,MAAM,cAAc,EAAE,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,cAAc,EAAE,CAAC;QACjD,IAAI,MAAM,KAAK,KAAK;YAAE,MAAM,gBAAgB,EAAE,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -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 { invoiceKindChoices } from '../../modules/interactive/choices.js';
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 { listRecentVouchers } from '../../modules/vouchers/voucher-history.js';
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 { startSpinner } from '../spinner.js';
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 ver?', invoiceKindChoices());
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
- const spinner = startSpinner('Consultando ARCA...');
19
- const vouchers = await listRecentVouchers(session.historyGateway, pointOfSale, voucherKind.arcaType).finally(() => spinner?.stop());
20
- writeTerminalOutput(formatVoucherListAsText({ environment: session.runtime.environment, pointOfSale, voucherKind, vouchers }));
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,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAA2B,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAExE,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,CAAC,+BAA+B,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAE5F,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAChH,OAAO,EAAE,IAAI,EAAE,CAChB,CAAC;IAEF,mBAAmB,CACjB,uBAAuB,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAC1G,CAAC;AACJ,CAAC"}
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"}
@@ -1,14 +1,15 @@
1
+ import { Separator } from '@inquirer/select';
1
2
  import { ConfigService } from '../../modules/config/config.service.js';
2
3
  import { listMissingSetupKeys } from '../../modules/interactive/config-fields.js';
3
4
  import { colorize, formatCliError, noticePanel, renderLogo, statusBar, writeTerminalError, writeTerminalOutput, } from '../../ui/index.js';
4
5
  import { runConfigMenu, runGuidedSetup } from './config.flow.js';
5
6
  import { runHistoryFlow } from './history.flow.js';
6
7
  import { runInvoiceFlow } from './invoice.flow.js';
7
- import { runLookupFlow, runStatusFlow } from './lookup.flow.js';
8
8
  import { runNoteFlow } from './note.flow.js';
9
9
  import { chooseOne, confirm, isPromptCancellation } from './prompts.js';
10
10
  import { runRepeatFlow } from './repeat.flow.js';
11
11
  import { createInteractiveSession } from './session.js';
12
+ import { runStatusFlow } from './status.flow.js';
12
13
  function listMissingSetup() {
13
14
  const service = new ConfigService();
14
15
  try {
@@ -42,12 +43,12 @@ async function runOption(option, options) {
42
43
  await runInvoiceFlow(session);
43
44
  if (option === 'repetir')
44
45
  await runRepeatFlow(session);
45
- if (option === 'nota')
46
- await runNoteFlow(session);
46
+ if (option === 'nota-credito')
47
+ await runNoteFlow(session, 'credito');
48
+ if (option === 'nota-debito')
49
+ await runNoteFlow(session, 'debito');
47
50
  if (option === 'historial')
48
51
  await runHistoryFlow(session);
49
- if (option === 'consultar')
50
- await runLookupFlow(session);
51
52
  if (option === 'estado')
52
53
  await runStatusFlow(session);
53
54
  }
@@ -88,13 +89,26 @@ export async function runInteractiveMode(options = {}) {
88
89
  name: 'Repetir una factura anterior',
89
90
  value: 'repetir',
90
91
  },
91
- { name: 'Nota de credito o debito sobre una factura', value: 'nota' },
92
- { name: 'Ver ultimos comprobantes', value: 'historial' },
93
- { name: 'Consultar un comprobante', value: 'consultar' },
92
+ {
93
+ description: 'Descuento, devolucion o anulacion de una factura',
94
+ name: 'Emitir nota de credito',
95
+ value: 'nota-credito',
96
+ },
97
+ { description: 'Cargo adicional sobre una factura', name: 'Emitir nota de debito', value: 'nota-debito' },
98
+ {
99
+ description: 'Los ultimos de cada tipo, o buscar uno por numero',
100
+ name: 'Consultar comprobantes',
101
+ value: 'historial',
102
+ },
94
103
  { description: 'Servidores, punto de venta y cotizacion del dolar', name: 'Estado de ARCA', value: 'estado' },
95
- { description: 'Revisar, configuracion guiada, cambiar un dato y PDF', name: 'Configuracion', value: 'config' },
104
+ {
105
+ description: 'Revisar, configuracion guiada, cambiar un dato y PDF',
106
+ name: 'Configuracion',
107
+ value: 'config',
108
+ },
109
+ new Separator(' '),
96
110
  { name: 'Salir', value: 'salir' },
97
- ]);
111
+ ], undefined, { escapeLabel: 'salir', escapeValue: 'salir' });
98
112
  }
99
113
  catch (error) {
100
114
  if (isPromptCancellation(error)) {
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/cli/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/cli/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { VoucherKindDefinition } from '../../modules/billing/billing.types';
2
+ import { type Back } from '../../modules/interactive/wizard';
3
+ import { type IssuedVoucher } from '../../modules/vouchers/voucher-history';
4
+ import type { InteractiveSession } from './session';
5
+ /** Comprobante elegido y el punto de venta donde se emitio (a mano puede ser otro que el configurado). */
6
+ export interface PickedInvoice {
7
+ readonly invoice: IssuedVoucher;
8
+ readonly pointOfSale: number;
9
+ }
10
+ interface PickInvoiceOptions {
11
+ readonly message: string;
12
+ /**
13
+ * Modo explorar: en vez de devolver el elegido, lo pasa aca y vuelve a mostrar la lista sin perder lo cargado.
14
+ * Solo se sale con "Volver".
15
+ */
16
+ readonly onPick?: (picked: PickedInvoice) => Promise<void> | void;
17
+ readonly pointOfSale: number;
18
+ readonly voucherKind: VoucherKindDefinition;
19
+ }
20
+ /**
21
+ * Elegir un comprobante emitido: los ultimos del punto de venta configurado, con opciones para cargar mas
22
+ * o ingresar el numero a mano (por ejemplo, uno viejo o de otro punto de venta).
23
+ */
24
+ export declare function pickInvoice(session: InteractiveSession, options: PickInvoiceOptions): Promise<Back | PickedInvoice>;
25
+ export {};
@@ -0,0 +1,152 @@
1
+ import { Separator } from '@inquirer/select';
2
+ import { BACK } from '../../modules/interactive/wizard.js';
3
+ import { listVouchersFrom, RECENT_VOUCHERS_LIMIT } from '../../modules/vouchers/voucher-history.js';
4
+ import { formatVoucherNumber, formatVoucherPickerRows } from '../../modules/vouchers/voucher-history.presenter.js';
5
+ import { colorize, noticePanel, statusBarWidth, writeTerminalOutput } from '../../ui/index.js';
6
+ import { startSpinner } from '../spinner.js';
7
+ import { askTextStep, chooseStep, chooseStepWhileLoading, eraseLastAnswer, fitPageSize } from './prompts.js';
8
+ const LOAD_MORE = 'cargar-mas';
9
+ const BY_NUMBER = 'a-mano';
10
+ /** Separa las columnas de cada fila del listado. */
11
+ const COLUMN_SEPARATOR = ' · ';
12
+ /**
13
+ * Linea punteada tenue que enmarca el listado, del mismo ancho que la barra "MODO INTERACTIVO".
14
+ * @inquirer deja un espacio antes de cada separador; por eso se resta uno al ancho.
15
+ */
16
+ function listRule() {
17
+ return new Separator(colorize('┈'.repeat(statusBarWidth() - 1), 'muted'));
18
+ }
19
+ async function withSpinner(text, run) {
20
+ const spinner = startSpinner(text);
21
+ try {
22
+ return await run();
23
+ }
24
+ finally {
25
+ spinner?.stop();
26
+ }
27
+ }
28
+ function validatePositiveInteger(label) {
29
+ return (value) => {
30
+ const number = Number(value.trim());
31
+ return Number.isInteger(number) && number > 0 ? true : `${label} tiene que ser un numero entero mayor a 0.`;
32
+ };
33
+ }
34
+ /** Pide punto de venta y numero, y lo busca en ARCA. Volver o un comprobante inexistente vuelven a la lista. */
35
+ async function askVoucherByNumber(session, voucherKind, defaultPointOfSale) {
36
+ const pointOfSaleAnswer = await askTextStep('Punto de venta:', {
37
+ defaultValue: String(defaultPointOfSale),
38
+ validate: validatePositiveInteger('El punto de venta'),
39
+ });
40
+ if (pointOfSaleAnswer === BACK) {
41
+ return BACK;
42
+ }
43
+ const numberAnswer = await askTextStep('Numero:', { validate: validatePositiveInteger('El numero') });
44
+ if (numberAnswer === BACK) {
45
+ return BACK;
46
+ }
47
+ const pointOfSale = Number(pointOfSaleAnswer.trim());
48
+ const number = Number(numberAnswer.trim());
49
+ const invoice = await withSpinner('Buscando en ARCA...', () => session.historyGateway.getVoucher(number, pointOfSale, voucherKind.arcaType));
50
+ if (!invoice) {
51
+ writeTerminalOutput(noticePanel(`No existe la ${voucherKind.displayName} N° ${formatVoucherNumber(pointOfSale, number)}.`, 'warning'));
52
+ return BACK;
53
+ }
54
+ return { invoice, pointOfSale };
55
+ }
56
+ /**
57
+ * Elegir un comprobante emitido: los ultimos del punto de venta configurado, con opciones para cargar mas
58
+ * o ingresar el numero a mano (por ejemplo, uno viejo o de otro punto de venta).
59
+ */
60
+ export async function pickInvoice(session, options) {
61
+ const { message, onPick, pointOfSale, voucherKind } = options;
62
+ const { historyGateway } = session;
63
+ // Comprobantes por tanda: los primeros y cada "cargar mas".
64
+ const pageSize = session.runtime.config.comprobantesPorLista ?? RECENT_VOUCHERS_LIMIT;
65
+ const { invoices, lastNumber } = await withSpinner('Buscando en ARCA...', async () => {
66
+ const last = await historyGateway.getLastNumber(pointOfSale, voucherKind.arcaType);
67
+ return {
68
+ invoices: await listVouchersFrom(historyGateway, pointOfSale, voucherKind.arcaType, last, { limit: pageSize }),
69
+ lastNumber: last,
70
+ };
71
+ });
72
+ // Proximo numero a consultar al cargar mas.
73
+ let nextNumber = lastNumber - pageSize;
74
+ let defaultChoice;
75
+ if (invoices.length === 0) {
76
+ writeTerminalOutput(noticePanel(`No hay ${voucherKind.displayName} emitidas en el punto de venta ${pointOfSale}.`, 'warning'));
77
+ }
78
+ // Tanda pedida a ARCA con "cargar mas" mientras la lista sigue en pantalla.
79
+ let loading;
80
+ for (;;) {
81
+ const choices = [];
82
+ // El listado y "cargar mas" van entre lineas punteadas; buscar a mano queda afuera.
83
+ if (invoices.length > 0) {
84
+ const rows = formatVoucherPickerRows(pointOfSale, invoices, COLUMN_SEPARATOR);
85
+ choices.push(listRule(), ...invoices.map((item, index) => ({
86
+ name: rows[index] ?? '',
87
+ // Al elegirla queda solo el numero, no la fila entera.
88
+ short: formatVoucherNumber(pointOfSale, item.number),
89
+ value: item,
90
+ })));
91
+ if (loading) {
92
+ choices.push(new Separator(' '), new Separator(colorize(' Cargando…', 'muted')));
93
+ }
94
+ else if (nextNumber > 0) {
95
+ choices.push(new Separator(' '), { name: '+ Cargar mas…', value: LOAD_MORE });
96
+ }
97
+ choices.push(listRule(), new Separator(' '));
98
+ }
99
+ choices.push({
100
+ description: 'Uno mas viejo o de otro punto de venta',
101
+ name: '# Ingresar el numero a mano…',
102
+ value: BY_NUMBER,
103
+ });
104
+ // +2: el separador y "Volver" que agrega chooseStep.
105
+ const pageSizeOnScreen = fitPageSize(choices.length + 2);
106
+ let answer;
107
+ if (loading) {
108
+ const result = await chooseStepWhileLoading(message, choices, defaultChoice, pageSizeOnScreen, loading);
109
+ loading = undefined;
110
+ if ('loaded' in result) {
111
+ nextNumber -= pageSize;
112
+ // El cursor queda en el primero nuevo; si no vino ninguno, en "cargar mas" o "a mano".
113
+ defaultChoice = result.loaded[0] ?? (nextNumber > 0 ? LOAD_MORE : BY_NUMBER);
114
+ invoices.push(...result.loaded);
115
+ continue;
116
+ }
117
+ // Se eligio otra opcion antes de que terminara la carga: lo que llegue se descarta.
118
+ answer = result.answer;
119
+ }
120
+ else {
121
+ answer = await chooseStep(message, choices, defaultChoice, pageSizeOnScreen);
122
+ }
123
+ if (answer === BACK) {
124
+ return BACK;
125
+ }
126
+ if (answer === LOAD_MORE) {
127
+ // La misma lista se vuelve a dibujar en su lugar, con "Cargando…" en vez del boton.
128
+ eraseLastAnswer();
129
+ loading = listVouchersFrom(historyGateway, pointOfSale, voucherKind.arcaType, nextNumber, { limit: pageSize });
130
+ defaultChoice = invoices.at(-1);
131
+ continue;
132
+ }
133
+ let picked;
134
+ if (answer === BY_NUMBER) {
135
+ const byNumber = await askVoucherByNumber(session, voucherKind, pointOfSale);
136
+ if (byNumber === BACK) {
137
+ defaultChoice = BY_NUMBER;
138
+ continue;
139
+ }
140
+ picked = byNumber;
141
+ }
142
+ else {
143
+ picked = { invoice: answer, pointOfSale };
144
+ }
145
+ if (!onPick) {
146
+ return picked;
147
+ }
148
+ await onPick(picked);
149
+ defaultChoice = answer;
150
+ }
151
+ }
152
+ //# sourceMappingURL=invoice-picker.js.map