arcli 1.5.0 → 1.7.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 (61) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +39 -9
  3. package/dist/cli/commands/parameters.command.d.ts +2 -0
  4. package/dist/cli/commands/parameters.command.js +88 -0
  5. package/dist/cli/commands/parameters.command.js.map +1 -0
  6. package/dist/cli/help.js +4 -4
  7. package/dist/cli/help.js.map +1 -1
  8. package/dist/cli/interactive/advanced-options.d.ts +10 -3
  9. package/dist/cli/interactive/advanced-options.js +85 -45
  10. package/dist/cli/interactive/advanced-options.js.map +1 -1
  11. package/dist/cli/interactive/config.flow.d.ts +5 -0
  12. package/dist/cli/interactive/config.flow.js +211 -0
  13. package/dist/cli/interactive/config.flow.js.map +1 -0
  14. package/dist/cli/interactive/interactive-mode.js +38 -9
  15. package/dist/cli/interactive/interactive-mode.js.map +1 -1
  16. package/dist/cli/interactive/invoice.flow.d.ts +0 -2
  17. package/dist/cli/interactive/invoice.flow.js +5 -22
  18. package/dist/cli/interactive/invoice.flow.js.map +1 -1
  19. package/dist/cli/interactive/lookup.flow.d.ts +5 -0
  20. package/dist/cli/interactive/lookup.flow.js +72 -0
  21. package/dist/cli/interactive/lookup.flow.js.map +1 -0
  22. package/dist/cli/interactive/prompts.d.ts +5 -0
  23. package/dist/cli/interactive/prompts.js +14 -0
  24. package/dist/cli/interactive/prompts.js.map +1 -1
  25. package/dist/cli/interactive/repeat.flow.d.ts +13 -0
  26. package/dist/cli/interactive/repeat.flow.js +166 -0
  27. package/dist/cli/interactive/repeat.flow.js.map +1 -0
  28. package/dist/cli/program.js +2 -0
  29. package/dist/cli/program.js.map +1 -1
  30. package/dist/cli/version.d.ts +1 -1
  31. package/dist/cli/version.js +1 -1
  32. package/dist/lib/links.d.ts +2 -0
  33. package/dist/lib/links.js +3 -0
  34. package/dist/lib/links.js.map +1 -0
  35. package/dist/modules/config/config-doctor.js +2 -1
  36. package/dist/modules/config/config-doctor.js.map +1 -1
  37. package/dist/modules/config/config.service.d.ts +3 -1
  38. package/dist/modules/config/config.service.js +4 -0
  39. package/dist/modules/config/config.service.js.map +1 -1
  40. package/dist/modules/interactive/config-fields.d.ts +22 -0
  41. package/dist/modules/interactive/config-fields.js +133 -0
  42. package/dist/modules/interactive/config-fields.js.map +1 -0
  43. package/dist/modules/interactive/periods.d.ts +7 -0
  44. package/dist/modules/interactive/periods.js +13 -0
  45. package/dist/modules/interactive/periods.js.map +1 -0
  46. package/dist/modules/parameters/parameters.d.ts +50 -0
  47. package/dist/modules/parameters/parameters.js +34 -0
  48. package/dist/modules/parameters/parameters.js.map +1 -0
  49. package/dist/modules/parameters/parameters.presenter.d.ts +12 -0
  50. package/dist/modules/parameters/parameters.presenter.js +103 -0
  51. package/dist/modules/parameters/parameters.presenter.js.map +1 -0
  52. package/dist/modules/parameters/status.d.ts +31 -0
  53. package/dist/modules/parameters/status.js +35 -0
  54. package/dist/modules/parameters/status.js.map +1 -0
  55. package/dist/modules/pdf/pdf-data.mapper.js +9 -2
  56. package/dist/modules/pdf/pdf-data.mapper.js.map +1 -1
  57. package/dist/services/arca/arca-parameters.gateway.d.ts +10 -0
  58. package/dist/services/arca/arca-parameters.gateway.js +71 -0
  59. package/dist/services/arca/arca-parameters.gateway.js.map +1 -0
  60. package/llms.txt +2 -0
  61. package/package.json +2 -1
