arcli 1.8.0 → 2.1.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 +110 -1
- package/README.md +17 -16
- package/dist/cli/arca-runtime.d.ts +20 -0
- package/dist/cli/arca-runtime.js +42 -0
- package/dist/cli/arca-runtime.js.map +1 -0
- package/dist/cli/commands/billing.command.batch.d.ts +15 -5
- package/dist/cli/commands/billing.command.batch.js +28 -11
- package/dist/cli/commands/billing.command.batch.js.map +1 -1
- package/dist/cli/commands/billing.command.interactive-preview.js +4 -1
- package/dist/cli/commands/billing.command.interactive-preview.js.map +1 -1
- package/dist/cli/commands/billing.command.options.js +18 -16
- package/dist/cli/commands/billing.command.options.js.map +1 -1
- package/dist/cli/commands/billing.command.output.d.ts +4 -0
- package/dist/cli/commands/billing.command.output.js +3 -2
- package/dist/cli/commands/billing.command.output.js.map +1 -1
- package/dist/cli/commands/billing.command.parser.d.ts +7 -0
- package/dist/cli/commands/billing.command.parser.js +85 -43
- 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/billing.command.shared.d.ts +22 -3
- package/dist/cli/commands/billing.command.shared.js +84 -47
- package/dist/cli/commands/billing.command.shared.js.map +1 -1
- package/dist/cli/commands/config.command.d.ts +3 -4
- package/dist/cli/commands/config.command.js +43 -41
- package/dist/cli/commands/config.command.js.map +1 -1
- package/dist/cli/commands/cuit-argument.d.ts +2 -0
- package/dist/cli/commands/cuit-argument.js +10 -0
- package/dist/cli/commands/cuit-argument.js.map +1 -0
- package/dist/cli/commands/fce-obligation.command.js +6 -13
- package/dist/cli/commands/fce-obligation.command.js.map +1 -1
- package/dist/cli/commands/interactive.command.js +8 -6
- package/dist/cli/commands/interactive.command.js.map +1 -1
- package/dist/cli/commands/padron.command.d.ts +2 -0
- package/dist/cli/commands/padron.command.js +47 -0
- package/dist/cli/commands/padron.command.js.map +1 -0
- package/dist/cli/commands/parameters.command.js +8 -7
- package/dist/cli/commands/parameters.command.js.map +1 -1
- package/dist/cli/commands/pdf.command.js +17 -30
- package/dist/cli/commands/pdf.command.js.map +1 -1
- package/dist/cli/commands/vouchers.command.js +9 -9
- package/dist/cli/commands/vouchers.command.js.map +1 -1
- package/dist/cli/error-output.d.ts +25 -0
- package/dist/cli/error-output.js +86 -0
- package/dist/cli/error-output.js.map +1 -0
- package/dist/cli/global-options.d.ts +26 -0
- package/dist/cli/global-options.js +56 -0
- package/dist/cli/global-options.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.d.ts +2 -0
- package/dist/cli/help.js +78 -31
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/ignored-global-options.d.ts +6 -0
- package/dist/cli/ignored-global-options.js +33 -0
- package/dist/cli/ignored-global-options.js.map +1 -0
- package/dist/cli/index.js +16 -26
- 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 -2
- package/dist/cli/interactive/config.flow.js +4 -3
- package/dist/cli/interactive/config.flow.js.map +1 -1
- package/dist/cli/interactive/interactive-mode.js +108 -9
- package/dist/cli/interactive/interactive-mode.js.map +1 -1
- package/dist/cli/interactive/invoice-picker.js +3 -2
- package/dist/cli/interactive/invoice-picker.js.map +1 -1
- package/dist/cli/interactive/invoice.flow.d.ts +2 -0
- package/dist/cli/interactive/invoice.flow.js +4 -3
- package/dist/cli/interactive/invoice.flow.js.map +1 -1
- package/dist/cli/interactive/note.flow.d.ts +4 -0
- package/dist/cli/interactive/note.flow.js +25 -11
- 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 +3 -1
- package/dist/cli/interactive/prompts.js +8 -4
- package/dist/cli/interactive/prompts.js.map +1 -1
- package/dist/cli/interactive/receiver-padron.d.ts +29 -0
- package/dist/cli/interactive/receiver-padron.js +53 -0
- package/dist/cli/interactive/receiver-padron.js.map +1 -0
- package/dist/cli/interactive/repeat.flow.js +25 -10
- package/dist/cli/interactive/repeat.flow.js.map +1 -1
- package/dist/cli/interactive/session.js +4 -1
- package/dist/cli/interactive/session.js.map +1 -1
- 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/program.d.ts +5 -1
- package/dist/cli/program.js +8 -2
- package/dist/cli/program.js.map +1 -1
- 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 +4 -1
- package/dist/lib/errors/app-error.js +5 -1
- 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/files/write-new-file.d.ts +5 -0
- package/dist/lib/files/write-new-file.js +30 -0
- package/dist/lib/files/write-new-file.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/links.d.ts +2 -0
- package/dist/lib/links.js +2 -0
- package/dist/lib/links.js.map +1 -1
- 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/certificate.d.ts +5 -1
- package/dist/lib/security/certificate.js +10 -7
- package/dist/lib/security/certificate.js.map +1 -1
- package/dist/lib/security/pem.js +5 -1
- package/dist/lib/security/pem.js.map +1 -1
- package/dist/modules/billing/billing-response.js +15 -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 +13 -1
- package/dist/modules/billing/billing.batch.js.map +1 -1
- package/dist/modules/billing/billing.date-range.js +31 -9
- package/dist/modules/billing/billing.date-range.js.map +1 -1
- package/dist/modules/billing/billing.display.js +9 -5
- 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.json-input.d.ts +58 -0
- package/dist/modules/billing/billing.json-input.js +279 -0
- package/dist/modules/billing/billing.json-input.js.map +1 -0
- package/dist/modules/billing/billing.padron.d.ts +14 -0
- package/dist/modules/billing/billing.padron.js +55 -0
- package/dist/modules/billing/billing.padron.js.map +1 -0
- package/dist/modules/billing/billing.schemas.d.ts +5 -0
- package/dist/modules/billing/billing.schemas.js +19 -5
- package/dist/modules/billing/billing.schemas.js.map +1 -1
- package/dist/modules/billing/billing.serialize.d.ts +1 -0
- package/dist/modules/billing/billing.serialize.js +5 -12
- package/dist/modules/billing/billing.serialize.js.map +1 -1
- package/dist/modules/billing/billing.service.d.ts +3 -0
- package/dist/modules/billing/billing.service.js +31 -3
- package/dist/modules/billing/billing.service.js.map +1 -1
- package/dist/modules/billing/billing.text.js +4 -12
- package/dist/modules/billing/billing.text.js.map +1 -1
- package/dist/modules/billing/billing.types.internal.d.ts +10 -2
- package/dist/modules/billing/billing.validation.js +4 -0
- package/dist/modules/billing/billing.validation.js.map +1 -1
- package/dist/modules/config/certificate-expiry.d.ts +42 -0
- package/dist/modules/config/certificate-expiry.js +91 -0
- package/dist/modules/config/certificate-expiry.js.map +1 -0
- package/dist/modules/config/config-doctor.d.ts +5 -4
- package/dist/modules/config/config-doctor.js +8 -16
- package/dist/modules/config/config-doctor.js.map +1 -1
- package/dist/modules/config/config-value-parser.d.ts +1 -1
- package/dist/modules/config/config-value-parser.js +24 -20
- package/dist/modules/config/config-value-parser.js.map +1 -1
- package/dist/modules/config/config.presenter.d.ts +2 -0
- package/dist/modules/config/config.presenter.js +6 -0
- 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 +3 -0
- package/dist/modules/config/config.schemas.js.map +1 -1
- package/dist/modules/config/config.sections.js +6 -1
- package/dist/modules/config/config.sections.js.map +1 -1
- package/dist/modules/config/config.service.d.ts +5 -0
- package/dist/modules/config/config.service.js +62 -14
- package/dist/modules/config/config.service.js.map +1 -1
- package/dist/modules/examples/examples.d.ts +5 -0
- package/dist/modules/examples/examples.js +34 -29
- 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.js +8 -1
- package/dist/modules/interactive/config-fields.js.map +1 -1
- package/dist/modules/interactive/equivalent-command.js +8 -10
- 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/padron/padron.d.ts +46 -0
- package/dist/modules/padron/padron.js +24 -0
- package/dist/modules/padron/padron.js.map +1 -0
- package/dist/modules/padron/padron.presenter.d.ts +7 -0
- package/dist/modules/padron/padron.presenter.js +49 -0
- package/dist/modules/padron/padron.presenter.js.map +1 -0
- 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/parameters/parameters.presenter.js +5 -2
- package/dist/modules/parameters/parameters.presenter.js.map +1 -1
- 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 +21 -5
- 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.presenter.d.ts +3 -3
- package/dist/modules/vouchers/voucher-history.presenter.js +27 -7
- package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -1
- package/dist/services/arca/arca-billing.gateway.d.ts +8 -2
- package/dist/services/arca/arca-billing.gateway.js +17 -2
- package/dist/services/arca/arca-billing.gateway.js.map +1 -1
- package/dist/services/arca/arca-client.factory.d.ts +2 -1
- package/dist/services/arca/arca-client.factory.js +5 -0
- package/dist/services/arca/arca-client.factory.js.map +1 -1
- package/dist/services/arca/arca-context.resolver.d.ts +11 -0
- package/dist/services/arca/arca-context.resolver.js +17 -1
- package/dist/services/arca/arca-context.resolver.js.map +1 -1
- package/dist/services/arca/arca-padron.gateway.d.ts +9 -0
- package/dist/services/arca/arca-padron.gateway.js +104 -0
- package/dist/services/arca/arca-padron.gateway.js.map +1 -0
- 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.d.ts +6 -3
- package/dist/services/pdf/pdf-exporter.js +13 -10
- package/dist/services/pdf/pdf-exporter.js.map +1 -1
- package/dist/ui/components/certificateBanner.d.ts +11 -0
- package/dist/ui/components/certificateBanner.js +9 -0
- package/dist/ui/components/certificateBanner.js.map +1 -0
- package/dist/ui/components/index.d.ts +1 -0
- package/dist/ui/components/index.js +1 -0
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/components/statusBar.d.ts +15 -4
- package/dist/ui/components/statusBar.js +16 -11
- package/dist/ui/components/statusBar.js.map +1 -1
- package/dist/ui/presenters/config.presenter.d.ts +1 -1
- package/dist/ui/presenters/config.presenter.js +1 -1
- package/dist/ui/presenters/config.presenter.js.map +1 -1
- package/dist/ui/presenters/errors.presenter.js +8 -4
- package/dist/ui/presenters/errors.presenter.js.map +1 -1
- package/dist/ui/presenters/errors.zod-presenter.js +5 -26
- package/dist/ui/presenters/errors.zod-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 +11 -0
- package/dist/ui/stream/terminal-stream.js +27 -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 +65 -45
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.service.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAA6B,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"billing.service.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,18 +18,6 @@ export function formatBillingResultAsText(result, options = {}) {
|
|
|
18
18
|
...(options.previewShown ? [] : formatEnvironmentBanner(options.environment ?? result.environment)),
|
|
19
19
|
...(options.previewShown ? [] : formatWarningsPanel(result)),
|
|
20
20
|
];
|
|
21
|
-
if (options.raw) {
|
|
22
|
-
if (result.dryRun) {
|
|
23
|
-
return [...environmentLines, formatPayloadPreview(result)].join('\n\n');
|
|
24
|
-
}
|
|
25
|
-
const lines = [
|
|
26
|
-
contentPanel('Respuesta bruta', renderObject(formatRawBillingResponse(result)), 'wide', 'subtle', 'left', 'data'),
|
|
27
|
-
];
|
|
28
|
-
if (!options.previewShown) {
|
|
29
|
-
lines.unshift(formatPayloadPreview(result));
|
|
30
|
-
}
|
|
31
|
-
return [...environmentLines, ...lines].join('\n\n');
|
|
32
|
-
}
|
|
33
21
|
if (result.dryRun) {
|
|
34
22
|
return [...environmentLines, formatPayloadPreview(result)].join('\n\n');
|
|
35
23
|
}
|
|
@@ -51,6 +39,10 @@ export function formatBillingResultAsText(result, options = {}) {
|
|
|
51
39
|
if (suggestions.length > 0) {
|
|
52
40
|
lines.push(contentPanel('Sugerencias', suggestions.map((item) => `• ${item}`).join('\n'), 'wide', 'warning', 'left', 'tip'));
|
|
53
41
|
}
|
|
42
|
+
// `--bruto` agrega la respuesta cruda al final; el resumen se muestra igual.
|
|
43
|
+
if (options.raw) {
|
|
44
|
+
lines.push(contentPanel('Respuesta bruta', renderObject(formatRawBillingResponse(result)), 'wide', 'subtle', 'left', 'data'));
|
|
45
|
+
}
|
|
54
46
|
return lines.join('\n\n');
|
|
55
47
|
}
|
|
56
48
|
//# sourceMappingURL=billing.text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.text.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAS/D,SAAS,qBAAqB,CAAC,aAAgC;IAC7D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA8B;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC;KAC/G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAA8B,EAAE,UAA8B,EAAE;IACxG,MAAM,gBAAgB,GAAG;QACvB,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QACnG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;KAC7D,CAAC;IAEF,IAAI,
|
|
1
|
+
{"version":3,"file":"billing.text.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.text.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { CreateVoucherResultDto } from '@arcasdk/core/lib/application/dto/electronic-billing';
|
|
2
|
-
import type { INextVoucher } from '@arcasdk/core/lib/domain/types/voucher.types';
|
|
2
|
+
import type { INextVoucher, IVoucher } from '@arcasdk/core/lib/domain/types/voucher.types';
|
|
3
3
|
import type { PdfOutcome } from '../pdf/pdf.types';
|
|
4
4
|
import type { VoucherKindDefinition } from './billing.types';
|
|
5
5
|
export interface BillingGateway {
|
|
6
|
-
|
|
6
|
+
/** Emite en ARCA. Un error aca puede haber dejado el comprobante autorizado. */
|
|
7
|
+
createVoucher(voucher: IVoucher): Promise<CreateVoucherResultDto>;
|
|
8
|
+
/** Autentica y pide el ultimo numero autorizado. Un error aca no emitio nada. */
|
|
9
|
+
getNextVoucherNumber(pointOfSale: number, voucherType: number): Promise<number>;
|
|
7
10
|
getQuotation(currencyCode: string): Promise<number>;
|
|
8
11
|
}
|
|
9
12
|
export interface BillingResponseSummary {
|
|
@@ -24,6 +27,11 @@ export interface BillingExecutionResult {
|
|
|
24
27
|
readonly payload: INextVoucher;
|
|
25
28
|
/** Solo si se intento generar el PDF. */
|
|
26
29
|
readonly pdf?: PdfOutcome;
|
|
30
|
+
/** Solo para mostrar: ARCA no recibe el nombre del receptor. */
|
|
31
|
+
readonly receiver?: {
|
|
32
|
+
readonly ivaConditionFromPadron: boolean;
|
|
33
|
+
readonly name?: string;
|
|
34
|
+
};
|
|
27
35
|
readonly response: BillingResponseSummary;
|
|
28
36
|
readonly voucherKind: VoucherKindDefinition;
|
|
29
37
|
readonly warnings?: readonly string[];
|
|
@@ -29,6 +29,10 @@ export function validateConceptDateInputs(input, voucherKind) {
|
|
|
29
29
|
if (hasPartialServiceDate) {
|
|
30
30
|
throw new InputValidationError('Si informa fechas de servicio, debe enviar ambas: --servicio-desde y --servicio-hasta.');
|
|
31
31
|
}
|
|
32
|
+
// --dia arma el fin del servicio desde hoy; con una fecha explicita no se usaria y nadie se enteraria.
|
|
33
|
+
if (input.dueDay && (input.billingDate || input.serviceEndDate)) {
|
|
34
|
+
throw new InputValidationError('--dia no se combina con --fecha ni con --servicio-hasta: con esas fechas no se usa. Quite --dia o esas fechas.');
|
|
35
|
+
}
|
|
32
36
|
}
|
|
33
37
|
export function validateDocumentIdentity(input, voucherKind) {
|
|
34
38
|
if (input.documentType === 'consumidor-final') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.validation.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"billing.validation.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { AppError } from '../../lib/errors/app-error';
|
|
2
|
+
import { type CertificateExpiry } from '../../lib/security/certificate';
|
|
3
|
+
import { type ArcliEnvironment } from './config.schemas';
|
|
4
|
+
/** A menos de estos dias de vencer, el certificado se avisa en cada comando y en `config revisar`. */
|
|
5
|
+
export declare const CERTIFICATE_EXPIRY_WARNING_DAYS = 30;
|
|
6
|
+
/** Aviso de un certificado por vencer o vencido. Sin aviso, el certificado esta lejos de vencer (o no se pudo leer). */
|
|
7
|
+
export interface CertificateExpiryNotice {
|
|
8
|
+
readonly daysRemaining: number;
|
|
9
|
+
readonly environment: ArcliEnvironment;
|
|
10
|
+
readonly expired: boolean;
|
|
11
|
+
/** dd/mm/aaaa, en hora argentina. */
|
|
12
|
+
readonly expiresOn: string;
|
|
13
|
+
/** Una linea, con el link a la guia: va tal cual en `avisos` del JSON. */
|
|
14
|
+
readonly message: string;
|
|
15
|
+
/** El aviso sin el link, para el banner (que muestra el link en su propia linea). */
|
|
16
|
+
readonly summary: string;
|
|
17
|
+
}
|
|
18
|
+
/** Fecha de vencimiento como dd/mm/aaaa del dia en Argentina. */
|
|
19
|
+
export declare function formatCertificateExpiryDate(expiresAt: Date): string;
|
|
20
|
+
export declare function describeCertificateExpiry(expiry: CertificateExpiry, environment: ArcliEnvironment): CertificateExpiryNotice | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Aviso del certificado ya leido (PEM). Si no se puede leer la fecha, no hay aviso: el error de un certificado
|
|
23
|
+
* invalido lo informa el flujo de siempre (WSAA o `config revisar`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function inspectCertificateExpiry(pemContent: string, environment: ArcliEnvironment, now?: Date): CertificateExpiryNotice | undefined;
|
|
26
|
+
export interface ConfiguredCertificatesOptions {
|
|
27
|
+
readonly activeEnvironment: ArcliEnvironment;
|
|
28
|
+
/** El PEM del entorno activo, si ya se leyo para el contexto: no se vuelve a leer el archivo. */
|
|
29
|
+
readonly activePem?: string;
|
|
30
|
+
readonly now?: Date;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Avisos de todos los certificados configurados (testing y produccion), sin importar con cual se trabaja: quien
|
|
34
|
+
* factura en testing tambien tiene que enterarse de que vence el de produccion. El del entorno activo va primero.
|
|
35
|
+
* Un certificado sin configurar o que no se puede leer no avisa.
|
|
36
|
+
*/
|
|
37
|
+
export declare function inspectConfiguredCertificates(certPaths: Partial<Record<ArcliEnvironment, string>>, options: ConfiguredCertificatesOptions): CertificateExpiryNotice[];
|
|
38
|
+
/** Con el certificado vencido WSAA rechaza el login: se corta antes, sin ir a ARCA. */
|
|
39
|
+
export declare class CertificateExpiredError extends AppError {
|
|
40
|
+
readonly notice: CertificateExpiryNotice;
|
|
41
|
+
constructor(notice: CertificateExpiryNotice);
|
|
42
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { formatArcaDateAsArgentineDate, formatDateAsArcaDate } from '../../lib/dates/arca-date.js';
|
|
3
|
+
import { AppError } from '../../lib/errors/app-error.js';
|
|
4
|
+
import { CERTIFICATE_GUIDE_URL } from '../../lib/links.js';
|
|
5
|
+
import { isCertificateExpiringSoon, readCertificateExpiry, } from '../../lib/security/certificate.js';
|
|
6
|
+
import { arcliEnvironmentSchema } from './config.schemas.js';
|
|
7
|
+
/** A menos de estos dias de vencer, el certificado se avisa en cada comando y en `config revisar`. */
|
|
8
|
+
export const CERTIFICATE_EXPIRY_WARNING_DAYS = 30;
|
|
9
|
+
/** Fecha de vencimiento como dd/mm/aaaa del dia en Argentina. */
|
|
10
|
+
export function formatCertificateExpiryDate(expiresAt) {
|
|
11
|
+
return formatArcaDateAsArgentineDate(formatDateAsArcaDate(expiresAt));
|
|
12
|
+
}
|
|
13
|
+
function formatDaysRemaining(days) {
|
|
14
|
+
if (days <= 0) {
|
|
15
|
+
return 'hoy';
|
|
16
|
+
}
|
|
17
|
+
return days === 1 ? 'en 1 día' : `en ${days} días`;
|
|
18
|
+
}
|
|
19
|
+
export function describeCertificateExpiry(expiry, environment) {
|
|
20
|
+
if (!expiry.isExpired && !isCertificateExpiringSoon(expiry, CERTIFICATE_EXPIRY_WARNING_DAYS)) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const expiresOn = formatCertificateExpiryDate(expiry.expiresAt);
|
|
24
|
+
const status = expiry.isExpired
|
|
25
|
+
? `venció el ${expiresOn}`
|
|
26
|
+
: `vence el ${expiresOn} (${formatDaysRemaining(expiry.daysRemaining)})`;
|
|
27
|
+
const summary = `El certificado de ${environment} ${status}.`;
|
|
28
|
+
return {
|
|
29
|
+
daysRemaining: expiry.daysRemaining,
|
|
30
|
+
environment,
|
|
31
|
+
expired: expiry.isExpired,
|
|
32
|
+
expiresOn,
|
|
33
|
+
message: `${summary} Renovalo: ${CERTIFICATE_GUIDE_URL}`,
|
|
34
|
+
summary,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Aviso del certificado ya leido (PEM). Si no se puede leer la fecha, no hay aviso: el error de un certificado
|
|
39
|
+
* invalido lo informa el flujo de siempre (WSAA o `config revisar`).
|
|
40
|
+
*/
|
|
41
|
+
export function inspectCertificateExpiry(pemContent, environment, now = new Date()) {
|
|
42
|
+
try {
|
|
43
|
+
return describeCertificateExpiry(readCertificateExpiry(pemContent, now), environment);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Avisos de todos los certificados configurados (testing y produccion), sin importar con cual se trabaja: quien
|
|
51
|
+
* factura en testing tambien tiene que enterarse de que vence el de produccion. El del entorno activo va primero.
|
|
52
|
+
* Un certificado sin configurar o que no se puede leer no avisa.
|
|
53
|
+
*/
|
|
54
|
+
export function inspectConfiguredCertificates(certPaths, options) {
|
|
55
|
+
const environments = arcliEnvironmentSchema.options.filter((environment) => environment !== options.activeEnvironment);
|
|
56
|
+
const notices = [];
|
|
57
|
+
for (const environment of [options.activeEnvironment, ...environments]) {
|
|
58
|
+
const pem = environment === options.activeEnvironment ? options.activePem : undefined;
|
|
59
|
+
const content = pem ?? readCertificateQuietly(certPaths[environment]);
|
|
60
|
+
const notice = content === undefined ? undefined : inspectCertificateExpiry(content, environment, options.now);
|
|
61
|
+
if (notice) {
|
|
62
|
+
notices.push(notice);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return notices;
|
|
66
|
+
}
|
|
67
|
+
function readCertificateQuietly(filePath) {
|
|
68
|
+
if (!filePath) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
return readFileSync(filePath, 'utf8');
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Con el certificado vencido WSAA rechaza el login: se corta antes, sin ir a ARCA. */
|
|
79
|
+
export class CertificateExpiredError extends AppError {
|
|
80
|
+
notice;
|
|
81
|
+
constructor(notice) {
|
|
82
|
+
super(`El certificado de ${notice.environment} venció el ${notice.expiresOn}: ARCA no lo acepta.`, {
|
|
83
|
+
code: 'CERTIFICATE_EXPIRED',
|
|
84
|
+
details: { entorno: notice.environment, vencimiento: notice.expiresOn },
|
|
85
|
+
suggestion: `Generá uno nuevo siguiendo la guía y cargalo con "arcli config establecer cert.${notice.environment} <ruta>": ${CERTIFICATE_GUIDE_URL}`,
|
|
86
|
+
});
|
|
87
|
+
this.name = 'CertificateExpiredError';
|
|
88
|
+
this.notice = notice;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=certificate-expiry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificate-expiry.js","sourceRoot":"","sources":["../../../src/modules/config/certificate-expiry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ArcliConfig } from './config.schemas';
|
|
1
|
+
import type { ArcliConfig, ArcliEnvironment } from './config.schemas';
|
|
3
2
|
export interface ConfigDoctorReport {
|
|
4
3
|
readonly checks: ReadonlyArray<{
|
|
5
4
|
readonly category: 'error' | 'ok' | 'warning';
|
|
@@ -8,8 +7,10 @@ export interface ConfigDoctorReport {
|
|
|
8
7
|
}>;
|
|
9
8
|
readonly ok: boolean;
|
|
10
9
|
}
|
|
10
|
+
/** Lo que valida `ArcaContextResolver` para un entorno: CUIT, certificado y clave legibles. */
|
|
11
11
|
export interface ConfigDoctorRuntimeCheck {
|
|
12
|
+
readonly environment: ArcliEnvironment;
|
|
13
|
+
/** Sin error, el entorno esta listo. */
|
|
12
14
|
readonly error?: string;
|
|
13
|
-
readonly validation?: ArcaRuntimeValidation;
|
|
14
15
|
}
|
|
15
|
-
export declare function buildConfigDoctorReport(config: ArcliConfig,
|
|
16
|
+
export declare function buildConfigDoctorReport(config: ArcliConfig, runtimeChecks?: readonly ConfigDoctorRuntimeCheck[]): ConfigDoctorReport;
|
|
@@ -2,7 +2,7 @@ import { CERTIFICATE_GUIDE_URL } from '../../lib/links.js';
|
|
|
2
2
|
import { isCertificateExpiringSoon, readCertificateExpiry } from '../../lib/security/certificate.js';
|
|
3
3
|
import { readPemFile } from '../../lib/security/pem.js';
|
|
4
4
|
import { listMissingIssuerKeys } from '../pdf/pdf-issuer.js';
|
|
5
|
-
|
|
5
|
+
import { CERTIFICATE_EXPIRY_WARNING_DAYS, formatCertificateExpiryDate } from './certificate-expiry.js';
|
|
6
6
|
function buildCertificateExpiryCheck(label, certPath) {
|
|
7
7
|
if (!certPath) {
|
|
8
8
|
return null;
|
|
@@ -10,7 +10,7 @@ function buildCertificateExpiryCheck(label, certPath) {
|
|
|
10
10
|
try {
|
|
11
11
|
const pemContent = readPemFile(certPath, 'certificado');
|
|
12
12
|
const expiry = readCertificateExpiry(pemContent);
|
|
13
|
-
const formattedDate = expiry.expiresAt
|
|
13
|
+
const formattedDate = formatCertificateExpiryDate(expiry.expiresAt);
|
|
14
14
|
if (expiry.isExpired) {
|
|
15
15
|
return { category: 'error', detail: `El certificado vencio el ${formattedDate}.`, label };
|
|
16
16
|
}
|
|
@@ -31,7 +31,7 @@ function buildCertificateExpiryCheck(label, certPath) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
export function buildConfigDoctorReport(config,
|
|
34
|
+
export function buildConfigDoctorReport(config, runtimeChecks = []) {
|
|
35
35
|
const checks = [];
|
|
36
36
|
const conditionalChecks = [
|
|
37
37
|
{
|
|
@@ -117,19 +117,11 @@ export function buildConfigDoctorReport(config, runtimeCheck) {
|
|
|
117
117
|
label: 'PDF',
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
else if (runtimeCheck?.error) {
|
|
128
|
-
checks.push({
|
|
129
|
-
category: 'error',
|
|
130
|
-
detail: runtimeCheck.error,
|
|
131
|
-
label: 'Revision activa',
|
|
132
|
-
});
|
|
120
|
+
for (const runtimeCheck of runtimeChecks) {
|
|
121
|
+
const label = `Validacion ${runtimeCheck.environment}`;
|
|
122
|
+
checks.push(runtimeCheck.error
|
|
123
|
+
? { category: 'error', detail: runtimeCheck.error, label }
|
|
124
|
+
: { category: 'ok', detail: `Configuracion valida para ${runtimeCheck.environment}.`, label });
|
|
133
125
|
}
|
|
134
126
|
return {
|
|
135
127
|
checks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-doctor.js","sourceRoot":"","sources":["../../../src/modules/config/config-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-doctor.js","sourceRoot":"","sources":["../../../src/modules/config/config-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type CanonicalConfigKey = 'alicuotaPorDefecto' | 'aliasCbu' | 'comprobantesPorLista' | 'cbu' | 'cert.produccion' | 'cert.testing' | 'conceptoPorDefecto' | 'cotizacionPorDefecto' | 'cuit' | 'emisor.condicionIva' | 'emisor.domicilio' | 'emisor.iibb' | 'emisor.inicioActividades' | 'emisor.logo' | 'emisor.razonSocial' | 'entornoPorDefecto' | 'ivaReceptorPorDefecto' | 'key.produccion' | 'key.testing' | 'monedaPorDefecto' | 'output.emitirPorDefecto' | 'output.jsonPorDefecto' | 'output.brutoPorDefecto' | 'pdf' | 'pdfCarpeta' | 'pdfNavegador' | 'puntoVentaPorDefecto' | 'ticketPath' | 'verificarFce';
|
|
1
|
+
export type CanonicalConfigKey = 'alicuotaPorDefecto' | 'aliasCbu' | 'comprobantesPorLista' | 'cbu' | 'cert.produccion' | 'cert.testing' | 'conceptoPorDefecto' | 'cotizacionPorDefecto' | 'cuit' | 'emisor.condicionIva' | 'emisor.domicilio' | 'emisor.iibb' | 'emisor.inicioActividades' | 'emisor.logo' | 'emisor.razonSocial' | 'entornoPorDefecto' | 'ivaReceptorPorDefecto' | 'key.produccion' | 'key.testing' | 'monedaPorDefecto' | 'output.emitirPorDefecto' | 'output.jsonPorDefecto' | 'output.brutoPorDefecto' | 'pdf' | 'pdfCarpeta' | 'pdfNavegador' | 'puntoVentaPorDefecto' | 'ticketPath' | 'verificarFce' | 'consultarPadron';
|
|
2
2
|
export declare function parseConfigValue(key: CanonicalConfigKey, value: string): boolean | number | string;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import { parseArgentineDateInputAsArcaDate } from '../../lib/dates/arca-date.js';
|
|
4
|
+
import { InputValidationError } from '../../lib/errors/app-error.js';
|
|
5
|
+
import { EXCHANGE_RATE_DECIMALS, parseArgentineAmount } from '../../lib/numbers/argentine-amount.js';
|
|
4
6
|
import { readPemFile } from '../../lib/security/pem.js';
|
|
5
7
|
import { IVA_RATE_HINT } from '../billing/billing.schemas.js';
|
|
6
8
|
import { MAX_RECENT_VOUCHERS } from '../vouchers/voucher-history.js';
|
|
@@ -13,80 +15,81 @@ function parseBoolean(value) {
|
|
|
13
15
|
if (normalizedValue === 'false' || normalizedValue === '0' || normalizedValue === 'no') {
|
|
14
16
|
return false;
|
|
15
17
|
}
|
|
16
|
-
throw new
|
|
18
|
+
throw new InputValidationError(`El valor "${value}" no es un booleano valido. Use true/false, si/no o 1/0.`);
|
|
17
19
|
}
|
|
18
20
|
function parseNonEmptyString(value) {
|
|
19
21
|
const normalizedValue = value.trim();
|
|
20
22
|
if (!normalizedValue) {
|
|
21
|
-
throw new
|
|
23
|
+
throw new InputValidationError('El valor no puede estar vacio.');
|
|
22
24
|
}
|
|
23
25
|
return normalizedValue;
|
|
24
26
|
}
|
|
25
27
|
function parseIvaRate(value) {
|
|
26
28
|
const result = arcliDefaultIvaRateSchema.safeParse(value);
|
|
27
29
|
if (!result.success) {
|
|
28
|
-
throw new
|
|
30
|
+
throw new InputValidationError(`La alicuota "${value}" no es valida. Use ${IVA_RATE_HINT}.`);
|
|
29
31
|
}
|
|
30
32
|
return result.data;
|
|
31
33
|
}
|
|
32
34
|
function parseCbu(value) {
|
|
33
35
|
const normalizedValue = value.trim();
|
|
34
36
|
if (!/^\d{22}$/.test(normalizedValue)) {
|
|
35
|
-
throw new
|
|
37
|
+
throw new InputValidationError(`El CBU "${value}" no es valido: debe tener 22 digitos.`);
|
|
36
38
|
}
|
|
37
39
|
return normalizedValue;
|
|
38
40
|
}
|
|
39
41
|
function parseCbuAlias(value) {
|
|
40
42
|
const normalizedValue = value.trim();
|
|
41
43
|
if (!/^[A-Za-z0-9.-]{6,20}$/.test(normalizedValue)) {
|
|
42
|
-
throw new
|
|
44
|
+
throw new InputValidationError(`El alias "${value}" no es valido: debe tener entre 6 y 20 letras, numeros, puntos o guiones.`);
|
|
43
45
|
}
|
|
44
46
|
return normalizedValue;
|
|
45
47
|
}
|
|
46
48
|
function parsePositiveInteger(value) {
|
|
47
49
|
const parsedValue = Number.parseInt(value.trim(), 10);
|
|
48
50
|
if (!Number.isInteger(parsedValue) || parsedValue <= 0) {
|
|
49
|
-
throw new
|
|
51
|
+
throw new InputValidationError(`El valor "${value}" no es un entero positivo valido.`);
|
|
50
52
|
}
|
|
51
53
|
return parsedValue;
|
|
52
54
|
}
|
|
53
55
|
function parseRecentCount(value) {
|
|
54
56
|
const parsedValue = Number(value.trim());
|
|
55
57
|
if (!Number.isInteger(parsedValue) || parsedValue < 1 || parsedValue > MAX_RECENT_VOUCHERS) {
|
|
56
|
-
throw new
|
|
58
|
+
throw new InputValidationError(`La cantidad "${value}" no es valida: tiene que ser un numero entre 1 y ${MAX_RECENT_VOUCHERS}.`);
|
|
57
59
|
}
|
|
58
60
|
return parsedValue;
|
|
59
61
|
}
|
|
60
|
-
function
|
|
61
|
-
const
|
|
62
|
-
if (!
|
|
63
|
-
throw new
|
|
62
|
+
function parseExchangeRate(value) {
|
|
63
|
+
const result = parseArgentineAmount(value, { maxDecimals: EXCHANGE_RATE_DECIMALS });
|
|
64
|
+
if (!result.ok) {
|
|
65
|
+
throw new InputValidationError(`La cotizacion "${value}" no es valida: ${result.reason}.`);
|
|
64
66
|
}
|
|
65
|
-
return
|
|
67
|
+
return result.value;
|
|
66
68
|
}
|
|
69
|
+
// Ruta absoluta, como pdfCarpeta: una relativa dependeria de la carpeta desde donde se corre arcli.
|
|
67
70
|
function parsePemPath(value, label) {
|
|
68
|
-
const
|
|
69
|
-
readPemFile(
|
|
70
|
-
return
|
|
71
|
+
const path = resolve(parseNonEmptyString(value));
|
|
72
|
+
readPemFile(path, label);
|
|
73
|
+
return path;
|
|
71
74
|
}
|
|
72
75
|
// La fecha de inicio de actividades es vieja: se pide con anio para no completarla con el actual.
|
|
73
76
|
function parseFullDate(value) {
|
|
74
77
|
if (!/^\d{1,2}([-/])\d{1,2}\1(\d{2}|\d{4})$/.test(value.trim())) {
|
|
75
|
-
throw new
|
|
78
|
+
throw new InputValidationError(`La fecha "${value}" no es valida. Use D/MM/YYYY, por ejemplo 1/03/2020.`);
|
|
76
79
|
}
|
|
77
80
|
return parseArgentineDateInputAsArcaDate(value);
|
|
78
81
|
}
|
|
79
82
|
function parseExistingFile(value, label) {
|
|
80
83
|
const path = resolve(parseNonEmptyString(value));
|
|
81
84
|
if (!existsSync(path)) {
|
|
82
|
-
throw new
|
|
85
|
+
throw new InputValidationError(`No se encontro ${label} en "${path}".`);
|
|
83
86
|
}
|
|
84
87
|
return path;
|
|
85
88
|
}
|
|
86
89
|
function parseLogoPath(value) {
|
|
87
90
|
const path = parseExistingFile(value, 'el logo');
|
|
88
91
|
if (!/\.(png|jpe?g)$/i.test(path)) {
|
|
89
|
-
throw new
|
|
92
|
+
throw new InputValidationError('El logo debe ser un archivo PNG o JPG.');
|
|
90
93
|
}
|
|
91
94
|
return path;
|
|
92
95
|
}
|
|
@@ -103,7 +106,7 @@ export function parseConfigValue(key, value) {
|
|
|
103
106
|
case 'conceptoPorDefecto':
|
|
104
107
|
return arcliDefaultConceptSchema.parse(value.trim().toLowerCase());
|
|
105
108
|
case 'cotizacionPorDefecto':
|
|
106
|
-
return
|
|
109
|
+
return parseExchangeRate(value);
|
|
107
110
|
case 'cuit':
|
|
108
111
|
return value.trim();
|
|
109
112
|
case 'emisor.condicionIva':
|
|
@@ -123,6 +126,7 @@ export function parseConfigValue(key, value) {
|
|
|
123
126
|
case 'monedaPorDefecto':
|
|
124
127
|
return value.trim().toUpperCase();
|
|
125
128
|
case 'verificarFce':
|
|
129
|
+
case 'consultarPadron':
|
|
126
130
|
case 'output.emitirPorDefecto':
|
|
127
131
|
case 'output.jsonPorDefecto':
|
|
128
132
|
case 'output.brutoPorDefecto':
|
|
@@ -136,7 +140,7 @@ export function parseConfigValue(key, value) {
|
|
|
136
140
|
case 'puntoVentaPorDefecto':
|
|
137
141
|
return parsePositiveInteger(value);
|
|
138
142
|
case 'ticketPath':
|
|
139
|
-
return parseNonEmptyString(value);
|
|
143
|
+
return resolve(parseNonEmptyString(value));
|
|
140
144
|
case 'cert.produccion':
|
|
141
145
|
case 'cert.testing':
|
|
142
146
|
return parsePemPath(value, 'certificado');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-value-parser.js","sourceRoot":"","sources":["../../../src/modules/config/config-value-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-value-parser.js","sourceRoot":"","sources":["../../../src/modules/config/config-value-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export interface ConfigPathSnapshot {
|
|
|
6
6
|
}
|
|
7
7
|
export declare function formatConfig(config: ArcliConfig, paths: ConfigPathSnapshot): string;
|
|
8
8
|
export declare function formatConfigPath(configPath: string): string;
|
|
9
|
+
/** `{ "ruta": "..." }`, como `ruta` en el JSON de `pdf desinstalar`. */
|
|
10
|
+
export declare function formatConfigPathAsJson(configPath: string): string;
|
|
9
11
|
/**
|
|
10
12
|
* La configuracion por secciones, en el mismo orden que "Modificar configuracion" del modo interactivo.
|
|
11
13
|
* El peso esta en los valores: titulos en celeste, etiquetas y datos sin cargar atenuados.
|
|
@@ -33,6 +33,7 @@ function toPublicSnapshot(config, paths) {
|
|
|
33
33
|
bruto: config.output.brutoPorDefecto,
|
|
34
34
|
ticketPath: maskPath(paths.ticketPath),
|
|
35
35
|
verificarFce: config.verificarFce,
|
|
36
|
+
consultarPadron: config.consultarPadron ?? true,
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
39
|
export function formatConfig(config, paths) {
|
|
@@ -41,6 +42,10 @@ export function formatConfig(config, paths) {
|
|
|
41
42
|
export function formatConfigPath(configPath) {
|
|
42
43
|
return configPath;
|
|
43
44
|
}
|
|
45
|
+
/** `{ "ruta": "..." }`, como `ruta` en el JSON de `pdf desinstalar`. */
|
|
46
|
+
export function formatConfigPathAsJson(configPath) {
|
|
47
|
+
return JSON.stringify({ ruta: configPath }, null, 2);
|
|
48
|
+
}
|
|
44
49
|
const NOT_SET = 'no configurado';
|
|
45
50
|
const notSet = (value) => value ?? NOT_SET;
|
|
46
51
|
const yesNo = (value) => (value ? 'si' : 'no');
|
|
@@ -75,6 +80,7 @@ const CONFIG_TEXT_VALUES = {
|
|
|
75
80
|
puntoVenta: (c) => notSet(c.puntoVenta),
|
|
76
81
|
ticketPath: (c) => c.ticketPath,
|
|
77
82
|
verificarFce: (c) => yesNo(c.verificarFce),
|
|
83
|
+
consultarPadron: (c) => yesNo(c.consultarPadron ?? true),
|
|
78
84
|
};
|
|
79
85
|
/**
|
|
80
86
|
* La configuracion por secciones, en el mismo orden que "Modificar configuracion" del modo interactivo.
|