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":"renderLogo.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderLogo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;CACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,4EAA4E;AAC5E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAE5C,SAAS,eAAe;IACtB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,UAAU;
|
|
1
|
+
{"version":3,"file":"renderLogo.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderLogo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;CACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,4EAA4E;AAC5E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAE5C,sGAAsG;AACtG,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB,8GAA8G;AAC9G,SAAS,gBAAgB,CAAC,OAA2B;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5D,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,qFAAqF;AACrF,SAAS,UAAU;IACjB,MAAM,YAAY,GAAG,kBAAkB,GAAG,CAAC,CAAC;IAE5C,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAEvC,gGAAgG;IAChG,IAAI,OAAO,IAAI,OAAO,GAAG,eAAe,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/E,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAEzD,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,OAAO,OAAO,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACxG,CAAC"}
|
|
@@ -12,6 +12,8 @@ export interface RenderPanelProps {
|
|
|
12
12
|
readonly footerDivider?: boolean;
|
|
13
13
|
readonly maxWidth?: UiWidthPreset | number;
|
|
14
14
|
readonly padding?: Partial<BoxenSpacing>;
|
|
15
|
+
/** Solo `command`: deja las lineas en blanco (con su barra) en lugar de sacarlas. */
|
|
16
|
+
readonly preserveBlankLines?: boolean;
|
|
15
17
|
readonly subtitle?: string;
|
|
16
18
|
readonly subtitleColor?: UiTextColor;
|
|
17
19
|
readonly title?: string;
|
|
@@ -3,7 +3,7 @@ import { UI_THEME } from '../theme/theme.js';
|
|
|
3
3
|
import { renderDivider } from './renderDivider.js';
|
|
4
4
|
import { renderFooter } from './renderFooter.js';
|
|
5
5
|
import { renderSubtitle } from './renderSubtitle.js';
|
|
6
|
-
import { resolveTerminalColumns } from './terminalWidth.js';
|
|
6
|
+
import { fitToTerminal, resolveTerminalColumns } from './terminalWidth.js';
|
|
7
7
|
import { bold, centerLineBlock, centerLines, colorize, flattenVisibleLines, maxVisibleWidth, stripAnsi, wrapIndentedPlainText, } from './text.js';
|
|
8
8
|
function resolvePadding(padding) {
|
|
9
9
|
const base = UI_THEME.spacing.panelPadding;
|
|
@@ -72,9 +72,8 @@ function renderCommandBlock(props) {
|
|
|
72
72
|
const bar = colorize(usesAsciiBorders() ? UI_THEME.commandBar.ascii : UI_THEME.commandBar.unicode, 'info');
|
|
73
73
|
const lines = typeof props.content === 'string' ? props.content.split('\n') : [...props.content];
|
|
74
74
|
const titleLines = props.title ? [formatTitle(props.title, props.titleColor) ?? ''] : [];
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
.join('\n');
|
|
75
|
+
const contentLines = props.preserveBlankLines ? lines : lines.filter((line) => stripAnsi(line).trim().length > 0);
|
|
76
|
+
return [...titleLines, ...contentLines].map((line) => `${bar}${line}`.trimEnd()).join('\n');
|
|
78
77
|
}
|
|
79
78
|
function formatTitle(title, color) {
|
|
80
79
|
if (!title) {
|
|
@@ -156,6 +155,17 @@ export function renderPanel(props) {
|
|
|
156
155
|
titleAlignment: props.titleAlignment ?? borderStyle.titleAlignment ?? 'center',
|
|
157
156
|
width: panelWidth,
|
|
158
157
|
});
|
|
159
|
-
|
|
158
|
+
const panel = footerDividerLine && borderStyle.junction ? joinDividers(box, borderStyle.junction) : box;
|
|
159
|
+
return borderType === 'ticket' ? centerInContentWidth(panel, panelWidth) : panel;
|
|
160
|
+
}
|
|
161
|
+
/** Centra el panel en el ancho comun de las cajas y la barra de estado (o el de la terminal, si es menor). */
|
|
162
|
+
function centerInContentWidth(panel, panelWidth) {
|
|
163
|
+
const indent = ' '.repeat(Math.max(0, Math.floor((fitToTerminal(UI_THEME.widths.wide.min) - panelWidth) / 2)));
|
|
164
|
+
return indent
|
|
165
|
+
? panel
|
|
166
|
+
.split('\n')
|
|
167
|
+
.map((line) => `${indent}${line}`)
|
|
168
|
+
.join('\n')
|
|
169
|
+
: panel;
|
|
160
170
|
}
|
|
161
171
|
//# sourceMappingURL=renderPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderPanel.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqE,MAAM,OAAO,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAA6D,MAAM,gBAAgB,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"renderPanel.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqE,MAAM,OAAO,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAA6D,MAAM,gBAAgB,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EACL,IAAI,EACJ,eAAe,EACf,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,SAAS,EAET,qBAAqB,GACtB,MAAM,QAAQ,CAAC;AAwBhB,SAAS,cAAc,CAAC,OAA+B;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;IAE3C,OAAO;QACL,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAC3C,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;QACrC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;QACxC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAgC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,KAAmC;IAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,KAAwB,EAAE,KAAa,EAAE,KAAqB;IAChF,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,uGAAuG;AACvG,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEhC,oGAAoG;AACpG,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE5D,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA4C;IACtE,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,QAAgD;IACjF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;IAErC,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAEjE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;IACjE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAuB;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAElH,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB,EAAE,KAA8B;IAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAElD,+FAA+F;IAC/F,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC;IAEhD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,sBAAsB,EAAE,CAAC;IACjD,+FAA+F;IAC/F,6CAA6C;IAC7C,MAAM,aAAa,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACnG,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAC/G,MAAM,kBAAkB,GACtB,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,GAAG;QAClD,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,kBAAkB,GACtB,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACtG,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAC/G,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACxG,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5E,oFAAoF;IACpF,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa;QAC3C,CAAC,CAAC,WAAW,CAAC,QAAQ;YACpB,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM;QAC7B,CAAC,CAAC,YAAY,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,SAAS,EAAE,KAAK,CAAC,WAAW;YAC5B,KAAK,EAAE,UAAU;SAClB,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACpG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,UAAU,KAAK,IAAI,CAAC;IACtC,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,IAAI,CAAC;IAEpD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,GAAG,cAAc,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,SAAS,EAAE,KAAK,CAAC,aAAa;YAC9B,KAAK,EAAE,UAAU;SAClB,CAAC,CACH,CAAC;QAEF,IAAI,cAAc,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,WAAW,CAAC,GAAG;QAC5B,OAAO;QACP,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;QACjD,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,WAAW,CAAC,cAAc,IAAI,QAAQ;QAC9E,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,iBAAiB,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAExG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACnF,CAAC;AAED,8GAA8G;AAC9G,SAAS,oBAAoB,CAAC,KAAa,EAAE,UAAkB;IAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/G,OAAO,MAAM;QACX,CAAC,CAAC,KAAK;aACF,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC"}
|
|
@@ -2,9 +2,20 @@ interface TerminalStreamOptions {
|
|
|
2
2
|
readonly json?: boolean;
|
|
3
3
|
readonly target?: 'stderr' | 'stdout';
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Lo que se muestra incluye textos de afuera (observaciones de ARCA, datos del JSON, errores de npm). Solo pasan
|
|
7
|
+
* los colores (SGR), saltos de linea y tabs: un texto no puede mover el cursor, borrar la pantalla ni pisar una
|
|
8
|
+
* linea para ocultar, por ejemplo, el aviso de PRODUCCION.
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizeTerminalText(content: string): string;
|
|
5
11
|
export declare function formatTerminalOutput(content: string, options?: TerminalStreamOptions): string;
|
|
6
12
|
export declare function writeTerminalOutput(content: string): void;
|
|
7
13
|
export declare function writeTerminalJson(content: string): void;
|
|
8
14
|
export declare function writeTerminalError(content: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Aviso antes de la salida del comando, en stderr. Sin la linea vacia de cierre: lo que sigue ya empieza con una
|
|
17
|
+
* y quedarian dos.
|
|
18
|
+
*/
|
|
19
|
+
export declare function writeTerminalNotice(content: string): void;
|
|
9
20
|
export declare function writeTerminalJsonError(content: string): void;
|
|
10
21
|
export {};
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import { highlightJsonValues } from '../primitives/renderJson.js';
|
|
2
2
|
import { supportsColor } from '../primitives/text.js';
|
|
3
|
+
// OSC (titulo, hipervinculos), CSI (cursor, borrar pantalla, colores), otros ESC y caracteres de control sueltos.
|
|
4
|
+
/* eslint-disable no-control-regex */
|
|
5
|
+
const TERMINAL_SEQUENCES = /\u001B\][\s\S]*?(?:\u0007|\u001B\\)|\u001B\[[0-?]*[ -/]*[@-~]|\u001B[@-~]|[\u0000-\u0008\u000B-\u001F\u007F-\u009F]/g;
|
|
6
|
+
const COLOR_SEQUENCE = /^\u001B\[[0-9;]*m$/;
|
|
7
|
+
/* eslint-enable no-control-regex */
|
|
8
|
+
/**
|
|
9
|
+
* Lo que se muestra incluye textos de afuera (observaciones de ARCA, datos del JSON, errores de npm). Solo pasan
|
|
10
|
+
* los colores (SGR), saltos de linea y tabs: un texto no puede mover el cursor, borrar la pantalla ni pisar una
|
|
11
|
+
* linea para ocultar, por ejemplo, el aviso de PRODUCCION.
|
|
12
|
+
*/
|
|
13
|
+
export function sanitizeTerminalText(content) {
|
|
14
|
+
return content.replace(TERMINAL_SEQUENCES, (sequence) => (COLOR_SEQUENCE.test(sequence) ? sequence : ''));
|
|
15
|
+
}
|
|
3
16
|
export function formatTerminalOutput(content, options = {}) {
|
|
4
17
|
const target = options.target ?? 'stdout';
|
|
5
|
-
const
|
|
18
|
+
const safeContent = sanitizeTerminalText(content);
|
|
19
|
+
const renderedContent = options.json && shouldHighlightJson(target) ? highlightJsonValues(safeContent, target) : safeContent;
|
|
6
20
|
return `\n${renderedContent}\n\n`;
|
|
7
21
|
}
|
|
22
|
+
// FORCE_COLOR no alcanza para pintar el JSON: si va a un pipe o a un archivo, tiene que poder parsearse.
|
|
23
|
+
function shouldHighlightJson(target) {
|
|
24
|
+
const stream = target === 'stderr' ? process.stderr : process.stdout;
|
|
25
|
+
return stream.isTTY === true && supportsColor(target);
|
|
26
|
+
}
|
|
8
27
|
export function writeTerminalOutput(content) {
|
|
9
28
|
process.stdout.write(formatTerminalOutput(content, { target: 'stdout' }));
|
|
10
29
|
}
|
|
@@ -14,6 +33,13 @@ export function writeTerminalJson(content) {
|
|
|
14
33
|
export function writeTerminalError(content) {
|
|
15
34
|
process.stderr.write(formatTerminalOutput(content, { target: 'stderr' }));
|
|
16
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Aviso antes de la salida del comando, en stderr. Sin la linea vacia de cierre: lo que sigue ya empieza con una
|
|
38
|
+
* y quedarian dos.
|
|
39
|
+
*/
|
|
40
|
+
export function writeTerminalNotice(content) {
|
|
41
|
+
process.stderr.write(`\n${sanitizeTerminalText(content)}\n`);
|
|
42
|
+
}
|
|
17
43
|
export function writeTerminalJsonError(content) {
|
|
18
44
|
process.stderr.write(formatTerminalOutput(content, { json: true, target: 'stderr' }));
|
|
19
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-stream.js","sourceRoot":"","sources":["../../../src/ui/stream/terminal-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,UAAiC,EAAE;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,MAAM,
|
|
1
|
+
{"version":3,"file":"terminal-stream.js","sourceRoot":"","sources":["../../../src/ui/stream/terminal-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,kHAAkH;AAClH,qCAAqC;AACrC,MAAM,kBAAkB,GACtB,sHAAsH,CAAC;AACzH,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAC5C,oCAAoC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,UAAiC,EAAE;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAEvG,OAAO,KAAK,eAAe,MAAM,CAAC;AACpC,CAAC;AAED,yGAAyG;AACzG,SAAS,mBAAmB,CAAC,MAA2B;IACtD,MAAM,MAAM,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAErE,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
package/dist/ui/theme/theme.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Spacing as BoxenSpacing } from 'boxen';
|
|
|
2
2
|
/**
|
|
3
3
|
* Tipo de borde segun lo que se muestra:
|
|
4
4
|
* - common: paneles de contenido (configuracion, observaciones, sugerencias, avisos FCE)
|
|
5
|
-
* - ticket: comprobante, como common pero con la linea de corte punteada antes del estado
|
|
5
|
+
* - ticket: comprobante, como common pero con la linea de corte punteada antes del estado; va centrado
|
|
6
6
|
* - error: errores del CLI o de ARCA (redondeado con franja gruesa a la izquierda)
|
|
7
7
|
* - attention: observaciones y avisos (como error, con la franja a trazos)
|
|
8
8
|
* - tip: sugerencias (como error, con la franja fina punteada)
|
|
@@ -34,8 +34,8 @@ export interface UiBorderStyle {
|
|
|
34
34
|
/** Alineacion del titulo sobre el borde; por defecto, centrado. */
|
|
35
35
|
readonly titleAlignment?: 'center' | 'left';
|
|
36
36
|
}
|
|
37
|
-
export type UiColorToken = 'danger' | 'debug' | 'info' | 'muted' | 'neutral' | 'subtle' | 'success' | 'warning';
|
|
38
|
-
export type UiWidthPreset = 'compact' | 'standard' | 'wide';
|
|
37
|
+
export type UiColorToken = 'danger' | 'debug' | 'highlight' | 'info' | 'muted' | 'neutral' | 'production' | 'subtle' | 'success' | 'testing' | 'warning';
|
|
38
|
+
export type UiWidthPreset = 'compact' | 'standard' | 'ticket' | 'wide';
|
|
39
39
|
export interface UiWidthRange {
|
|
40
40
|
readonly max: number;
|
|
41
41
|
readonly min: number;
|
package/dist/ui/theme/theme.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const CONTENT_WIDTH = { max: 92, min: 92 };
|
|
1
2
|
export const UI_THEME = {
|
|
2
3
|
badgeBrackets: ['[', ']'],
|
|
3
4
|
asciiBorderStyle: {
|
|
@@ -183,14 +184,20 @@ export const UI_THEME = {
|
|
|
183
184
|
colors: {
|
|
184
185
|
danger: '\u001B[31m',
|
|
185
186
|
debug: '\u001B[95m',
|
|
187
|
+
// Naranja amarillento (paleta de 256 colores): para invitar a una accion, como actualizar arcli.
|
|
188
|
+
highlight: '\u001B[38;5;214m',
|
|
186
189
|
info: '\u001B[36m',
|
|
187
190
|
muted: '\u001B[2m',
|
|
188
191
|
// Color por defecto de la terminal: claro en fondos oscuros y oscuro en fondos claros.
|
|
189
192
|
// Un blanco fijo (\u001B[37m) casi no se leia en terminales con fondo claro.
|
|
190
193
|
neutral: '\u001B[39m',
|
|
194
|
+
// Entornos en la barra del modo interactivo (paleta de 256 colores): celeste para produccion.
|
|
195
|
+
production: '\u001B[38;5;117m',
|
|
191
196
|
// Gris (bright black): para titulos de datos crudos, que tienen que verse pero sin competir.
|
|
192
197
|
subtle: '\u001B[90m',
|
|
193
198
|
success: '\u001B[32m',
|
|
199
|
+
// Naranja para testing; mas rojizo que `highlight`, para no confundirlo con el boton de actualizar.
|
|
200
|
+
testing: '\u001B[38;5;208m',
|
|
194
201
|
warning: '\u001B[33m',
|
|
195
202
|
},
|
|
196
203
|
headingLineMinWidth: 18,
|
|
@@ -210,10 +217,14 @@ export const UI_THEME = {
|
|
|
210
217
|
gap: 2,
|
|
211
218
|
labelWidth: 30,
|
|
212
219
|
},
|
|
220
|
+
// Un solo ancho para todas las cajas, igual al de la barra de estado y al que centra el logo, asi todo ocupa
|
|
221
|
+
// el mismo espacio. En una terminal mas angosta se achica (ver renderPanel y fitToTerminal).
|
|
213
222
|
widths: {
|
|
214
|
-
compact:
|
|
215
|
-
standard:
|
|
216
|
-
|
|
223
|
+
compact: CONTENT_WIDTH,
|
|
224
|
+
standard: CONTENT_WIDTH,
|
|
225
|
+
// Los comprobantes son mas angostos, como un ticket, y van centrados en CONTENT_WIDTH.
|
|
226
|
+
ticket: { max: 80, min: 68 },
|
|
227
|
+
wide: CONTENT_WIDTH,
|
|
217
228
|
},
|
|
218
229
|
};
|
|
219
230
|
//# sourceMappingURL=theme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/ui/theme/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/ui/theme/theme.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -29,7 +29,7 @@ Con la salida redirigida (pipe o archivo) no hay colores, así que `--json` se p
|
|
|
29
29
|
|
|
30
30
|
## Modo interactivo (no usar desde un agente)
|
|
31
31
|
|
|
32
|
-
`arcli` sin argumentos en una TTY abre un asistente con prompts (`arcli interactivo` lo abre explícito). Sin TTY
|
|
32
|
+
`arcli` sin argumentos en una TTY abre un asistente con prompts (`arcli interactivo` lo abre explícito). Sin TTY, `arcli` sin argumentos muestra la ayuda y `arcli interactivo` falla. `arcli interactivo` acepta solo `--testing`/`--produccion`: `--json` y `--bruto` se ignoran con un aviso. Un agente siempre tiene que usar los comandos con flags de abajo.
|
|
33
33
|
|
|
34
34
|
## Comandos de facturación (shortcut de 2-4 letras)
|
|
35
35
|
|
|
@@ -50,31 +50,34 @@ Shortcuts (`family` = comando alternativo `arcli <family> <letra>`, ej. `arcli f
|
|
|
50
50
|
|
|
51
51
|
## Flags principales (alias corto entre paréntesis)
|
|
52
52
|
|
|
53
|
-
- `-m, --monto <n>`: importe total (requerido).
|
|
53
|
+
- `-m, --monto <n>`: importe total (requerido). Montos en formato argentino: punto para miles, coma para decimales (`15000`, `15.000`, `1.500,50`). `1500.50` da error; máximo 2 decimales (la cotización, 6). Aplica a `--monto`, `--exento`, `--nogravado`, `--cm` y `--alicuota TASA:MONTO`. En JSON los montos son números, también con 2 decimales como máximo. Enteros (`--pv`, `--ar`, `--dia`…) solo con dígitos; `--cuit`/`--cuil`/`--dni` aceptan guiones.
|
|
54
54
|
- Concepto: `--concepto <tipo>` (`productos`/`servicios`/`productos-servicios`) o atajos `--cs` `--cp` `--csp`. Uno solo, no combinar `--concepto` con un atajo.
|
|
55
55
|
- IVA receptor: `--iva-receptor <tipo>` / `--ir <tipo>` (alias) o un atajo `--ir-ce|--ir-cf|--ir-il|--ir-ina|--ir-ms|--ir-mtip|--ir-pe|--ir-ri|--ir-rm|--ir-se|--ir-snc`. Usar exactamente una forma.
|
|
56
56
|
Valores válidos: `cliente-del-exterior`, `consumidor-final`, `iva-liberado`, `iva-no-alcanzado`, `monotributista-social`, `monotributo-trabajador-independiente-promovido`, `proveedor-del-exterior`, `responsable-inscripto`, `responsable-monotributo`, `sujeto-exento`, `sujeto-no-categorizado`.
|
|
57
|
-
El IVA receptor tiene que ser válido para la letra: `A` solo admite `responsable-inscripto`, `responsable-monotributo`, `monotributista-social` y `monotributo-trabajador-independiente-promovido`; `B` admite el resto; `C` admite todos. Letras `A` y `B`
|
|
58
|
-
- IVA (solo letras A y B): `--alicuota general|reducida|incrementada|cero` o el número `0|2.5|5|10.5|21|27` (default `config.alicuota` o 21; la config no aplica a C). Varias alícuotas: repetir `--alicuota TASA:MONTO` con el monto IVA incluido de cada una (`--alicuota general:1210 --alicuota reducida:552
|
|
57
|
+
El IVA receptor tiene que ser válido para la letra: `A` solo admite `responsable-inscripto`, `responsable-monotributo`, `monotributista-social` y `monotributo-trabajador-independiente-promovido`; `B` admite el resto; `C` admite todos. Letras `A` y `B` discriminan IVA a la alícuota de `--alicuota` (por defecto 21%, ver abajo).
|
|
58
|
+
- IVA (solo letras A y B): `--alicuota general|reducida|incrementada|cero` o el número `0|2.5|5|10.5|21|27` (default `config.alicuota` o 21; la config no aplica a C). Varias alícuotas: repetir `--alicuota TASA:MONTO` con el monto IVA incluido de cada una (`--alicuota general:1210 --alicuota reducida:552,50`); `--monto` pasa a ser opcional y, si se pasa, tiene que coincidir con la suma. En JSON: `alicuotas: [{tasa, monto}]`. Además, `--exento <monto>` y `--nogravado <monto>` (sin guion). `--monto` es siempre el total; exento y no gravado se descuentan y el IVA se calcula sobre el resto. En letra C esos flags dan error.
|
|
59
59
|
- Identidad del receptor: `--cuit <n>` / `--cuil <n>` / `--dni <n>` / `--consumidor-final` (alias `--cfinal`, documento 0). Usar como máximo una. Desde $10.000.000 (total × cotización) no se puede usar `--consumidor-final`: identificar con `--dni`/`--cuit`/`--cuil` y `--ir-cf`.
|
|
60
60
|
- Punto de venta: `--punto-venta <n>` (alias `--pv`). Si no se pasa, usa el default de config.
|
|
61
61
|
- Moneda: `--moneda <codigo>` (alias `--mda`, ej. `ARS`/`USD`; `USD` se envía como `DOL`) y `--cotizacion-moneda <n>` (alias `--cm`). En moneda extranjera la cotización es obligatoria y no puede ser 1; si el pago es en la misma moneda extranjera, usar `--misma-moneda` en lugar de `--cm` (consulta la cotización oficial a ARCA). En pesos no pasar cotización distinta de 1.
|
|
62
|
-
- Fechas: `-f, --fecha <fecha>` acepta formato argentino día-primero: `D`, `DD`, `D/M`, `DD/MM`, `D-M-YY`, `DD-MM-YYYY` (con `-` o `/`); si se omiten mes/año usa los actuales. También `--servicio-desde`/`--sd` y `--servicio-hasta`/`--sh`, y `-d, --dia <n>` (día de vencimiento). `--vencimiento <fecha>` (alias `--vto`) fija `FchVtoPago` aparte del período de servicio (servicios y facturas FCE; no en productos ni NC/ND FCE). Ventana de `--fecha` respecto de hoy: productos ±5 días, servicios ±10, FCE −5/+1; en productos y FCE una fecha futura tiene que caer en el mes actual.
|
|
62
|
+
- Fechas: `-f, --fecha <fecha>` acepta formato argentino día-primero: `D`, `DD`, `D/M`, `DD/MM`, `D-M-YY`, `DD-MM-YYYY` (con `-` o `/`); si se omiten mes/año usa los actuales. También `--servicio-desde`/`--sd` y `--servicio-hasta`/`--sh`, y `-d, --dia <n>` (día de vencimiento: este mes si todavía no pasó, si no el mes que viene; si ese día no existe en el mes, como 31 en abril, da error; no se combina con `--fecha` ni `--servicio-hasta`). "Hoy" es siempre la fecha argentina, aunque el equipo esté en UTC. `--vencimiento <fecha>` (alias `--vto`) fija `FchVtoPago` aparte del período de servicio (servicios y facturas FCE; no en productos ni NC/ND FCE). Ventana de `--fecha` respecto de hoy: productos ±5 días, servicios ±10, FCE −5/+1; en productos y FCE una fecha futura tiene que caer en el mes actual.
|
|
63
63
|
- Comprobante asociado (obligatorio en notas de crédito/débito): `--ac <shortcut>` (ej. `fc`), `--apv <n>` (punto de venta, alias `--asociado-punto-venta`), `--ar <n>` (número), `--acuit <n>`, `--at <n>` (tipo ARCA, alternativa a `--ac`; no combinar ambos), `--afecha <fecha>` (fecha del asociado, opcional salvo en NC/ND FCE). En notas comunes, en lugar del bloque `--ac` se puede usar un período: `--periodo-desde <fecha>` y `--periodo-hasta <fecha>` (alias `--pd`/`--ph`); no se combinan con `--ac`/`--at`, no aplican a FCE y el período no puede terminar después de la nota.
|
|
64
64
|
- Crédito electrónico (FCE): las facturas `fcea/fceb/fcec` requieren `--cbu <22 dígitos>` (o `arcli config establecer cbu ...`); opcionales `--alias <alias>` y `--transferencia sca|adc` (default `sca`). Las NC/ND FCE (`ncea`…`ndec`) requieren `--afecha`, aceptan `--anulacion`, toman `--acuit` del CUIT emisor si se omite y no aceptan `--cbu`/`--alias`/`--transferencia`. Fuera de FCE esos flags dan error.
|
|
65
|
+
- Padrón: `arcli padron <cuit> [--json]` consulta en ARCA (`ws_sr_constancia_inscripcion`) nombre, domicilio fiscal, `condicionIva` (`responsable-inscripto`, `responsable-monotributo`, `sujeto-exento` o `null` si no se puede deducir), impuestos y actividades. CUIT inexistente: error `TAXPAYER_NOT_FOUND`. Al facturar con `--cuit` y sin `--ir`/`ivaReceptor`, se usa la condición del padrón antes que el `ivaReceptor` de la config; si el padrón no responde o no la informa, se usa la config con un aviso en `avisos`, y sin config es `INPUT_VALIDATION_ERROR`. Se desactiva con `arcli config establecer consultarPadron false`. Para no depender del padrón, pasá `--ir` explícito.
|
|
65
66
|
- Régimen FCE: `arcli fce-obligado <cuit> [--fecha <fecha>] [--json]` consulta en ARCA (`wsfecred`) si el receptor está obligado a recibir FCE y desde qué monto. Con `arcli config establecer verificarFce true`, cada factura con CUIT hace esa consulta y devuelve avisos en `avisos` (JSON) sin bloquear. Requiere autorizar `wsfecred` en ARCA además de `wsfe`.
|
|
66
|
-
- Ejecución: `--previsualizar` (
|
|
67
|
-
- Salida: `--json` (estructurada, para scripts/agentes — desactiva el aviso de nueva versión), `--bruto` (incluye la respuesta cruda de ARCA).
|
|
67
|
+
- Ejecución: `--previsualizar` (solo arma y muestra la solicitud) vs `--emitir` (real contra ARCA) — son mutuamente excluyentes. El entorno sale de `config.entorno` (`testing` por defecto) salvo `--testing`/`--produccion`. Sin `--emitir` ni `--previsualizar` decide `config.emitir` (o `"emitir"` del JSON); si tampoco hay, en una terminal pregunta y con `--json` o sin TTY no emite. `--produccion --emitir` emite de verdad sin confirmación adicional, y lo mismo pasa sin flags si la config tiene `entorno produccion` y `emitir true`. Para no depender de la config, pasá siempre `--testing` o `--produccion` y `--emitir` o `--previsualizar` explícitos.
|
|
68
|
+
- Salida: `--json` (estructurada, para scripts/agentes — desactiva el aviso de nueva versión), `--bruto` (incluye la respuesta cruda de ARCA). `--bruto` solo existe en los comandos de facturación; en `padron`, `fce-obligado`, `ultimos`, `consultar`, `parametros` y `estado` se ignora con un aviso en stderr. En todos los comandos, sin `--json` decide la clave de config `json`.
|
|
68
69
|
- `--cargar <path.json>`: carga uno o un array de comprobantes desde un JSON en vez de flags (ver forma abajo). Los flags pisan lo que venga del archivo.
|
|
69
|
-
- PDF: `--exportar-pdf` (alias `--pdf`) genera el PDF con QR después de emitir; `--sin-pdf` no lo genera; sin flag decide `config pdf` (`preguntar` por defecto, que sin TTY o con `--json` no genera). Datos que solo van en el PDF (ARCA no los recibe): `--descripcion <texto>`, `--receptor-nombre <texto>`, `--receptor-domicilio <texto>`. Requiere el plugin (`arcli pdf instalar`, ~160 MB; desde un agente instalarlo antes, porque sin TTY nunca se descarga solo) y `emisor.razonSocial`, `emisor.domicilio`, `emisor.inicioActividades` en la config. Detalle:
|
|
70
|
+
- PDF: `--exportar-pdf` (alias `--pdf`) genera el PDF con QR después de emitir; `--sin-pdf` no lo genera; sin flag decide `config pdf` (`preguntar` por defecto, que sin TTY o con `--json` no genera). Datos que solo van en el PDF (ARCA no los recibe): `--descripcion <texto>`, `--receptor-nombre <texto>`, `--receptor-domicilio <texto>`. Requiere el plugin (`arcli pdf instalar`, ~160 MB; desde un agente instalarlo antes, porque sin TTY nunca se descarga solo) y `emisor.razonSocial`, `emisor.domicilio`, `emisor.inicioActividades` en la config. Detalle: https://github.com/LcsGrz/arcli/blob/main/docs/pdf.md.
|
|
70
71
|
|
|
71
72
|
## Modo no interactivo
|
|
72
73
|
|
|
73
|
-
Sin `--emitir` ni `--previsualizar`,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
Sin `--emitir` ni `--previsualizar`, decide `"emitir"` del JSON de `--cargar` y, si no está,
|
|
75
|
+
`config.emitir`. Si nada pide emitir y la sesión es interactiva (TTY), arcli muestra una vista
|
|
76
|
+
previa y pregunta. **Con `--json`, o cuando stdin/stdout no son un TTY (scripts, agentes, CI),
|
|
77
|
+
nunca pregunta**: no emite, salvo que `config.emitir` sea `true`, y en ese caso emite sin
|
|
78
|
+
confirmar (en producción también, si `config.entorno` es `produccion`). Para invocar desde un
|
|
79
|
+
agente, siempre pasar `--emitir` o `--previsualizar` (y `--testing` o `--produccion`) de forma
|
|
80
|
+
explícita y no depender de la config ni del prompt.
|
|
78
81
|
|
|
79
82
|
## Forma del JSON de `--cargar` (un objeto o un array de estos)
|
|
80
83
|
|
|
@@ -88,20 +91,22 @@ agentes, CI), nunca pregunta** — se comporta como si fuera dry-run salvo que s
|
|
|
88
91
|
"puntoVenta": 3,
|
|
89
92
|
"codigoMoneda": "ARS",
|
|
90
93
|
"cotizacionMoneda": 1,
|
|
91
|
-
"fechaComprobante": "18-03-2026",
|
|
92
|
-
"servicioDesde": "01-03-2026",
|
|
93
|
-
"servicioHasta": "31-03-2026",
|
|
94
94
|
"dia": 10,
|
|
95
|
-
"emitir": false,
|
|
96
95
|
"previsualizar": true,
|
|
97
|
-
"comprobanteAsociado": { "atajo": "fc", "cuit": "20123456789", "numero": 10, "puntoVenta": 3 },
|
|
98
96
|
"pdf": true,
|
|
99
|
-
"descripcion": "Servicios
|
|
97
|
+
"descripcion": "Servicios del mes",
|
|
100
98
|
"receptorNombre": "Cliente SA",
|
|
101
99
|
"receptorDomicilio": "Calle 1"
|
|
102
100
|
}
|
|
103
101
|
```
|
|
104
102
|
|
|
103
|
+
Las claves son las de este ejemplo más `emitir`, `fechaComprobante`, `servicioDesde`, `servicioHasta` (fechas como en los
|
|
104
|
+
flags; `dia` no se combina con `fechaComprobante` ni `servicioHasta`), `alicuotaIva`, `alicuotas` (`[{tasa, monto}]`),
|
|
105
|
+
`importeExento`, `importeNoGravado`, `mismaMoneda`, `vencimientoPago`, `cbu`, `aliasCbu`, `transferencia` y, solo en notas,
|
|
106
|
+
`comprobanteAsociado` (`{atajo|tipo, puntoVenta, numero, cuit, fecha}`), `periodoAsociado` (`{desde, hasta}`) y `anulacion`. Lista y equivalencia con los flags: https://github.com/LcsGrz/arcli/blob/main/docs/input-output.md.
|
|
107
|
+
Una clave desconocida (`montototal`, `vencimiento`, `moneda`) o un tipo incorrecto (`"puntoVenta": "3"`, `"emitir": "true"`,
|
|
108
|
+
`null`) es `INPUT_VALIDATION_ERROR` (en un lote, `BATCH_VALIDATION_ERROR` con el índice): no se ignora. Números sin comillas.
|
|
109
|
+
|
|
105
110
|
## Forma de la respuesta (`--json`, sin `--bruto`)
|
|
106
111
|
|
|
107
112
|
```json
|
|
@@ -128,53 +133,66 @@ agentes, CI), nunca pregunta** — se comporta como si fuera dry-run salvo que s
|
|
|
128
133
|
(`PDF_PLUGIN_MISSING`, `PDF_PLUGIN_INSTALL_ERROR`, `PDF_ISSUER_INCOMPLETE`, `PDF_GENERATION_ERROR`) y el exit code
|
|
129
134
|
sigue siendo `0`: el comprobante ya está emitido, **no reemitir para obtener el PDF**.
|
|
130
135
|
|
|
131
|
-
Con
|
|
132
|
-
|
|
136
|
+
Con `--cargar` y un array la salida es un array de estos objetos (con `indice`), aunque el array tenga un
|
|
137
|
+
solo elemento; con un objeto o con flags, un objeto. Con `--bruto` se agrega `respuesta` con la respuesta
|
|
138
|
+
cruda del SDK; el resto de los campos no cambia.
|
|
133
139
|
|
|
134
140
|
**Importante:** un comprobante rechazado por ARCA (`"estado": "rechazado"`) es una respuesta
|
|
135
|
-
válida, no una excepción
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
válida, no una excepción: sale por stdout como cualquier resultado y el proceso termina con
|
|
142
|
+
exit code `2`. En un lote, `2` si ARCA rechazó al menos uno; para saber cuáles, revisar
|
|
143
|
+
`estado`/`resultado`/`errores` de cada uno. `observado` es aprobado (tiene CAE) y sale con `0`.
|
|
138
144
|
|
|
139
145
|
## Salida de error
|
|
140
146
|
|
|
141
|
-
Sin `--json
|
|
147
|
+
Sin `--json` (ni `json=true` en la config): panel de texto en stderr. Con `--json` o `json=true`: JSON en stderr con la forma
|
|
142
148
|
`{"codigo": "...", "detalles": {...} | null, "error": "mensaje", "sugerencia": "..." | null}`.
|
|
143
|
-
`codigo` es `CONFIGURATION_ERROR`, `INPUT_VALIDATION_ERROR`, `
|
|
144
|
-
|
|
145
|
-
|
|
149
|
+
`codigo` es `CONFIGURATION_ERROR`, `INPUT_VALIDATION_ERROR`, `EMISSION_UNCERTAIN` (falló la llamada
|
|
150
|
+
que emite, no el login ni el pedido del último número: puede haberse emitido igual; antes de reintentar, verificar con el `arcli ultimos <tipo> --pv <n>`
|
|
151
|
+
que viene en `sugerencia`), `TRANSIENT_ERROR` (consultas: reintentar), `CERTIFICATE_EXPIRED` (el certificado del entorno venció: se corta antes
|
|
152
|
+
de ARCA, no se envió nada; `detalles.entorno` y `detalles.vencimiento`, la guía en `sugerencia`), `UNEXPECTED_ERROR`, `VOUCHER_NOT_FOUND` (`consultar`), o en un lote
|
|
153
|
+
(`--cargar` con un array, aunque tenga un solo elemento) `BATCH_VALIDATION_ERROR` (no se emitió ninguno; `detalles.comprobantes` lista cada
|
|
146
154
|
`{indice, error}`) y `BATCH_EMISSION_ERROR` (se cortó a mitad: los resultados ya procesados salen antes por
|
|
147
|
-
stdout;
|
|
148
|
-
|
|
155
|
+
stdout; si viene `detalles.sinConfirmar`, verificar ese índice con `arcli ultimos` antes de reintentarlo;
|
|
156
|
+
después reintentar `detalles.sinProcesar`, nunca los ya emitidos). En consultas: `TAXPAYER_NOT_FOUND` (`padron`),
|
|
157
|
+
`PADRON_SERVICE_NOT_AUTHORIZED` (`padron`; al facturar no corta, usa la config con un aviso), `FCE_SERVICE_NOT_AUTHORIZED`
|
|
158
|
+
y `FCE_OBLIGATION_ERROR` (`fce-obligado`; con `verificarFce` al facturar salen como aviso), `ARCA_UNAVAILABLE` (`estado`),
|
|
159
|
+
`ARCA_PARAMETERS_ERROR` (`parametros <tabla>`) y `ARCA_QUOTATION_ERROR` (`parametros cotizacion` o `--misma-moneda`).
|
|
160
|
+
`PDF_PLUGIN_INSTALL_ERROR` sale de `arcli pdf instalar`. `sugerencia` está siempre: `null` si no hay nada que sugerir.
|
|
161
|
+
Qué hacer con cada código: tabla "Códigos de error" de https://github.com/LcsGrz/arcli/blob/main/docs/input-output.md. Los errores de uso (opción desconocida, valor faltante, comando inexistente) también salen en este JSON como `INPUT_VALIDATION_ERROR`, con el mensaje de commander en `error`. El proceso termina con
|
|
162
|
+
exit code `1` en cualquier error. Resumen: `0` aprobado (u observado), `1` error, `2` rechazado por ARCA.
|
|
149
163
|
|
|
150
164
|
## Comando `config`
|
|
151
165
|
|
|
152
166
|
```bash
|
|
153
167
|
arcli config # ver config actual (agregar --json)
|
|
154
|
-
arcli config revisar
|
|
155
|
-
arcli config ruta
|
|
168
|
+
arcli config revisar # valida credenciales y contexto de los dos entornos (agregar --json)
|
|
169
|
+
arcli config ruta [--json] # path del archivo de config ({"ruta": ...})
|
|
156
170
|
arcli config establecer <clave> <valor>
|
|
157
171
|
arcli config eliminar <clave>
|
|
158
172
|
```
|
|
159
173
|
|
|
160
|
-
Claves válidas: `cuit`, `cbu`, `aliasCbu` (solo facturas FCE), `verificarFce`, `alicuota`, `puntoVenta`, `comprobantesPorLista` (1 a 50, por defecto 15), `concepto`, `ivaReceptor`, `moneda`, `cotizacion`,
|
|
174
|
+
Claves válidas: `cuit`, `cbu`, `aliasCbu` (solo facturas FCE), `verificarFce`, `consultarPadron` (por defecto `true`), `alicuota`, `puntoVenta`, `comprobantesPorLista` (1 a 50, por defecto 15), `concepto`, `ivaReceptor`, `moneda`, `cotizacion`,
|
|
161
175
|
`entorno` (`testing`/`produccion`), `emitir`, `json`, `bruto` (booleanos: `true/false`,
|
|
162
176
|
`si/no`, `1/0`), `cert.testing`, `cert.produccion`, `key.testing`, `key.produccion`
|
|
163
177
|
(rutas a archivos PEM, se validan al guardar), `ticketPath` (carpeta donde se cachea el
|
|
164
178
|
ticket WSAA; por defecto una carpeta junto al archivo de config).
|
|
165
|
-
Para el PDF: `pdf` (`siempre`/`preguntar`/`nunca`), `pdfCarpeta` (por defecto `~/arcli/comprobantes`;
|
|
166
|
-
testing
|
|
179
|
+
Para el PDF: `pdf` (`siempre`/`preguntar`/`nunca`), `pdfCarpeta` (por defecto `~/arcli/comprobantes`; una subcarpeta
|
|
180
|
+
por CUIT emisor, los de testing en `testing/<CUIT>/`, y nunca se pisa un PDF existente: se suma `-2`, `-3`), `pdfNavegador` (ruta a Chrome/Chromium/Edge), `emisor.razonSocial`, `emisor.domicilio`,
|
|
167
181
|
`emisor.inicioActividades` (fecha con año), `emisor.iibb`, `emisor.condicionIva`, `emisor.logo` (PNG o JPG).
|
|
168
182
|
|
|
169
|
-
`config revisar` también avisa si un certificado ya venció o vence en menos de 30 días.
|
|
183
|
+
`config revisar` también avisa si un certificado ya venció o vence en menos de 30 días. Con `--json` devuelve
|
|
184
|
+
`{ok, chequeos: [{categoria: "ok"|"warning"|"error", etiqueta, detalle}]}`; `ok: false` sale igual con exit code `0`.
|
|
185
|
+
`arcli config --json` devuelve la config con las rutas enmascaradas (`cert`, `key` y `emisor` como objetos).
|
|
186
|
+
Además, a menos de 30 días de vencer cualquiera de los certificados configurados (testing o producción, sin importar el entorno
|
|
187
|
+
en uso), cada comando que va a ARCA avisa en stderr (nunca en stdout) y la facturación lo suma a `avisos` del JSON.
|
|
170
188
|
|
|
171
189
|
## Otros comandos
|
|
172
190
|
|
|
173
191
|
- `arcli ultimos <tipo> [--cantidad N] [--pv N] [--json]`: últimos comprobantes emitidos (de 1 a 50; por defecto `config.comprobantesPorLista` o 15), del más nuevo al más viejo. `tipo` es el atajo (`fb`, `nca`…).
|
|
174
192
|
- `arcli consultar <tipo> <numero> [--pv N] [--json]`: detalle de un comprobante emitido (CAE, vencimiento, importes, receptor). Si no existe, el error es `VOUCHER_NOT_FOUND`. Sirve para verificar después de emitir.
|
|
175
193
|
- `arcli pdf [estado|instalar|desinstalar] [--json]`: plugin que genera los PDFs. `arcli pdf instalar` lo descarga sin preguntar (sirve en scripts).
|
|
176
|
-
- `arcli estado [--json]`: si ARCA responde
|
|
177
|
-
- `arcli parametros [tabla] [--json]`: tablas de ARCA vigentes: `puntos-venta`, `comprobantes`, `documentos`, `alicuotas`, `iva-receptor`, `monedas`, `conceptos`, `opcionales`, `tributos`. `arcli parametros cotizacion USD` da la cotización oficial (`{
|
|
194
|
+
- `arcli estado [--json]`: si ARCA responde y si el punto de venta configurado está habilitado: `{entorno, latenciaMs, listo, puntoVenta: {estado, numero, tipoEmision}, servidores: {aplicacion, baseDeDatos, autenticacion}}`. `listo: true` = se puede emitir; `listo: false` sale igual con exit code `0`, así que hay que leer `listo`. En testing ARCA no informa puntos de venta (`puntoVenta.estado: "sin-datos"`). Si ARCA no responde: error `ARCA_UNAVAILABLE`.
|
|
195
|
+
- `arcli parametros [tabla] [--json]`: tablas de ARCA vigentes: `puntos-venta`, `comprobantes`, `documentos`, `alicuotas`, `iva-receptor`, `monedas`, `conceptos`, `opcionales`, `tributos`. Sin tabla: `{tablas: [{tabla, descripcion}]}`; con tabla: `{entorno, tabla, valores: [{id, descripcion, detalle, vigenteHasta}]}`. `arcli parametros cotizacion USD` da la cotización oficial (`{cotizacion, entorno, fecha, moneda}`, con `moneda` en código ARCA: `DOL`).
|
|
178
196
|
- `arcli ejemplos`: comandos listos para copiar por cada tipo de comprobante.
|
|
179
197
|
- `arcli storybook [escena]`: demos visuales de la UI (sin llamar a ARCA).
|
|
180
198
|
- `arcli <cualquier comando> ayuda` o `--ayuda`: ayuda contextual con ejemplos (nota: el flag
|
|
@@ -182,10 +200,12 @@ testing van a `testing/`), `pdfNavegador` (ruta a Chrome/Chromium/Edge), `emisor
|
|
|
182
200
|
|
|
183
201
|
## Más detalle
|
|
184
202
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
191
|
-
-
|
|
203
|
+
Los docs no vienen en el paquete de npm: están en GitHub.
|
|
204
|
+
|
|
205
|
+
- https://github.com/LcsGrz/arcli/blob/main/docs/cli-reference.md: referencia completa de comandos y flags.
|
|
206
|
+
- https://github.com/LcsGrz/arcli/blob/main/docs/configuration.md: config persistente, claves soportadas, ticketPath.
|
|
207
|
+
- https://github.com/LcsGrz/arcli/blob/main/docs/validation-rules.md y https://github.com/LcsGrz/arcli/blob/main/docs/input-output.md: reglas de validación y formatos de entrada/salida, con el JSON de cada comando y los códigos de error.
|
|
208
|
+
- https://github.com/LcsGrz/arcli/blob/main/docs/troubleshooting.md: errores comunes de ARCA y como resolverlos.
|
|
209
|
+
- https://github.com/LcsGrz/arcli/blob/main/docs/pdf.md: PDF de comprobantes, plugin, carpeta y nombre del archivo.
|
|
210
|
+
- https://github.com/LcsGrz/arcli/blob/main/docs/modo-interactivo.md: asistente interactivo (un agente no debe usarlo).
|
|
211
|
+
- https://github.com/LcsGrz/arcli/blob/main/AGENTS.md: para agentes que van a modificar el código de este repo (no para usar el CLI).
|