@@ -0,0 +1,166 @@
1
+ import { formatMoneyLabel } from '../../modules/billing/billing.labels.js';
2
+ import { parseAmountInput } from '../../modules/interactive/amount-input.js';
3
+ import { invoiceKindChoices, ivaConditionChoices } from '../../modules/interactive/choices.js';
4
+ import { currentMonthPeriod, previousMonthPeriod } from '../../modules/interactive/periods.js';
5
+ import { BACK, runWizard } from '../../modules/interactive/wizard.js';
6
+ import { inferIvaRate, listRecentVouchers, resolveDocumentType, } from '../../modules/vouchers/voucher-history.js';
7
+ import { formatVoucherSummary } from '../../modules/vouchers/voucher-history.presenter.js';
8
+ import { noticePanel, writeTerminalOutput } from '../../ui/index.js';
9
+ import { startSpinner } from '../spinner.js';
10
+ import { askAdvancedOptions } from './advanced-options.js';
11
+ import { buildInvoiceInput } from './invoice.flow.js';
12
+ import { askTextStep, chooseStep } from './prompts.js';
13
+ import { previewAndEmit, requirePointOfSale } from './session.js';
14
+ import { validateAmount, validateCbu, validateDate } from './validators.js';
15
+ const CONCEPTS_BY_CODE = {
16
+ 1: 'productos',
17
+ 2: 'servicios',
18
+ 3: 'productos-servicios',
19
+ };
20
+ const LOCAL_CURRENCIES = new Set(['PES', 'ARS', undefined]);
21
+ function describePeriod(period) {
22
+ return `${period.from} al ${period.to}`;
23
+ }
24
+ /**
25
+ * Repetir una factura: se elige una de las ultimas emitidas y se copian el comprobante, el receptor, el concepto,
26
+ * el monto y la alicuota. Las fechas se actualizan: la factura sale con fecha de hoy y el periodo se elige.
27
+ */
28
+ export function repeatSteps(session, pointOfSale, today = new Date()) {
29
+ const { config } = session.runtime;
30
+ return [
31
+ {
32
+ name: 'tipo',
33
+ run: async () => {
34
+ const voucherKind = await chooseStep('¿Que tipo de factura queres repetir?', invoiceKindChoices());
35
+ return voucherKind === BACK ? BACK : { voucherKind };
36
+ },
37
+ },
38
+ {
39
+ name: 'factura',
40
+ run: async (state) => {
41
+ const voucherKind = state.voucherKind;
42
+ const spinner = startSpinner('Buscando las ultimas facturas en ARCA...');
43
+ const invoices = await listRecentVouchers(session.historyGateway, pointOfSale, voucherKind.arcaType).finally(() => spinner?.stop());
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) {
50
+ return BACK;
51
+ }
52
+ const documentType = resolveDocumentType(original.documentTypeCode);
53
+ if (!documentType) {
54
+ writeTerminalOutput(noticePanel('La factura tiene un tipo de documento que el asistente no soporta. Usa los flags del CLI.', 'warning'));
55
+ return BACK;
56
+ }
57
+ return {
58
+ advanced: {
59
+ currencyCode: 'ARS',
60
+ ivaRate: voucherKind.letter === 'c' ? undefined : inferIvaRate(original.netAmount, original.ivaAmount),
61
+ sameCurrency: false,
62
+ },
63
+ concept: CONCEPTS_BY_CODE[original.concept ?? 2] ?? 'servicios',
64
+ documentNumber: documentType === 'consumidor-final' ? undefined : original.documentNumber,
65
+ documentType,
66
+ ivaCondition: documentType === 'consumidor-final' ? 'consumidor-final' : undefined,
67
+ original,
68
+ totalAmount: original.total,
69
+ };
70
+ },
71
+ },
72
+ {
73
+ name: 'iva-receptor',
74
+ // ARCA no devuelve la condicion IVA de la factura, asi que se pregunta.
75
+ run: async (state) => {
76
+ const ivaCondition = await chooseStep('Condicion frente al IVA del receptor:', ivaConditionChoices(state.voucherKind?.letter ?? 'c'), config.ivaReceptorPorDefecto);
77
+ return ivaCondition === BACK ? BACK : { ivaCondition };
78
+ },
79
+ skip: (state) => state.documentType === 'consumidor-final',
80
+ },
81
+ {
82
+ name: 'monto',
83
+ run: async (state) => {
84
+ const original = state.original;
85
+ const scope = await chooseStep('¿Mismo monto?', [
86
+ { name: `Si, ${formatMoneyLabel(original.total)}`, value: 'mismo' },
87
+ { name: 'No, ingresar otro monto', value: 'otro' },
88
+ ]);
89
+ if (scope === BACK || scope === 'mismo') {
90
+ return scope === BACK ? BACK : { totalAmount: original.total };
91
+ }
92
+ const answer = await askTextStep('Monto total:', { validate: validateAmount });
93
+ return answer === BACK ? BACK : { totalAmount: parseAmountInput(answer) };
94
+ },
95
+ },
96
+ {
97
+ name: 'periodo',
98
+ run: async (state) => {
99
+ const current = currentMonthPeriod(today);
100
+ const previous = previousMonthPeriod(today);
101
+ const choice = await chooseStep('Periodo del servicio:', [
102
+ { description: describePeriod(current), name: 'Este mes', value: current },
103
+ { description: describePeriod(previous), name: 'El mes pasado', value: previous },
104
+ { description: 'Desde y hasta hoy', name: 'Solo hoy', value: 'hoy' },
105
+ { name: 'Otro periodo', value: 'otro' },
106
+ ]);
107
+ if (choice === BACK) {
108
+ return BACK;
109
+ }
110
+ const advanced = { ...state.advanced };
111
+ if (choice === 'hoy') {
112
+ return { advanced: { ...advanced, serviceEndDate: undefined, serviceStartDate: undefined } };
113
+ }
114
+ if (choice !== 'otro') {
115
+ return { advanced: { ...advanced, serviceEndDate: choice.to, serviceStartDate: choice.from } };
116
+ }
117
+ const from = await askTextStep('Servicio desde:', { validate: validateDate });
118
+ if (from === BACK) {
119
+ return BACK;
120
+ }
121
+ const to = await askTextStep('Servicio hasta:', { validate: validateDate });
122
+ return to === BACK ? BACK : { advanced: { ...advanced, serviceEndDate: to, serviceStartDate: from } };
123
+ },
124
+ skip: (state) => state.concept === 'productos',
125
+ },
126
+ {
127
+ name: 'cbu',
128
+ run: async () => {
129
+ const cbu = await askTextStep('CBU del emisor (22 digitos):', { validate: validateCbu });
130
+ return cbu === BACK ? BACK : { cbu };
131
+ },
132
+ skip: (state) => state.voucherKind?.family !== 'factura-credito-electronica' || Boolean(config.cbu),
133
+ },
134
+ {
135
+ name: 'opcionales',
136
+ run: async (state) => {
137
+ // La cotizacion de la factura original ya no sirve: si era en moneda extranjera, arranca marcada.
138
+ const foreign = !LOCAL_CURRENCIES.has(state.original?.currency);
139
+ if (foreign) {
140
+ writeTerminalOutput(noticePanel('La factura original era en moneda extranjera: completa la moneda y la cotizacion.', 'info'));
141
+ }
142
+ const advanced = await askAdvancedOptions(state.advanced, {
143
+ concept: state.concept ?? 'servicios',
144
+ defaultIvaRate: state.advanced.ivaRate ?? config.alicuotaPorDefecto ?? '21',
145
+ preselected: foreign ? ['divisas'] : [],
146
+ voucherKind: state.voucherKind,
147
+ });
148
+ return advanced === BACK ? BACK : { advanced };
149
+ },
150
+ },
151
+ ];
152
+ }
153
+ export async function runRepeatFlow(session) {
154
+ const pointOfSale = requirePointOfSale(session);
155
+ if (!pointOfSale) {
156
+ return;
157
+ }
158
+ const state = await runWizard(repeatSteps(session, pointOfSale), {
159
+ advanced: { currencyCode: 'ARS', sameCurrency: false },
160
+ });
161
+ if (!state) {
162
+ return;
163
+ }
164
+ await previewAndEmit(session, buildInvoiceInput(state, session));
165
+ }
166
+ //# sourceMappingURL=repeat.flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeat.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/repeat.flow.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { registerConfigCommand } from './commands/config.command.js';
6
6
  import { registerExamplesCommand } from './commands/examples.command.js';
