arcli 1.7.1 → 2.0.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 +78 -1
- package/README.md +11 -18
- package/dist/cli/commands/billing.command.options.js +17 -15
- package/dist/cli/commands/billing.command.options.js.map +1 -1
- package/dist/cli/commands/billing.command.parser.js +57 -28
- package/dist/cli/commands/billing.command.parser.js.map +1 -1
- package/dist/cli/commands/billing.command.pdf.d.ts +1 -1
- package/dist/cli/commands/billing.command.pdf.js +17 -2
- package/dist/cli/commands/billing.command.pdf.js.map +1 -1
- package/dist/cli/commands/config.command.js +4 -2
- package/dist/cli/commands/config.command.js.map +1 -1
- package/dist/cli/commands/vouchers.command.js +7 -6
- package/dist/cli/commands/vouchers.command.js.map +1 -1
- package/dist/cli/error-output.d.ts +7 -0
- package/dist/cli/error-output.js +26 -0
- package/dist/cli/error-output.js.map +1 -0
- package/dist/cli/help-argv.d.ts +5 -0
- package/dist/cli/help-argv.js +21 -0
- package/dist/cli/help-argv.js.map +1 -0
- package/dist/cli/help.js +4 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.js +14 -20
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/interactive/advanced-options.js +2 -2
- package/dist/cli/interactive/advanced-options.js.map +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 +99 -17
- 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 +153 -0
- package/dist/cli/interactive/invoice-picker.js.map +1 -0
- package/dist/cli/interactive/note.flow.d.ts +8 -2
- package/dist/cli/interactive/note.flow.js +39 -37
- package/dist/cli/interactive/note.flow.js.map +1 -1
- package/dist/cli/interactive/pdf.flow.js +33 -22
- package/dist/cli/interactive/pdf.flow.js.map +1 -1
- package/dist/cli/interactive/prompts.d.ts +36 -5
- package/dist/cli/interactive/prompts.js +185 -19
- package/dist/cli/interactive/prompts.js.map +1 -1
- package/dist/cli/interactive/repeat.flow.js +26 -17
- 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/interactive/update.flow.d.ts +6 -0
- package/dist/cli/interactive/update.flow.js +26 -0
- package/dist/cli/interactive/update.flow.js.map +1 -0
- package/dist/cli/interactive/validators.js +8 -4
- package/dist/cli/interactive/validators.js.map +1 -1
- package/dist/cli/option-parsers.d.ts +6 -0
- package/dist/cli/option-parsers.js +34 -0
- package/dist/cli/option-parsers.js.map +1 -0
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/lib/dates/arca-date.d.ts +13 -0
- package/dist/lib/dates/arca-date.js +28 -11
- package/dist/lib/dates/arca-date.js.map +1 -1
- package/dist/lib/errors/app-error.d.ts +3 -0
- package/dist/lib/errors/app-error.js +3 -0
- package/dist/lib/errors/app-error.js.map +1 -1
- package/dist/lib/files/restrict-to-owner.d.ts +7 -0
- package/dist/lib/files/restrict-to-owner.js +19 -0
- package/dist/lib/files/restrict-to-owner.js.map +1 -0
- package/dist/lib/identity/format-cuit.d.ts +2 -0
- package/dist/lib/identity/format-cuit.js +6 -0
- package/dist/lib/identity/format-cuit.js.map +1 -0
- package/dist/lib/numbers/argentine-amount.d.ts +23 -0
- package/dist/lib/numbers/argentine-amount.js +37 -0
- package/dist/lib/numbers/argentine-amount.js.map +1 -0
- package/dist/lib/numbers/strict-integer.d.ts +4 -0
- package/dist/lib/numbers/strict-integer.js +10 -0
- package/dist/lib/numbers/strict-integer.js.map +1 -0
- package/dist/lib/security/pem.js +5 -1
- package/dist/lib/security/pem.js.map +1 -1
- package/dist/modules/billing/billing-response.js +3 -2
- package/dist/modules/billing/billing-response.js.map +1 -1
- package/dist/modules/billing/billing.amounts.d.ts +2 -0
- package/dist/modules/billing/billing.amounts.js +6 -3
- package/dist/modules/billing/billing.amounts.js.map +1 -1
- package/dist/modules/billing/billing.associated-vouchers.js +14 -3
- package/dist/modules/billing/billing.associated-vouchers.js.map +1 -1
- package/dist/modules/billing/billing.batch.js +6 -0
- package/dist/modules/billing/billing.batch.js.map +1 -1
- package/dist/modules/billing/billing.date-range.js +14 -9
- package/dist/modules/billing/billing.date-range.js.map +1 -1
- package/dist/modules/billing/billing.display.js +4 -4
- package/dist/modules/billing/billing.display.js.map +1 -1
- package/dist/modules/billing/billing.errors.d.ts +12 -0
- package/dist/modules/billing/billing.errors.js +18 -0
- package/dist/modules/billing/billing.errors.js.map +1 -0
- package/dist/modules/billing/billing.schemas.js +13 -5
- package/dist/modules/billing/billing.schemas.js.map +1 -1
- package/dist/modules/billing/billing.service.js +10 -3
- package/dist/modules/billing/billing.service.js.map +1 -1
- package/dist/modules/billing/billing.validation.js +4 -0
- package/dist/modules/billing/billing.validation.js.map +1 -1
- package/dist/modules/config/config-value-parser.d.ts +1 -1
- package/dist/modules/config/config-value-parser.js +21 -9
- 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 +4 -2
- 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.d.ts +5 -0
- package/dist/modules/config/config.service.js +30 -6
- package/dist/modules/config/config.service.js.map +1 -1
- package/dist/modules/examples/examples.js +5 -1
- package/dist/modules/examples/examples.js.map +1 -1
- package/dist/modules/interactive/amount-input.d.ts +3 -5
- package/dist/modules/interactive/amount-input.js +9 -26
- package/dist/modules/interactive/amount-input.js.map +1 -1
- package/dist/modules/interactive/config-fields.d.ts +1 -3
- package/dist/modules/interactive/config-fields.js +37 -42
- package/dist/modules/interactive/config-fields.js.map +1 -1
- package/dist/modules/interactive/equivalent-command.js +6 -8
- package/dist/modules/interactive/equivalent-command.js.map +1 -1
- package/dist/modules/interactive/invoice-copy.d.ts +19 -0
- package/dist/modules/interactive/invoice-copy.js +26 -0
- package/dist/modules/interactive/invoice-copy.js.map +1 -0
- package/dist/modules/interactive/periods.d.ts +2 -2
- package/dist/modules/interactive/periods.js +8 -4
- package/dist/modules/interactive/periods.js.map +1 -1
- package/dist/modules/parameters/health.d.ts +17 -0
- package/dist/modules/parameters/health.js +29 -0
- package/dist/modules/parameters/health.js.map +1 -0
- package/dist/modules/pdf/pdf.errors.d.ts +0 -1
- package/dist/modules/pdf/pdf.errors.js +1 -3
- package/dist/modules/pdf/pdf.errors.js.map +1 -1
- package/dist/modules/storybook/showcase.js +4 -1
- package/dist/modules/storybook/showcase.js.map +1 -1
- package/dist/modules/update-check/changelog.d.ts +23 -0
- package/dist/modules/update-check/changelog.js +99 -0
- package/dist/modules/update-check/changelog.js.map +1 -0
- package/dist/modules/update-check/update-check.presenter.d.ts +4 -0
- package/dist/modules/update-check/update-check.presenter.js +80 -2
- package/dist/modules/update-check/update-check.presenter.js.map +1 -1
- package/dist/modules/update-check/update-check.service.d.ts +3 -0
- package/dist/modules/update-check/update-check.service.js +2 -2
- package/dist/modules/update-check/update-check.service.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 +53 -15
- package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -1
- package/dist/services/arca/arca-context.resolver.js +5 -0
- package/dist/services/arca/arca-context.resolver.js.map +1 -1
- package/dist/services/clipboard/clipboard.d.ts +2 -0
- package/dist/services/clipboard/clipboard.js +17 -0
- package/dist/services/clipboard/clipboard.js.map +1 -0
- package/dist/services/pdf/escape-html.d.ts +6 -0
- package/dist/services/pdf/escape-html.js +25 -0
- package/dist/services/pdf/escape-html.js.map +1 -0
- package/dist/services/pdf/pdf-exporter.js +2 -1
- package/dist/services/pdf/pdf-exporter.js.map +1 -1
- package/dist/ui/components/statusBar.d.ts +15 -2
- package/dist/ui/components/statusBar.js +18 -9
- package/dist/ui/components/statusBar.js.map +1 -1
- package/dist/ui/presenters/errors.presenter.js +5 -4
- package/dist/ui/presenters/errors.presenter.js.map +1 -1
- package/dist/ui/primitives/renderLogo.d.ts +2 -1
- package/dist/ui/primitives/renderLogo.js +21 -4
- package/dist/ui/primitives/renderLogo.js.map +1 -1
- package/dist/ui/primitives/renderPanel.d.ts +2 -0
- package/dist/ui/primitives/renderPanel.js +15 -5
- package/dist/ui/primitives/renderPanel.js.map +1 -1
- package/dist/ui/stream/terminal-stream.d.ts +6 -0
- package/dist/ui/stream/terminal-stream.js +15 -1
- package/dist/ui/stream/terminal-stream.js.map +1 -1
- package/dist/ui/theme/theme.d.ts +3 -3
- package/dist/ui/theme/theme.js +14 -3
- package/dist/ui/theme/theme.js.map +1 -1
- package/llms.txt +12 -10
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/note.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAEL,oBAAoB,GAErB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"note.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/note.flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@ import { ConfigService } from '../../modules/config/config.service.js';
|
|
|
2
2
|
import { parseConfigValue } from '../../modules/config/config-value-parser.js';
|
|
3
3
|
import { canHavePdf, resolvePdfDecision } from '../../modules/pdf/pdf-decision.js';
|
|
4
4
|
import { listMissingIssuerKeys } from '../../modules/pdf/pdf-issuer.js';
|
|
5
|
+
import { noticePanel, writeTerminalOutput } from '../../ui/index.js';
|
|
5
6
|
import { writePdfOutcomes } from '../commands/billing.command.output.js';
|
|
6
7
|
import { attachPdfs } from '../commands/billing.command.pdf.js';
|
|
7
|
-
import { askText, confirm } from './prompts.js';
|
|
8
|
+
import { askText, confirm, isPromptCancellation } from './prompts.js';
|
|
8
9
|
const ISSUER_QUESTIONS = {
|
|
9
10
|
cuit: 'CUIT del emisor',
|
|
10
11
|
'emisor.domicilio': 'Domicilio comercial del emisor',
|
|
@@ -63,27 +64,37 @@ export async function offerPdf(config, input, result) {
|
|
|
63
64
|
if (decision === 'omitir') {
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
// Ya se emitio: un Ctrl+C aca no puede terminar en "No se emitio nada".
|
|
68
|
+
try {
|
|
69
|
+
if (decision === 'preguntar' &&
|
|
70
|
+
!(await confirm('¿Generamos el PDF del comprobante?', 'Si, generar el PDF', 'No'))) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const description = await askText('Descripcion del comprobante (Enter para "Segun detalle")');
|
|
74
|
+
const receiverName = await askText('Nombre o razon social del receptor (Enter para omitir)');
|
|
75
|
+
const receiverAddress = await askText('Domicilio del receptor (Enter para omitir)');
|
|
76
|
+
const completedConfig = await completeIssuer(config);
|
|
77
|
+
const withPdf = await attachPdfs({
|
|
78
|
+
config: completedConfig,
|
|
79
|
+
inputs: [
|
|
80
|
+
{
|
|
81
|
+
...input,
|
|
82
|
+
pdf: true,
|
|
83
|
+
pdfDescription: description || undefined,
|
|
84
|
+
receiverAddress: receiverAddress || undefined,
|
|
85
|
+
receiverName: receiverName || undefined,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
interactive: true,
|
|
89
|
+
results: [result],
|
|
90
|
+
});
|
|
91
|
+
writePdfOutcomes([result], withPdf);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (!isPromptCancellation(error)) {
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
writeTerminalOutput(noticePanel('El comprobante ya quedo emitido; no se genero el PDF.', 'muted'));
|
|
68
98
|
}
|
|
69
|
-
const description = await askText('Descripcion del comprobante (Enter para "Segun detalle")');
|
|
70
|
-
const receiverName = await askText('Nombre o razon social del receptor (Enter para omitir)');
|
|
71
|
-
const receiverAddress = await askText('Domicilio del receptor (Enter para omitir)');
|
|
72
|
-
const completedConfig = await completeIssuer(config);
|
|
73
|
-
const withPdf = await attachPdfs({
|
|
74
|
-
config: completedConfig,
|
|
75
|
-
inputs: [
|
|
76
|
-
{
|
|
77
|
-
...input,
|
|
78
|
-
pdf: true,
|
|
79
|
-
pdfDescription: description || undefined,
|
|
80
|
-
receiverAddress: receiverAddress || undefined,
|
|
81
|
-
receiverName: receiverName || undefined,
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
interactive: true,
|
|
85
|
-
results: [result],
|
|
86
|
-
});
|
|
87
|
-
writePdfOutcomes([result], withPdf);
|
|
88
99
|
}
|
|
89
100
|
//# sourceMappingURL=pdf.flow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/pdf.flow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/pdf.flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,57 @@
|
|
|
1
|
+
import { Separator } from '@inquirer/select';
|
|
1
2
|
import { type Back } from '../../modules/interactive/wizard';
|
|
2
3
|
export interface Choice<T> {
|
|
3
4
|
readonly description?: string;
|
|
4
5
|
readonly name: string;
|
|
6
|
+
/** Lo que queda en la linea "✔ pregunta respuesta" al elegirla; por defecto, `name`. */
|
|
7
|
+
readonly short?: string;
|
|
5
8
|
readonly value: T;
|
|
6
9
|
}
|
|
7
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Una lista simple. Con `escapeValue`, Esc la cierra devolviendo ese valor (por ejemplo, "volver", "no" o
|
|
12
|
+
* "salir") y la ayuda de teclas lo muestra con `escapeLabel`; sin el, Esc no hace nada. Con `compactTop`, una
|
|
13
|
+
* sola linea en blanco arriba en lugar de dos.
|
|
14
|
+
*/
|
|
15
|
+
export declare function chooseOne<T>(message: string, choices: ReadonlyArray<Choice<T> | Separator>, defaultValue?: T, options?: {
|
|
16
|
+
readonly compactTop?: boolean;
|
|
17
|
+
readonly escapeLabel?: string;
|
|
18
|
+
readonly escapeValue?: T;
|
|
19
|
+
}): Promise<T>;
|
|
8
20
|
export declare function askText(message: string, options?: {
|
|
9
21
|
readonly defaultValue?: string;
|
|
10
22
|
readonly validate?: (value: string) => string | true;
|
|
11
23
|
}): Promise<string>;
|
|
24
|
+
/** Si o no; Esc cuenta como no. */
|
|
12
25
|
export declare function confirm(message: string, yesLabel: string, noLabel?: string): Promise<boolean>;
|
|
13
26
|
/** Ctrl+C dentro de un prompt de @inquirer. */
|
|
14
27
|
export declare function isPromptCancellation(error: unknown): boolean;
|
|
15
|
-
/**
|
|
16
|
-
export declare function
|
|
17
|
-
/**
|
|
28
|
+
/** Alto de lista para `count` opciones: todas si entran en la terminal, si no las que entren (minimo 12). */
|
|
29
|
+
export declare function fitPageSize(count: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* Como chooseOne, con una opcion "← Volver" al final para el motor de pasos (Esc hace lo mismo).
|
|
32
|
+
* Acepta separadores entre opciones.
|
|
33
|
+
*/
|
|
34
|
+
export declare function chooseStep<T>(message: string, choices: ReadonlyArray<Choice<T> | Separator>, defaultValue?: T, pageSize?: number): Promise<Back | T>;
|
|
35
|
+
/** Borra la linea de la ultima respuesta ("✔ pregunta respuesta"), para redibujar la misma lista en su lugar. */
|
|
36
|
+
export declare function eraseLastAnswer(): void;
|
|
37
|
+
export type LoadingResult<T, L> = {
|
|
38
|
+
readonly answer: Back | T;
|
|
39
|
+
} | {
|
|
40
|
+
readonly loaded: L;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Muestra la lista mientras `loading` esta en curso (por ejemplo, con "Cargando…" en lugar de un boton).
|
|
44
|
+
* Si termina la carga, la lista desaparece sin dejar rastro y devuelve lo cargado; si antes se elige
|
|
45
|
+
* una opcion (o Esc), devuelve esa respuesta.
|
|
46
|
+
*/
|
|
47
|
+
export declare function chooseStepWhileLoading<T, L>(message: string, choices: ReadonlyArray<Choice<T> | Separator>, defaultValue: T | undefined, pageSize: number, loading: Promise<L>): Promise<LoadingResult<T, L>>;
|
|
48
|
+
/** Como askText, pero Esc (o escribir "<") vuelve al paso anterior. */
|
|
18
49
|
export declare function askTextStep(message: string, options?: {
|
|
19
50
|
readonly defaultValue?: string;
|
|
20
51
|
readonly validate?: (value: string) => string | true;
|
|
21
52
|
}): Promise<Back | string>;
|
|
22
53
|
/**
|
|
23
54
|
* Seleccion multiple: espacio marca, Enter confirma (sin marcar nada tambien vale). Tiene un "← Volver" al
|
|
24
|
-
* final para el motor de pasos: si se marca, vuelve al paso anterior.
|
|
55
|
+
* final para el motor de pasos: si se marca (o con Esc), vuelve al paso anterior.
|
|
25
56
|
*/
|
|
26
57
|
export declare function chooseManyStep<T>(message: string, choices: ReadonlyArray<Choice<T>>, selected?: readonly T[]): Promise<Back | T[]>;
|
|
@@ -1,60 +1,226 @@
|
|
|
1
1
|
import checkbox from '@inquirer/checkbox';
|
|
2
2
|
import input from '@inquirer/input';
|
|
3
|
-
import select from '@inquirer/select';
|
|
3
|
+
import select, { Separator } from '@inquirer/select';
|
|
4
|
+
import { emitKeypressEvents } from 'node:readline';
|
|
5
|
+
import { styleText } from 'node:util';
|
|
4
6
|
import { BACK } from '../../modules/interactive/wizard.js';
|
|
5
7
|
import { colorize } from '../../ui/index.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
// La ayuda de teclas de @inquirer viene en ingles.
|
|
9
|
+
const HELP_TRANSLATIONS = {
|
|
10
|
+
'a all': ['a', 'todos'],
|
|
11
|
+
'i invert': ['i', 'invertir'],
|
|
12
|
+
'space select': ['espacio', 'marcar'],
|
|
13
|
+
'↑↓ navigate': ['↑↓', 'mover'],
|
|
14
|
+
'⏎ select': ['⏎', 'elegir'],
|
|
15
|
+
'⏎ submit': ['⏎', 'confirmar'],
|
|
16
|
+
};
|
|
17
|
+
function keysHelpTip(extra) {
|
|
18
|
+
return (keys) => [...keys.map(([key, action]) => HELP_TRANSLATIONS[`${key} ${action}`] ?? [key, action]), ...extra]
|
|
19
|
+
.map(([key, action]) => `${styleText('bold', key)} ${styleText('dim', action)}`)
|
|
20
|
+
.join(styleText('dim', ' • '));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* La pregunta activa lleva dos lineas en blanco arriba, para separarla de las ya respondidas. Al responderla
|
|
24
|
+
* @inquirer la redibuja con el prefijo "done", sin esas lineas, y las respuestas quedan juntas.
|
|
25
|
+
*/
|
|
26
|
+
const PROMPT_PREFIX = { idle: `\n\n${styleText('blue', '?')}` };
|
|
27
|
+
/** Una sola linea arriba: para una pregunta que ya tiene una linea en blanco fija antes, como el menu bajo la barra. */
|
|
28
|
+
const COMPACT_PROMPT_PREFIX = { idle: `\n${styleText('blue', '?')}` };
|
|
29
|
+
/**
|
|
30
|
+
* En las listas, mientras la pregunta esta activa, una linea en blanco entre la pregunta y las opciones, y otra
|
|
31
|
+
* entre la descripcion de la opcion marcada y la ayuda de teclas.
|
|
32
|
+
*/
|
|
33
|
+
function listStyle(extraKeys) {
|
|
34
|
+
return {
|
|
35
|
+
description: (text) => `${styleText('cyan', text)}\n`,
|
|
36
|
+
keysHelpTip: keysHelpTip(extraKeys),
|
|
37
|
+
message: (text, status) => status === 'done' ? styleText('bold', text) : `${styleText('bold', text)}\n`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const MENU_THEME = { prefix: PROMPT_PREFIX, style: listStyle([]) };
|
|
41
|
+
const STEP_THEME = { prefix: PROMPT_PREFIX, style: listStyle([['esc', 'volver']]) };
|
|
42
|
+
const TEXT_THEME = { prefix: PROMPT_PREFIX };
|
|
43
|
+
/**
|
|
44
|
+
* Una lista simple. Con `escapeValue`, Esc la cierra devolviendo ese valor (por ejemplo, "volver", "no" o
|
|
45
|
+
* "salir") y la ayuda de teclas lo muestra con `escapeLabel`; sin el, Esc no hace nada. Con `compactTop`, una
|
|
46
|
+
* sola linea en blanco arriba en lugar de dos.
|
|
47
|
+
*/
|
|
48
|
+
export async function chooseOne(message, choices, defaultValue, options = {}) {
|
|
49
|
+
const { compactTop = false, escapeLabel = 'volver', escapeValue } = options;
|
|
50
|
+
const prefix = compactTop ? COMPACT_PROMPT_PREFIX : PROMPT_PREFIX;
|
|
51
|
+
const config = {
|
|
52
|
+
choices: [...choices],
|
|
53
|
+
default: defaultValue,
|
|
54
|
+
loop: false,
|
|
55
|
+
message,
|
|
56
|
+
pageSize: 12,
|
|
57
|
+
theme: escapeValue === undefined
|
|
58
|
+
? { ...MENU_THEME, prefix }
|
|
59
|
+
: { prefix, style: listStyle([['esc', escapeLabel]]) },
|
|
60
|
+
};
|
|
61
|
+
if (escapeValue === undefined) {
|
|
62
|
+
return select(config);
|
|
63
|
+
}
|
|
64
|
+
const result = await runStepPrompt((context) => select(config, context), (answer) => ({ answer: choiceName(choices, answer), message }));
|
|
65
|
+
return 'answer' in result && result.answer !== BACK ? result.answer : escapeValue;
|
|
8
66
|
}
|
|
9
67
|
export async function askText(message, options = {}) {
|
|
10
68
|
const answer = await input({
|
|
11
69
|
default: options.defaultValue,
|
|
12
70
|
message,
|
|
71
|
+
theme: TEXT_THEME,
|
|
13
72
|
validate: options.validate,
|
|
14
73
|
});
|
|
15
74
|
return answer.trim();
|
|
16
75
|
}
|
|
76
|
+
/** Si o no; Esc cuenta como no. */
|
|
17
77
|
export async function confirm(message, yesLabel, noLabel = 'Cancelar') {
|
|
18
78
|
return chooseOne(message, [
|
|
19
79
|
{ name: yesLabel, value: true },
|
|
20
80
|
{ name: noLabel, value: false },
|
|
21
|
-
]);
|
|
81
|
+
], undefined, { escapeValue: false });
|
|
22
82
|
}
|
|
23
83
|
/** Ctrl+C dentro de un prompt de @inquirer. */
|
|
24
84
|
export function isPromptCancellation(error) {
|
|
25
85
|
return error instanceof Error && error.name === 'ExitPromptError';
|
|
26
86
|
}
|
|
87
|
+
// Lineas que ocupa el prompt fuera de la lista: linea en blanco, pregunta, descripcion y ayuda de teclas.
|
|
88
|
+
const PROMPT_CHROME_LINES = 6;
|
|
89
|
+
/** Alto de lista para `count` opciones: todas si entran en la terminal, si no las que entren (minimo 12). */
|
|
90
|
+
export function fitPageSize(count) {
|
|
91
|
+
const available = (process.stdout.rows || 24) - PROMPT_CHROME_LINES;
|
|
92
|
+
return Math.max(12, Math.min(count, available));
|
|
93
|
+
}
|
|
27
94
|
const BACK_CHOICE = { name: '← Volver', value: BACK };
|
|
95
|
+
// Linea en blanco entre las opciones y "Volver".
|
|
96
|
+
const BACK_SPACER = new Separator(' ');
|
|
97
|
+
// Alternativa a Esc, por si la terminal no la manda.
|
|
28
98
|
const BACK_TEXT = '<';
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
99
|
+
const ESCAPE_REASON = 'esc';
|
|
100
|
+
/** La misma linea que deja @inquirer al responder; hace falta cuando el prompt se borra al cerrarse. */
|
|
101
|
+
function writeAnsweredLine(message, answer) {
|
|
102
|
+
process.stdout.write(`${styleText('green', '✔')} ${styleText('bold', message)} ${styleText('cyan', answer)}\n`);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Corre un prompt de paso que se cierra con Esc (vuelve al paso anterior) o cuando se aborta `signal`.
|
|
106
|
+
* El prompt se borra al cerrarse, asi una pregunta abandonada no queda en pantalla; si se respondio,
|
|
107
|
+
* se escribe la linea "✔ pregunta respuesta" igual que siempre.
|
|
108
|
+
*/
|
|
109
|
+
async function runStepPrompt(run, answeredLine, signal) {
|
|
110
|
+
const controller = new AbortController();
|
|
111
|
+
const onKeypress = (_text, key) => {
|
|
112
|
+
if (key?.name === 'escape') {
|
|
113
|
+
controller.abort(ESCAPE_REASON);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const onAbort = () => controller.abort(signal?.reason);
|
|
117
|
+
signal?.addEventListener('abort', onAbort);
|
|
118
|
+
// @inquirer ya emite keypress sobre stdin; llamarlo de nuevo no hace nada.
|
|
119
|
+
emitKeypressEvents(process.stdin);
|
|
120
|
+
process.stdin.on('keypress', onKeypress);
|
|
121
|
+
try {
|
|
122
|
+
const answer = await run({ clearPromptOnDone: true, signal: controller.signal });
|
|
123
|
+
const line = answeredLine(answer);
|
|
124
|
+
writeAnsweredLine(line.message, line.answer);
|
|
125
|
+
return { answer };
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (!(error instanceof Error && error.name === 'AbortPromptError')) {
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
return controller.signal.reason === ESCAPE_REASON ? { answer: BACK } : { aborted: true };
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
process.stdin.off('keypress', onKeypress);
|
|
135
|
+
signal?.removeEventListener('abort', onAbort);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function stepConfig(message, choices, defaultValue, pageSize) {
|
|
139
|
+
return {
|
|
140
|
+
choices: [...choices, BACK_SPACER, BACK_CHOICE],
|
|
33
141
|
default: defaultValue,
|
|
34
142
|
loop: false,
|
|
35
143
|
message,
|
|
36
|
-
pageSize
|
|
37
|
-
|
|
144
|
+
pageSize,
|
|
145
|
+
theme: STEP_THEME,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function choiceName(choices, answer) {
|
|
149
|
+
if (answer === BACK) {
|
|
150
|
+
return BACK_CHOICE.name;
|
|
151
|
+
}
|
|
152
|
+
const chosen = choices.find((item) => !Separator.isSeparator(item) && item.value === answer);
|
|
153
|
+
return chosen?.short ?? chosen?.name ?? '';
|
|
154
|
+
}
|
|
155
|
+
async function selectStep(message, choices, defaultValue, pageSize, signal) {
|
|
156
|
+
return runStepPrompt((context) => select(stepConfig(message, choices, defaultValue, pageSize), context), (answer) => ({ answer: choiceName(choices, answer), message }), signal);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Como chooseOne, con una opcion "← Volver" al final para el motor de pasos (Esc hace lo mismo).
|
|
160
|
+
* Acepta separadores entre opciones.
|
|
161
|
+
*/
|
|
162
|
+
export async function chooseStep(message, choices, defaultValue, pageSize = 12) {
|
|
163
|
+
const result = await selectStep(message, choices, defaultValue, pageSize);
|
|
164
|
+
// Sin signal externo, solo Esc aborta, y eso ya vuelve como BACK.
|
|
165
|
+
return 'answer' in result ? result.answer : BACK;
|
|
38
166
|
}
|
|
39
|
-
/**
|
|
167
|
+
/** Borra la linea de la ultima respuesta ("✔ pregunta respuesta"), para redibujar la misma lista en su lugar. */
|
|
168
|
+
export function eraseLastAnswer() {
|
|
169
|
+
if (process.stdout.isTTY) {
|
|
170
|
+
process.stdout.write('\u001B[1A\u001B[2K\r');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Muestra la lista mientras `loading` esta en curso (por ejemplo, con "Cargando…" en lugar de un boton).
|
|
175
|
+
* Si termina la carga, la lista desaparece sin dejar rastro y devuelve lo cargado; si antes se elige
|
|
176
|
+
* una opcion (o Esc), devuelve esa respuesta.
|
|
177
|
+
*/
|
|
178
|
+
export async function chooseStepWhileLoading(message, choices, defaultValue, pageSize, loading) {
|
|
179
|
+
const loaded = new AbortController();
|
|
180
|
+
const stop = () => loaded.abort();
|
|
181
|
+
loading.then(stop, stop);
|
|
182
|
+
const result = await selectStep(message, choices, defaultValue, pageSize, loaded.signal);
|
|
183
|
+
return 'answer' in result ? result : { loaded: await loading };
|
|
184
|
+
}
|
|
185
|
+
/** Como askText, pero Esc (o escribir "<") vuelve al paso anterior. */
|
|
40
186
|
export async function askTextStep(message, options = {}) {
|
|
41
|
-
const
|
|
42
|
-
|
|
187
|
+
const result = await runStepPrompt((context) => input({
|
|
188
|
+
default: options.defaultValue,
|
|
189
|
+
message: `${message} ${colorize('([esc] para volver)', 'muted')}`,
|
|
190
|
+
theme: TEXT_THEME,
|
|
43
191
|
validate: (value) => (value.trim() === BACK_TEXT ? true : (options.validate?.(value) ?? true)),
|
|
44
|
-
});
|
|
192
|
+
}, context), (answer) => ({ answer: answer.trim(), message }));
|
|
193
|
+
if (!('answer' in result) || result.answer === BACK) {
|
|
194
|
+
return BACK;
|
|
195
|
+
}
|
|
196
|
+
const answer = result.answer.trim();
|
|
45
197
|
return answer === BACK_TEXT ? BACK : answer;
|
|
46
198
|
}
|
|
47
199
|
/**
|
|
48
200
|
* Seleccion multiple: espacio marca, Enter confirma (sin marcar nada tambien vale). Tiene un "← Volver" al
|
|
49
|
-
* final para el motor de pasos: si se marca, vuelve al paso anterior.
|
|
201
|
+
* final para el motor de pasos: si se marca (o con Esc), vuelve al paso anterior.
|
|
50
202
|
*/
|
|
51
203
|
export async function chooseManyStep(message, choices, selected = []) {
|
|
52
|
-
const
|
|
53
|
-
choices: [
|
|
204
|
+
const result = await runStepPrompt((context) => checkbox({
|
|
205
|
+
choices: [
|
|
206
|
+
...choices.map((choice) => ({ ...choice, checked: selected.includes(choice.value) })),
|
|
207
|
+
BACK_SPACER,
|
|
208
|
+
BACK_CHOICE,
|
|
209
|
+
],
|
|
54
210
|
loop: false,
|
|
55
211
|
message,
|
|
56
212
|
pageSize: 12,
|
|
57
|
-
|
|
58
|
-
|
|
213
|
+
theme: STEP_THEME,
|
|
214
|
+
}, context), (answer) => ({
|
|
215
|
+
answer: choices
|
|
216
|
+
.filter((choice) => answer.includes(choice.value))
|
|
217
|
+
.map((choice) => choice.name)
|
|
218
|
+
.join(', '),
|
|
219
|
+
message,
|
|
220
|
+
}));
|
|
221
|
+
if (!('answer' in result) || result.answer === BACK || result.answer.includes(BACK)) {
|
|
222
|
+
return BACK;
|
|
223
|
+
}
|
|
224
|
+
return result.answer;
|
|
59
225
|
}
|
|
60
226
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/interactive/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAa,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/interactive/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { formatMoneyLabel } from '../../modules/billing/billing.labels.js';
|
|
2
2
|
import { parseAmountInput } from '../../modules/interactive/amount-input.js';
|
|
3
3
|
import { invoiceKindChoices, ivaConditionChoices } from '../../modules/interactive/choices.js';
|
|
4
|
+
import { copyInvoiceAmounts } from '../../modules/interactive/invoice-copy.js';
|
|
4
5
|
import { currentMonthPeriod, previousMonthPeriod } from '../../modules/interactive/periods.js';
|
|
5
6
|
import { BACK, runWizard } from '../../modules/interactive/wizard.js';
|
|
6
|
-
import {
|
|
7
|
-
import { formatVoucherSummary } from '../../modules/vouchers/voucher-history.presenter.js';
|
|
7
|
+
import { resolveDocumentType } from '../../modules/vouchers/voucher-history.js';
|
|
8
8
|
import { noticePanel, writeTerminalOutput } from '../../ui/index.js';
|
|
9
|
-
import { startSpinner } from '../spinner.js';
|
|
10
9
|
import { askAdvancedOptions } from './advanced-options.js';
|
|
11
10
|
import { buildInvoiceInput } from './invoice.flow.js';
|
|
11
|
+
import { pickInvoice } from './invoice-picker.js';
|
|
12
12
|
import { askTextStep, chooseStep } from './prompts.js';
|
|
13
13
|
import { previewAndEmit, requirePointOfSale } from './session.js';
|
|
14
14
|
import { validateAmount, validateCbu, validateDate } from './validators.js';
|
|
@@ -39,26 +39,27 @@ export function repeatSteps(session, pointOfSale, today = new Date()) {
|
|
|
39
39
|
name: 'factura',
|
|
40
40
|
run: async (state) => {
|
|
41
41
|
const voucherKind = state.voucherKind;
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
if (invoices.length === 0) {
|
|
45
|
-
writeTerminalOutput(noticePanel(`No hay ${voucherKind.displayName} emitidas en el punto de venta ${pointOfSale}.`, 'warning'));
|
|
46
|
-
return BACK;
|
|
47
|
-
}
|
|
48
|
-
const original = await chooseStep('¿Cual repetimos?', invoices.map((item) => ({ name: formatVoucherSummary(pointOfSale, item), value: item })));
|
|
49
|
-
if (original === BACK) {
|
|
42
|
+
const picked = await pickInvoice(session, { message: '¿Cual repetimos?', pointOfSale, voucherKind });
|
|
43
|
+
if (picked === BACK) {
|
|
50
44
|
return BACK;
|
|
51
45
|
}
|
|
46
|
+
const original = picked.invoice;
|
|
52
47
|
const documentType = resolveDocumentType(original.documentTypeCode);
|
|
53
48
|
if (!documentType) {
|
|
54
49
|
writeTerminalOutput(noticePanel('La factura tiene un tipo de documento que el asistente no soporta. Usa los flags del CLI.', 'warning'));
|
|
55
50
|
return BACK;
|
|
56
51
|
}
|
|
52
|
+
const copy = copyInvoiceAmounts(original, voucherKind.letter);
|
|
53
|
+
if (copy.limitation) {
|
|
54
|
+
writeTerminalOutput(noticePanel(`${copy.limitation} Revisa la alicuota y el monto antes de emitir.`, 'warning'));
|
|
55
|
+
}
|
|
57
56
|
return {
|
|
58
57
|
advanced: {
|
|
59
58
|
currencyCode: 'ARS',
|
|
60
|
-
|
|
59
|
+
exemptAmount: copy.exemptAmount,
|
|
60
|
+
ivaRate: copy.ivaRate,
|
|
61
61
|
sameCurrency: false,
|
|
62
|
+
untaxedAmount: copy.untaxedAmount,
|
|
62
63
|
},
|
|
63
64
|
concept: CONCEPTS_BY_CODE[original.concept ?? 2] ?? 'servicios',
|
|
64
65
|
documentNumber: documentType === 'consumidor-final' ? undefined : original.documentNumber,
|
|
@@ -82,10 +83,14 @@ export function repeatSteps(session, pointOfSale, today = new Date()) {
|
|
|
82
83
|
name: 'monto',
|
|
83
84
|
run: async (state) => {
|
|
84
85
|
const original = state.original;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
// Si no se puede reproducir (varias alicuotas, tributos), "mismo monto" no daria la misma factura.
|
|
87
|
+
const reproducible = !copyInvoiceAmounts(original, state.voucherKind?.letter ?? 'c').limitation;
|
|
88
|
+
const scope = reproducible
|
|
89
|
+
? await chooseStep('¿Mismo monto?', [
|
|
90
|
+
{ name: `Si, ${formatMoneyLabel(original.total)}`, value: 'mismo' },
|
|
91
|
+
{ name: 'No, ingresar otro monto', value: 'otro' },
|
|
92
|
+
])
|
|
93
|
+
: 'otro';
|
|
89
94
|
if (scope === BACK || scope === 'mismo') {
|
|
90
95
|
return scope === BACK ? BACK : { totalAmount: original.total };
|
|
91
96
|
}
|
|
@@ -142,7 +147,11 @@ export function repeatSteps(session, pointOfSale, today = new Date()) {
|
|
|
142
147
|
const advanced = await askAdvancedOptions(state.advanced, {
|
|
143
148
|
concept: state.concept ?? 'servicios',
|
|
144
149
|
defaultIvaRate: state.advanced.ivaRate ?? config.alicuotaPorDefecto ?? '21',
|
|
145
|
-
|
|
150
|
+
// Sin alicuota deducida de la factura, que la elija en lugar de caer en la de la config.
|
|
151
|
+
preselected: [
|
|
152
|
+
...(foreign ? ['divisas'] : []),
|
|
153
|
+
...(!state.advanced.ivaRate && state.voucherKind?.letter !== 'c' ? ['alicuota'] : []),
|
|
154
|
+
],
|
|
146
155
|
voucherKind: state.voucherKind,
|
|
147
156
|
});
|
|
148
157
|
return advanced === BACK ? BACK : { advanced };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeat.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/repeat.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"repeat.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/repeat.flow.ts"],"names":[],"mappings":"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"}
|