7
7
  import { registerFceObligationCommand } from './commands/fce-obligation.command.js';
8
8
  import { registerInteractiveCommand } from './commands/interactive.command.js';
9
+ import { registerParametersCommands } from './commands/parameters.command.js';
9
10
  import { registerPdfCommand } from './commands/pdf.command.js';
10
11
  import { registerStorybookCommand } from './commands/storybook.command.js';
11
12
  import { registerVoucherQueryCommands } from './commands/vouchers.command.js';
@@ -27,6 +28,7 @@ export function createProgram() {
27
28
  registerFceObligationCommand(program);
28
29
  registerInteractiveCommand(program);
29
30
  registerPdfCommand(program);
31
+ registerParametersCommands(program);
30
32
  registerVoucherQueryCommands(program);
31
33
  registerStorybookCommand(program);
32
34
  program.addHelpText('beforeAll', ({ command }) => (command === program ? createProgramHeader() : ''));
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CACV,6HAA6H,CAC9H;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,kBAAkB,CAAC,4CAA4C,CAAC,CAAC;IAEpE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAElC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnG,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CACV,6HAA6H,CAC9H;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,kBAAkB,CAAC,4CAA4C,CAAC,CAAC;IAEpE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAElC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnG,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- export declare const CLI_VERSION = "1.5.0";
1
+ export declare const CLI_VERSION = "1.7.0";
@@ -1,2 +1,2 @@
1
- export const CLI_VERSION = '1.5.0';
1
+ export const CLI_VERSION = '1.7.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,2 @@
1
+ /** URL publica de la guia para sacar los certificados de ARCA (testing y produccion). */
2
+ export declare const CERTIFICATE_GUIDE_URL = "https://github.com/LcsGrz/arcli/blob/main/docs/obtencion-certificados.md";
@@ -0,0 +1,3 @@
1
+ /** URL publica de la guia para sacar los certificados de ARCA (testing y produccion). */
2
+ export const CERTIFICATE_GUIDE_URL = 'https://github.com/LcsGrz/arcli/blob/main/docs/obtencion-certificados.md';
3
+ //# sourceMappingURL=links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/lib/links.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG,0EAA0E,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { CERTIFICATE_GUIDE_URL } from '../../lib/links.js';
1
2
  import { isCertificateExpiringSoon, readCertificateExpiry } from '../../lib/security/certificate.js';
2
3
  import { readPemFile } from '../../lib/security/pem.js';
3
4
  import { listMissingIssuerKeys } from '../pdf/pdf-issuer.js';
@@ -61,7 +62,7 @@ export function buildConfigDoctorReport(config, runtimeCheck) {
61
62
  label: 'Credenciales testing',
62
63
  ok: config.cert.testing && config.key.testing,
63
64
  okDetail: 'Certificado y clave de testing configurados.',
64
- warningDetail: 'Faltan credenciales de testing. Configure "cert.testing" y "key.testing" con "arcli config establecer".',
65
+ warningDetail: `Faltan credenciales de testing. Configure "cert.testing" y "key.testing" con "arcli config establecer". Si todavia no tiene certificado: ${CERTIFICATE_GUIDE_URL}`,
65
66
  },
66
67
  {
67
68
  label: 'Credenciales produccion',
@@ -1 +1 @@
1
- {"version":3,"file":"config-doctor.js","sourceRoot":"","sources":["../../../src/modules/config/config-doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-doctor.js","sourceRoot":"","sources":["../../../src/modules/config/config-doctor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { ArcliConfig } from './config.schemas';
1
+ import { ArcliConfig, ConfigPublicKey } from './config.schemas';
2
+ /** Valida un valor como lo haria `arcli config establecer`, sin guardarlo. Lanza un Error con el motivo. */
3
+ export declare function validateConfigValue(publicKey: ConfigPublicKey, rawValue: string): void;
2
4
  export interface ConfigServiceOptions {
3
5
  readonly configName?: string;
4
6
  readonly cwd?: string;
@@ -33,6 +33,10 @@ const CONFIG_KEY_ALIASES = {
33
33
  ticketPath: 'ticketPath',
34
34
  verificarFce: 'verificarFce',
35
35
  };
36
+ /** Valida un valor como lo haria `arcli config establecer`, sin guardarlo. Lanza un Error con el motivo. */
37
+ export function validateConfigValue(publicKey, rawValue) {
38
+ parseConfigValue(CONFIG_KEY_ALIASES[publicKey], rawValue);
39
+ }
36
40
  export class ConfigService {
37
41
  store;
38
42
  constructor(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/modules/config/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/modules/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type ArcliConfig, type ConfigPublicKey } from '../config/config.schemas';
2
+ export type ConfigFieldGroup = 'credenciales' | 'defaults' | 'emisor' | 'pdf';
3
+ /** Un dato de la config que se puede cambiar desde el modo interactivo. */
4
+ export interface ConfigField {
5
+ /** Valores posibles para elegir de una lista; sin esto se escribe. */
6
+ readonly choices?: readonly string[];
7
+ readonly group: ConfigFieldGroup;
8
+ readonly hint?: string;
9
+ readonly key: ConfigPublicKey;
10
+ readonly label: string;
11
+ /** Las rutas se muestran enmascaradas, igual que en `arcli config`. */
12
+ readonly path?: boolean;
13
+ readonly read: (config: ArcliConfig) => string | undefined;
14
+ }
15
+ export declare const CONFIG_GROUP_LABELS: Record<ConfigFieldGroup, string>;
16
+ export declare const CONFIG_FIELDS: readonly ConfigField[];
17
+ export declare function getConfigField(key: ConfigPublicKey): ConfigField;
18
+ /** Valor para mostrar al lado del nombre. */
19
+ export declare function describeConfigValue(field: ConfigField, config: ArcliConfig): string;
20
+ /** Lo minimo para emitir: sin esto el modo interactivo no puede crear la sesion con ARCA. */
21
+ export declare const REQUIRED_SETUP_KEYS: readonly ConfigPublicKey[];
22
+ export declare function listMissingSetupKeys(config: ArcliConfig): ConfigPublicKey[];
@@ -0,0 +1,133 @@
1
+ import { formatArcaDateAsArgentineDate } from '../../lib/dates/arca-date.js';
2
+ import { maskPath } from '../../lib/paths/mask-path.js';
3
+ import { arcliDefaultConceptSchema, arcliDefaultIvaConditionSchema, arcliEnvironmentSchema, arcliPdfModeSchema, } from '../config/config.schemas.js';
4
+ const date = (value) => (value ? formatArcaDateAsArgentineDate(value) : undefined);
5
+ export const CONFIG_GROUP_LABELS = {
6
+ credenciales: 'Credenciales',
7
+ defaults: 'Valores por defecto',
8
+ emisor: 'Datos del emisor (PDF)',
9
+ pdf: 'PDF',
10
+ };
11
+ export const CONFIG_FIELDS = [
12
+ { group: 'credenciales', key: 'cuit', label: 'CUIT del emisor', read: (c) => c.cuit, hint: '11 digitos' },
13
+ {
14
+ choices: arcliEnvironmentSchema.options,
15
+ group: 'credenciales',
16
+ key: 'entorno',
17
+ label: 'Entorno',
18
+ read: (c) => c.entornoPorDefecto,
19
+ },
20
+ {
21
+ group: 'credenciales',
22
+ key: 'cert.testing',
23
+ label: 'Certificado de testing',
24
+ path: true,
25
+ read: (c) => c.cert.testing,
26
+ },
27
+ {
28
+ group: 'credenciales',
29
+ key: 'key.testing',
30
+ label: 'Clave privada de testing',
31
+ path: true,
32
+ read: (c) => c.key.testing,
33
+ },
34
+ {
35
+ group: 'credenciales',
36
+ key: 'cert.produccion',
37
+ label: 'Certificado de produccion',
38
+ path: true,
39
+ read: (c) => c.cert.produccion,
40
+ },
41
+ {
42
+ group: 'credenciales',
43
+ key: 'key.produccion',
44
+ label: 'Clave privada de produccion',
45
+ path: true,
46
+ read: (c) => c.key.produccion,
47
+ },
48
+ {
49
+ group: 'defaults',
50
+ hint: 'numero',
51
+ key: 'puntoVenta',
52
+ label: 'Punto de venta',
53
+ read: (c) => c.puntoVentaPorDefecto?.toString(),
54
+ },
55
+ {
56
+ choices: arcliDefaultConceptSchema.options,
57
+ group: 'defaults',
58
+ key: 'concepto',
59
+ label: 'Concepto',
60
+ read: (c) => c.conceptoPorDefecto,
61
+ },
62
+ {
63
+ choices: arcliDefaultIvaConditionSchema.options,
64
+ group: 'defaults',
65
+ key: 'ivaReceptor',
66
+ label: 'IVA del receptor',
67
+ read: (c) => c.ivaReceptorPorDefecto,
68
+ },
69
+ {
70
+ choices: ['general', 'reducida', 'incrementada', 'cero', '5', '2.5'],
71
+ group: 'defaults',
72
+ key: 'alicuota',
73
+ label: 'Alicuota de IVA (A y B)',
74
+ read: (c) => c.alicuotaPorDefecto,
75
+ },
76
+ { group: 'defaults', hint: '22 digitos', key: 'cbu', label: 'CBU (FCE)', read: (c) => c.cbu },
77
+ { group: 'defaults', key: 'aliasCbu', label: 'Alias del CBU (FCE)', read: (c) => c.aliasCbu },
78
+ {
79
+ choices: ['si', 'no'],
80
+ group: 'defaults',
81
+ key: 'verificarFce',
82
+ label: 'Verificar regimen FCE del receptor',
83
+ read: (c) => (c.verificarFce === undefined ? undefined : c.verificarFce ? 'si' : 'no'),
84
+ },
85
+ {
86
+ choices: arcliPdfModeSchema.options,
87
+ group: 'pdf',
88
+ key: 'pdf',
89
+ label: 'Cuando generar el PDF',
90
+ read: (c) => c.pdf,
91
+ },
92
+ { group: 'pdf', key: 'pdfCarpeta', label: 'Carpeta de PDFs', path: true, read: (c) => c.pdfCarpeta },
93
+ { group: 'pdf', key: 'pdfNavegador', label: 'Navegador para PDFs', path: true, read: (c) => c.pdfNavegador },
94
+ { group: 'emisor', key: 'emisor.razonSocial', label: 'Razon social', read: (c) => c.emisor.razonSocial },
95
+ { group: 'emisor', key: 'emisor.domicilio', label: 'Domicilio comercial', read: (c) => c.emisor.domicilio },
96
+ {
97
+ group: 'emisor',
98
+ hint: 'D/MM/YYYY',
99
+ key: 'emisor.inicioActividades',
100
+ label: 'Inicio de actividades',
101
+ read: (c) => date(c.emisor.inicioActividades),
102
+ },
103
+ { group: 'emisor', key: 'emisor.iibb', label: 'Ingresos Brutos', read: (c) => c.emisor.iibb },
104
+ {
105
+ choices: arcliDefaultIvaConditionSchema.options,
106
+ group: 'emisor',
107
+ key: 'emisor.condicionIva',
108
+ label: 'Condicion de IVA',
109
+ read: (c) => c.emisor.condicionIva,
110
+ },
111
+ { group: 'emisor', key: 'emisor.logo', label: 'Logo (PNG o JPG)', path: true, read: (c) => c.emisor.logo },
112
+ ];
113
+ export function getConfigField(key) {
114
+ const field = CONFIG_FIELDS.find((candidate) => candidate.key === key);
115
+ if (!field) {
116
+ throw new Error(`Campo de config desconocido: ${key}`);
117
+ }
118
+ return field;
119
+ }
120
+ /** Valor para mostrar al lado del nombre. */
121
+ export function describeConfigValue(field, config) {
122
+ const value = field.read(config);
123
+ if (!value) {
124
+ return 'sin configurar';
125
+ }
126
+ return field.path ? maskPath(value) : value;
127
+ }
128
+ /** Lo minimo para emitir: sin esto el modo interactivo no puede crear la sesion con ARCA. */
129
+ export const REQUIRED_SETUP_KEYS = ['cuit', 'cert.testing', 'key.testing', 'puntoVenta'];
130
+ export function listMissingSetupKeys(config) {
131
+ return REQUIRED_SETUP_KEYS.filter((key) => !getConfigField(key).read(config));
132
+ }
133
+ //# sourceMappingURL=config-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-fields.js","sourceRoot":"","sources":["../../../src/modules/interactive/config-fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Periodos de servicio para repetir una factura: el mes actual o el anterior, en formato D/MM/YYYY. */
2
+ export interface ServicePeriod {
3
+ readonly from: string;
4
+ readonly to: string;
5
+ }
6
+ export declare function currentMonthPeriod(today: Date): ServicePeriod;
7
+ export declare function previousMonthPeriod(today: Date): ServicePeriod;
@@ -0,0 +1,13 @@
1
+ function format(value) {
2
+ return `${value.getDate()}/${String(value.getMonth() + 1).padStart(2, '0')}/${value.getFullYear()}`;
3
+ }
4
+ function monthPeriod(year, month) {
5
+ return { from: format(new Date(year, month, 1)), to: format(new Date(year, month + 1, 0)) };
6
+ }
7
+ export function currentMonthPeriod(today) {
8
+ return monthPeriod(today.getFullYear(), today.getMonth());
9
+ }
10
+ export function previousMonthPeriod(today) {
11
+ return monthPeriod(today.getFullYear(), today.getMonth() - 1);
12
+ }
13
+ //# sourceMappingURL=periods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"periods.js","sourceRoot":"","sources":["../../../src/modules/interactive/periods.ts"],"names":[],"mappings":"AAMA,SAAS,MAAM,CAAC,KAAW;IACzB,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;AACtG,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAW;IAC5C,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAW;IAC7C,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,50 @@
1
+ /** Tablas de referencia de ARCA (wsfe) que se pueden consultar con `arcli parametros <tabla>`. */
2
+ export declare const PARAMETER_TABLES: {
3
+ readonly alicuotas: "Alicuotas de IVA";
4
+ readonly comprobantes: "Tipos de comprobante";
5
+ readonly conceptos: "Conceptos";
6
+ readonly documentos: "Tipos de documento";
7
+ readonly 'iva-receptor': "Condiciones de IVA del receptor";
8
+ readonly monedas: "Monedas";
9
+ readonly opcionales: "Datos opcionales";
10
+ readonly 'puntos-venta': "Puntos de venta";
11
+ readonly tributos: "Tributos";
12
+ };
13
+ export type ParameterTable = keyof typeof PARAMETER_TABLES;
14
+ export declare const PARAMETER_TABLE_NAMES: ParameterTable[];
15
+ export interface ParameterEntry {
16
+ /** Dato propio de la tabla: clase de comprobante en iva-receptor, "bloqueado" en puntos de venta. */
17
+ readonly detail?: string;
18
+ readonly description: string;
19
+ readonly id: string;
20
+ /** yyyymmdd; sin definir si no vence. */
21
+ readonly validTo?: string;
22
+ }
23
+ export interface Quotation {
24
+ readonly currency: string;
25
+ /** yyyymmdd */
26
+ readonly date?: string;
27
+ readonly rate: number;
28
+ }
29
+ export interface ServerStatus {
30
+ readonly app: string;
31
+ readonly auth: string;
32
+ readonly db: string;
33
+ }
34
+ export interface SalesPoint {
35
+ readonly blocked: boolean;
36
+ /** yyyymmdd */
37
+ readonly closedOn?: string;
38
+ readonly emissionType: string;
39
+ readonly number: number;
40
+ }
41
+ export interface ParametersGateway {
42
+ getQuotation(currency: string): Promise<Quotation>;
43
+ getSalesPoints(): Promise<SalesPoint[]>;
44
+ getServerStatus(): Promise<ServerStatus>;
45
+ listTable(table: Exclude<ParameterTable, 'puntos-venta'>): Promise<ParameterEntry[]>;
46
+ }
47
+ export declare function resolveParameterTable(value: string): ParameterTable;
48
+ /** ARCA devuelve tambien valores dados de baja: solo quedan los vigentes a `today` (yyyymmdd). */
49
+ export declare function filterCurrentEntries(entries: readonly ParameterEntry[], today: string): ParameterEntry[];
50
+ export declare function salesPointToEntry(point: SalesPoint): ParameterEntry;
@@ -0,0 +1,34 @@
1
+ import { InputValidationError } from '../../lib/errors/app-error.js';
2
+ /** Tablas de referencia de ARCA (wsfe) que se pueden consultar con `arcli parametros <tabla>`. */
3
+ export const PARAMETER_TABLES = {
4
+ alicuotas: 'Alicuotas de IVA',
5
+ comprobantes: 'Tipos de comprobante',
6
+ conceptos: 'Conceptos',
7
+ documentos: 'Tipos de documento',
8
+ 'iva-receptor': 'Condiciones de IVA del receptor',
9
+ monedas: 'Monedas',
10
+ opcionales: 'Datos opcionales',
11
+ 'puntos-venta': 'Puntos de venta',
12
+ tributos: 'Tributos',
13
+ };
14
+ export const PARAMETER_TABLE_NAMES = Object.keys(PARAMETER_TABLES);
15
+ export function resolveParameterTable(value) {
16
+ const normalized = value.trim().toLowerCase();
17
+ if (normalized in PARAMETER_TABLES) {
18
+ return normalized;
19
+ }
20
+ throw new InputValidationError(`La tabla "${value}" no existe. Use una de estas: ${PARAMETER_TABLE_NAMES.join(', ')}, o "cotizacion <moneda>".`);
21
+ }
22
+ /** ARCA devuelve tambien valores dados de baja: solo quedan los vigentes a `today` (yyyymmdd). */
23
+ export function filterCurrentEntries(entries, today) {
24
+ return entries.filter((entry) => !entry.validTo || entry.validTo >= today);
25
+ }
26
+ export function salesPointToEntry(point) {
27
+ return {
28
+ description: point.emissionType,
29
+ detail: point.blocked ? 'bloqueado' : point.closedOn ? `de baja desde ${point.closedOn}` : 'habilitado',
30
+ id: String(point.number),
31
+ validTo: point.closedOn,
32
+ };
33
+ }
34
+ //# sourceMappingURL=parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/modules/parameters/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,kGAAkG;AAClG,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,YAAY,EAAE,sBAAsB;IACpC,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,oBAAoB;IAChC,cAAc,EAAE,iCAAiC;IACjD,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,kBAAkB;IAC9B,cAAc,EAAE,iBAAiB;IACjC,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAqB,CAAC;AAuCvF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE9C,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;QACnC,OAAO,UAA4B,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,oBAAoB,CAC5B,aAAa,KAAK,kCAAkC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CACjH,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,oBAAoB,CAAC,OAAkC,EAAE,KAAa;IACpF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY;QACvG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,KAAK,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type ParameterEntry, type ParameterTable, type Quotation } from './parameters';
2
+ import type { StatusReport } from './status';
3
+ type Environment = 'produccion' | 'testing';
4
+ export declare function formatParameterTablesAsText(): string;
5
+ export declare function formatParameterTablesAsJson(): string;
6
+ export declare function formatParameterEntriesAsText(table: ParameterTable, entries: readonly ParameterEntry[], environment: Environment): string;
7
+ export declare function formatParameterEntriesAsJson(table: ParameterTable, entries: readonly ParameterEntry[], environment: Environment): string;
8
+ export declare function formatQuotationAsText(quotation: Quotation, environment: Environment): string;
9
+ export declare function formatQuotationAsJson(quotation: Quotation, environment: Environment): string;
10
+ export declare function formatStatusAsText(report: StatusReport): string;
11
+ export declare function formatStatusAsJson(report: StatusReport): string;
12
+ export {};