arcli 0.1.1 → 1.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.
Files changed (269) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -4
  3. package/dist/cli/commands/billing-family.command.d.ts +2 -0
  4. package/dist/cli/commands/billing-family.command.js +30 -0
  5. package/dist/cli/commands/billing-family.command.js.map +1 -0
  6. package/dist/cli/commands/billing-shortcuts.command.d.ts +2 -0
  7. package/dist/cli/commands/billing-shortcuts.command.js +18 -0
  8. package/dist/cli/commands/billing-shortcuts.command.js.map +1 -0
  9. package/dist/cli/commands/billing.command.interactive-preview.d.ts +17 -0
  10. package/dist/cli/commands/billing.command.interactive-preview.js +65 -0
  11. package/dist/cli/commands/billing.command.interactive-preview.js.map +1 -0
  12. package/dist/cli/commands/billing.command.options.d.ts +2 -0
  13. package/dist/cli/commands/billing.command.options.js +49 -0
  14. package/dist/cli/commands/billing.command.options.js.map +1 -0
  15. package/dist/cli/commands/billing.command.output.d.ts +12 -0
  16. package/dist/cli/commands/billing.command.output.js +33 -0
  17. package/dist/cli/commands/billing.command.output.js.map +1 -0
  18. package/dist/cli/commands/billing.command.parser.d.ts +18 -0
  19. package/dist/cli/commands/billing.command.parser.js +136 -0
  20. package/dist/cli/commands/billing.command.parser.js.map +1 -0
  21. package/dist/cli/commands/billing.command.shared.d.ts +7 -0
  22. package/dist/cli/commands/billing.command.shared.js +78 -0
  23. package/dist/cli/commands/billing.command.shared.js.map +1 -0
  24. package/dist/cli/commands/billing.command.shortcuts.d.ts +7 -0
  25. package/dist/cli/commands/billing.command.shortcuts.js +52 -0
  26. package/dist/cli/commands/billing.command.shortcuts.js.map +1 -0
  27. package/dist/cli/commands/config.command.d.ts +2 -0
  28. package/dist/cli/commands/config.command.js +125 -0
  29. package/dist/cli/commands/config.command.js.map +1 -0
  30. package/dist/cli/commands/examples.command.d.ts +2 -0
  31. package/dist/cli/commands/examples.command.js +14 -0
  32. package/dist/cli/commands/examples.command.js.map +1 -0
  33. package/dist/cli/commands/storybook.command.d.ts +2 -0
  34. package/dist/cli/commands/storybook.command.js +26 -0
  35. package/dist/cli/commands/storybook.command.js.map +1 -0
  36. package/dist/cli/help.d.ts +10 -0
  37. package/dist/cli/help.js +473 -0
  38. package/dist/cli/help.js.map +1 -0
  39. package/dist/cli/index.d.ts +2 -0
  40. package/dist/cli/index.js +41 -0
  41. package/dist/cli/index.js.map +1 -0
  42. package/dist/cli/program.d.ts +2 -0
  43. package/dist/cli/program.js +28 -0
  44. package/dist/cli/program.js.map +1 -0
  45. package/dist/cli/types.d.ts +6 -0
  46. package/dist/cli/types.js +2 -0
  47. package/dist/cli/types.js.map +1 -0
  48. package/dist/cli/version.d.ts +1 -0
  49. package/dist/cli/version.js +2 -0
  50. package/dist/cli/version.js.map +1 -0
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.js +2 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/lib/dates/arca-date.d.ts +2 -0
  55. package/dist/lib/dates/arca-date.js +28 -0
  56. package/dist/lib/dates/arca-date.js.map +1 -0
  57. package/dist/lib/errors/app-error.d.ts +14 -0
  58. package/dist/lib/errors/app-error.js +29 -0
  59. package/dist/lib/errors/app-error.js.map +1 -0
  60. package/dist/lib/files/read-json-file.d.ts +1 -0
  61. package/dist/lib/files/read-json-file.js +21 -0
  62. package/dist/lib/files/read-json-file.js.map +1 -0
  63. package/dist/lib/paths/mask-path.d.ts +1 -0
  64. package/dist/lib/paths/mask-path.js +17 -0
  65. package/dist/lib/paths/mask-path.js.map +1 -0
  66. package/dist/lib/security/certificate.d.ts +7 -0
  67. package/dist/lib/security/certificate.js +16 -0
  68. package/dist/lib/security/certificate.js.map +1 -0
  69. package/dist/lib/security/pem.d.ts +5 -0
  70. package/dist/lib/security/pem.js +36 -0
  71. package/dist/lib/security/pem.js.map +1 -0
  72. package/dist/modules/billing/billing-response.d.ts +4 -0
  73. package/dist/modules/billing/billing-response.js +74 -0
  74. package/dist/modules/billing/billing-response.js.map +1 -0
  75. package/dist/modules/billing/billing.amounts.d.ts +9 -0
  76. package/dist/modules/billing/billing.amounts.js +30 -0
  77. package/dist/modules/billing/billing.amounts.js.map +1 -0
  78. package/dist/modules/billing/billing.associated-vouchers.d.ts +10 -0
  79. package/dist/modules/billing/billing.associated-vouchers.js +51 -0
  80. package/dist/modules/billing/billing.associated-vouchers.js.map +1 -0
  81. package/dist/modules/billing/billing.constants.d.ts +2 -0
  82. package/dist/modules/billing/billing.constants.js +3 -0
  83. package/dist/modules/billing/billing.constants.js.map +1 -0
  84. package/dist/modules/billing/billing.date-range.d.ts +8 -0
  85. package/dist/modules/billing/billing.date-range.js +45 -0
  86. package/dist/modules/billing/billing.date-range.js.map +1 -0
  87. package/dist/modules/billing/billing.display.d.ts +13 -0
  88. package/dist/modules/billing/billing.display.js +111 -0
  89. package/dist/modules/billing/billing.display.js.map +1 -0
  90. package/dist/modules/billing/billing.json-format.d.ts +6 -0
  91. package/dist/modules/billing/billing.json-format.js +5 -0
  92. package/dist/modules/billing/billing.json-format.js.map +1 -0
  93. package/dist/modules/billing/billing.labels.d.ts +9 -0
  94. package/dist/modules/billing/billing.labels.js +108 -0
  95. package/dist/modules/billing/billing.labels.js.map +1 -0
  96. package/dist/modules/billing/billing.mappers.d.ts +8 -0
  97. package/dist/modules/billing/billing.mappers.js +59 -0
  98. package/dist/modules/billing/billing.mappers.js.map +1 -0
  99. package/dist/modules/billing/billing.presenter.d.ts +7 -0
  100. package/dist/modules/billing/billing.presenter.js +3 -0
  101. package/dist/modules/billing/billing.presenter.js.map +1 -0
  102. package/dist/modules/billing/billing.schemas.d.ts +74 -0
  103. package/dist/modules/billing/billing.schemas.js +69 -0
  104. package/dist/modules/billing/billing.schemas.js.map +1 -0
  105. package/dist/modules/billing/billing.serialize.d.ts +8 -0
  106. package/dist/modules/billing/billing.serialize.js +51 -0
  107. package/dist/modules/billing/billing.serialize.js.map +1 -0
  108. package/dist/modules/billing/billing.service.d.ts +15 -0
  109. package/dist/modules/billing/billing.service.js +88 -0
  110. package/dist/modules/billing/billing.service.js.map +1 -0
  111. package/dist/modules/billing/billing.text.d.ts +8 -0
  112. package/dist/modules/billing/billing.text.js +44 -0
  113. package/dist/modules/billing/billing.text.js.map +1 -0
  114. package/dist/modules/billing/billing.types.d.ts +13 -0
  115. package/dist/modules/billing/billing.types.internal.d.ts +25 -0
  116. package/dist/modules/billing/billing.types.internal.js +2 -0
  117. package/dist/modules/billing/billing.types.internal.js.map +1 -0
  118. package/dist/modules/billing/billing.types.js +2 -0
  119. package/dist/modules/billing/billing.types.js.map +1 -0
  120. package/dist/modules/billing/billing.validation.d.ts +5 -0
  121. package/dist/modules/billing/billing.validation.js +45 -0
  122. package/dist/modules/billing/billing.validation.js.map +1 -0
  123. package/dist/modules/billing/voucher-kind-map.d.ts +9 -0
  124. package/dist/modules/billing/voucher-kind-map.js +180 -0
  125. package/dist/modules/billing/voucher-kind-map.js.map +1 -0
  126. package/dist/modules/config/config-doctor.d.ts +15 -0
  127. package/dist/modules/config/config-doctor.js +125 -0
  128. package/dist/modules/config/config-doctor.js.map +1 -0
  129. package/dist/modules/config/config-value-parser.d.ts +2 -0
  130. package/dist/modules/config/config-value-parser.js +71 -0
  131. package/dist/modules/config/config-value-parser.js.map +1 -0
  132. package/dist/modules/config/config.presenter.d.ts +7 -0
  133. package/dist/modules/config/config.presenter.js +80 -0
  134. package/dist/modules/config/config.presenter.js.map +1 -0
  135. package/dist/modules/config/config.schemas.d.ts +87 -0
  136. package/dist/modules/config/config.schemas.js +84 -0
  137. package/dist/modules/config/config.schemas.js.map +1 -0
  138. package/dist/modules/config/config.service.d.ts +20 -0
  139. package/dist/modules/config/config.service.js +78 -0
  140. package/dist/modules/config/config.service.js.map +1 -0
  141. package/dist/modules/examples/examples.d.ts +1 -0
  142. package/dist/modules/examples/examples.js +156 -0
  143. package/dist/modules/examples/examples.js.map +1 -0
  144. package/dist/modules/storybook/showcase-theme.d.ts +7 -0
  145. package/dist/modules/storybook/showcase-theme.js +6 -0
  146. package/dist/modules/storybook/showcase-theme.js.map +1 -0
  147. package/dist/modules/storybook/showcase.d.ts +2 -0
  148. package/dist/modules/storybook/showcase.js +310 -0
  149. package/dist/modules/storybook/showcase.js.map +1 -0
  150. package/dist/modules/update-check/update-check.presenter.d.ts +2 -0
  151. package/dist/modules/update-check/update-check.presenter.js +6 -0
  152. package/dist/modules/update-check/update-check.presenter.js.map +1 -0
  153. package/dist/modules/update-check/update-check.service.d.ts +8 -0
  154. package/dist/modules/update-check/update-check.service.js +72 -0
  155. package/dist/modules/update-check/update-check.service.js.map +1 -0
  156. package/dist/services/arca/arca-billing.gateway.d.ts +9 -0
  157. package/dist/services/arca/arca-billing.gateway.js +10 -0
  158. package/dist/services/arca/arca-billing.gateway.js.map +1 -0
  159. package/dist/services/arca/arca-client.factory.d.ts +5 -0
  160. package/dist/services/arca/arca-client.factory.js +7 -0
  161. package/dist/services/arca/arca-client.factory.js.map +1 -0
  162. package/dist/services/arca/arca-context.resolver.d.ts +44 -0
  163. package/dist/services/arca/arca-context.resolver.js +120 -0
  164. package/dist/services/arca/arca-context.resolver.js.map +1 -0
  165. package/dist/ui/components/contentPanel.d.ts +5 -0
  166. package/dist/ui/components/contentPanel.js +11 -0
  167. package/dist/ui/components/contentPanel.js.map +1 -0
  168. package/dist/ui/components/errorPanel.d.ts +1 -0
  169. package/dist/ui/components/errorPanel.js +13 -0
  170. package/dist/ui/components/errorPanel.js.map +1 -0
  171. package/dist/ui/components/index.d.ts +6 -0
  172. package/dist/ui/components/index.js +7 -0
  173. package/dist/ui/components/index.js.map +1 -0
  174. package/dist/ui/components/keyValuePanel.d.ts +3 -0
  175. package/dist/ui/components/keyValuePanel.js +14 -0
  176. package/dist/ui/components/keyValuePanel.js.map +1 -0
  177. package/dist/ui/components/noticePanel.d.ts +3 -0
  178. package/dist/ui/components/noticePanel.js +11 -0
  179. package/dist/ui/components/noticePanel.js.map +1 -0
  180. package/dist/ui/components/rawPanel.d.ts +1 -0
  181. package/dist/ui/components/rawPanel.js +5 -0
  182. package/dist/ui/components/rawPanel.js.map +1 -0
  183. package/dist/ui/components/statusPanel.d.ts +3 -0
  184. package/dist/ui/components/statusPanel.js +20 -0
  185. package/dist/ui/components/statusPanel.js.map +1 -0
  186. package/dist/ui/index.d.ts +5 -0
  187. package/dist/ui/index.js +6 -0
  188. package/dist/ui/index.js.map +1 -0
  189. package/dist/ui/presenters/billing.presenter.d.ts +2 -0
  190. package/dist/ui/presenters/billing.presenter.js +2 -0
  191. package/dist/ui/presenters/billing.presenter.js.map +1 -0
  192. package/dist/ui/presenters/config.presenter.d.ts +1 -0
  193. package/dist/ui/presenters/config.presenter.js +2 -0
  194. package/dist/ui/presenters/config.presenter.js.map +1 -0
  195. package/dist/ui/presenters/errors.presenter.d.ts +1 -0
  196. package/dist/ui/presenters/errors.presenter.js +89 -0
  197. package/dist/ui/presenters/errors.presenter.js.map +1 -0
  198. package/dist/ui/presenters/errors.zod-presenter.d.ts +2 -0
  199. package/dist/ui/presenters/errors.zod-presenter.js +82 -0
  200. package/dist/ui/presenters/errors.zod-presenter.js.map +1 -0
  201. package/dist/ui/presenters/index.d.ts +4 -0
  202. package/dist/ui/presenters/index.js +5 -0
  203. package/dist/ui/presenters/index.js.map +1 -0
  204. package/dist/ui/presenters/showcase.presenter.d.ts +1 -0
  205. package/dist/ui/presenters/showcase.presenter.js +2 -0
  206. package/dist/ui/presenters/showcase.presenter.js.map +1 -0
  207. package/dist/ui/primitives/index.d.ts +10 -0
  208. package/dist/ui/primitives/index.js +11 -0
  209. package/dist/ui/primitives/index.js.map +1 -0
  210. package/dist/ui/primitives/renderDivider.d.ts +5 -0
  211. package/dist/ui/primitives/renderDivider.js +5 -0
  212. package/dist/ui/primitives/renderDivider.js.map +1 -0
  213. package/dist/ui/primitives/renderFooter.d.ts +7 -0
  214. package/dist/ui/primitives/renderFooter.js +6 -0
  215. package/dist/ui/primitives/renderFooter.js.map +1 -0
  216. package/dist/ui/primitives/renderJson.d.ts +3 -0
  217. package/dist/ui/primitives/renderJson.js +19 -0
  218. package/dist/ui/primitives/renderJson.js.map +1 -0
  219. package/dist/ui/primitives/renderKeyValue.d.ts +14 -0
  220. package/dist/ui/primitives/renderKeyValue.js +34 -0
  221. package/dist/ui/primitives/renderKeyValue.js.map +1 -0
  222. package/dist/ui/primitives/renderLogo.d.ts +2 -0
  223. package/dist/ui/primitives/renderLogo.js +28 -0
  224. package/dist/ui/primitives/renderLogo.js.map +1 -0
  225. package/dist/ui/primitives/renderObject.d.ts +1 -0
  226. package/dist/ui/primitives/renderObject.js +19 -0
  227. package/dist/ui/primitives/renderObject.js.map +1 -0
  228. package/dist/ui/primitives/renderPanel.d.ts +23 -0
  229. package/dist/ui/primitives/renderPanel.js +114 -0
  230. package/dist/ui/primitives/renderPanel.js.map +1 -0
  231. package/dist/ui/primitives/renderSubtitle.d.ts +7 -0
  232. package/dist/ui/primitives/renderSubtitle.js +6 -0
  233. package/dist/ui/primitives/renderSubtitle.js.map +1 -0
  234. package/dist/ui/primitives/renderTable.d.ts +6 -0
  235. package/dist/ui/primitives/renderTable.js +14 -0
  236. package/dist/ui/primitives/renderTable.js.map +1 -0
  237. package/dist/ui/primitives/text.d.ts +18 -0
  238. package/dist/ui/primitives/text.js +154 -0
  239. package/dist/ui/primitives/text.js.map +1 -0
  240. package/dist/ui/stream/index.d.ts +1 -0
  241. package/dist/ui/stream/index.js +2 -0
  242. package/dist/ui/stream/index.js.map +1 -0
  243. package/dist/ui/stream/terminal-stream.d.ts +10 -0
  244. package/dist/ui/stream/terminal-stream.js +20 -0
  245. package/dist/ui/stream/terminal-stream.js.map +1 -0
  246. package/dist/ui/theme/index.d.ts +1 -0
  247. package/dist/ui/theme/index.js +2 -0
  248. package/dist/ui/theme/index.js.map +1 -0
  249. package/dist/ui/theme/theme.d.ts +27 -0
  250. package/dist/ui/theme/theme.js +41 -0
  251. package/dist/ui/theme/theme.js.map +1 -0
  252. package/llms.txt +157 -0
  253. package/package.json +98 -35
  254. package/.babelrc +0 -4
  255. package/.eslintignore +0 -1
  256. package/.eslintrc.js +0 -17
  257. package/.npmignore +0 -1
  258. package/lib/arcli.min.js +0 -1
  259. package/src/commander/index.js +0 -3
  260. package/src/config.js +0 -22
  261. package/src/index.js +0 -19
  262. package/src/init/index.js +0 -13
  263. package/src/logger/index.js +0 -8
  264. package/src/logger/winston.js +0 -55
  265. package/src/run.js +0 -4
  266. package/src/spinner/index.js +0 -8
  267. package/src/spinner/ora.js +0 -50
  268. package/tst/index.js +0 -29
  269. package/webpack.config.js +0 -47
@@ -0,0 +1,11 @@
1
+ import { renderPanel } from '../primitives/renderPanel.js';
2
+ export function contentPanel(title, content, width = 'wide', titleColor, contentAlign = 'left') {
3
+ return renderPanel({
4
+ content,
5
+ contentAlign,
6
+ title,
7
+ titleColor,
8
+ width,
9
+ });
10
+ }
11
+ //# sourceMappingURL=contentPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentPanel.js","sourceRoot":"","sources":["../../../src/ui/components/contentPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,OAAe,EACf,QAAuB,MAAM,EAC7B,UAAwB,EACxB,eAAsC,MAAM;IAE5C,OAAO,WAAW,CAAC;QACjB,OAAO;QACP,YAAY;QACZ,KAAK;QACL,UAAU;QACV,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function errorPanel(title: string, message: string, details?: readonly string[], hint?: string): string;
@@ -0,0 +1,13 @@
1
+ import { toneText } from '../primitives/text.js';
2
+ import { contentPanel } from './contentPanel.js';
3
+ export function errorPanel(title, message, details = [], hint) {
4
+ const lines = [toneText('Error', 'danger'), message];
5
+ if (details.length > 0) {
6
+ lines.push('', toneText('Detalles', 'warning'), ...details);
7
+ }
8
+ if (hint) {
9
+ lines.push('', toneText('Sugerencia', 'info'), hint);
10
+ }
11
+ return contentPanel(title, lines.join('\n'), 'standard', 'danger');
12
+ }
13
+ //# sourceMappingURL=errorPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorPanel.js","sourceRoot":"","sources":["../../../src/ui/components/errorPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,UAA6B,EAAE,EAAE,IAAa;IACvG,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './contentPanel';
2
+ export * from './errorPanel';
3
+ export * from './keyValuePanel';
4
+ export * from './noticePanel';
5
+ export * from './rawPanel';
6
+ export * from './statusPanel';
@@ -0,0 +1,7 @@
1
+ export * from './contentPanel.js';
2
+ export * from './errorPanel.js';
3
+ export * from './keyValuePanel.js';
4
+ export * from './noticePanel.js';
5
+ export * from './rawPanel.js';
6
+ export * from './statusPanel.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UiTextColor } from '../primitives/text';
2
+ import type { UiWidthPreset } from '../theme/theme';
3
+ export declare function keyValuePanel(title: string, rows: readonly string[], footer?: string, width?: UiWidthPreset, titleColor?: UiTextColor): string;
@@ -0,0 +1,14 @@
1
+ import { renderPanel } from '../primitives/renderPanel.js';
2
+ export function keyValuePanel(title, rows, footer, width = 'standard', titleColor) {
3
+ return renderPanel({
4
+ content: rows,
5
+ contentAlign: 'left',
6
+ footer,
7
+ footerColor: titleColor,
8
+ footerDivider: Boolean(footer),
9
+ title,
10
+ titleColor,
11
+ width,
12
+ });
13
+ }
14
+ //# sourceMappingURL=keyValuePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyValuePanel.js","sourceRoot":"","sources":["../../../src/ui/components/keyValuePanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,IAAuB,EACvB,MAAe,EACf,QAAuB,UAAU,EACjC,UAAwB;IAExB,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,MAAM;QACpB,MAAM;QACN,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;QAC9B,KAAK;QACL,UAAU;QACV,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type UiTextColor } from '../primitives/text';
2
+ import type { UiBorderType } from '../theme/theme';
3
+ export declare function noticePanel(message: string, color?: UiTextColor, borderType?: UiBorderType): string;
@@ -0,0 +1,11 @@
1
+ import { renderPanel } from '../primitives/renderPanel.js';
2
+ import { toneText } from '../primitives/text.js';
3
+ export function noticePanel(message, color = 'info', borderType = 'note') {
4
+ return renderPanel({
5
+ borderType,
6
+ content: toneText(message, color),
7
+ contentAlign: 'center',
8
+ width: 'compact',
9
+ });
10
+ }
11
+ //# sourceMappingURL=noticePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noticePanel.js","sourceRoot":"","sources":["../../../src/ui/components/noticePanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAoB,MAAM,oBAAoB,CAAC;AAGhE,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,QAAqB,MAAM,EAAE,aAA2B,MAAM;IACzG,OAAO,WAAW,CAAC;QACjB,UAAU;QACV,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QACjC,YAAY,EAAE,QAAQ;QACtB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function rawPanel(title: string, content: string): string;
@@ -0,0 +1,5 @@
1
+ import { contentPanel } from './contentPanel.js';
2
+ export function rawPanel(title, content) {
3
+ return contentPanel(title, content, 'wide', 'info');
4
+ }
5
+ //# sourceMappingURL=rawPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawPanel.js","sourceRoot":"","sources":["../../../src/ui/components/rawPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,OAAe;IACrD,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UiTextColor } from '../primitives/text';
2
+ import type { UiWidthPreset } from '../theme/theme';
3
+ export declare function statusPanel(title: string, rows: readonly string[], footer: string, width?: UiWidthPreset, titleColor?: UiTextColor): string;
@@ -0,0 +1,20 @@
1
+ import { renderPanel } from '../primitives/renderPanel.js';
2
+ export function statusPanel(title, rows, footer, width = 'standard', titleColor) {
3
+ return renderPanel({
4
+ content: rows,
5
+ contentAlign: 'left',
6
+ footer,
7
+ footerColor: titleColor,
8
+ footerDivider: true,
9
+ padding: {
10
+ bottom: 1,
11
+ left: 2,
12
+ right: 2,
13
+ top: 1,
14
+ },
15
+ title,
16
+ titleColor,
17
+ width,
18
+ });
19
+ }
20
+ //# sourceMappingURL=statusPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusPanel.js","sourceRoot":"","sources":["../../../src/ui/components/statusPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,IAAuB,EACvB,MAAc,EACd,QAAuB,UAAU,EACjC,UAAwB;IAExB,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,MAAM;QACpB,MAAM;QACN,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;SACP;QACD,KAAK;QACL,UAAU;QACV,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './components';
2
+ export * from './presenters';
3
+ export * from './primitives';
4
+ export * from './stream';
5
+ export * from './theme';
@@ -0,0 +1,6 @@
1
+ export * from './components/index.js';
2
+ export * from './presenters/index.js';
3
+ export * from './primitives/index.js';
4
+ export * from './stream/index.js';
5
+ export * from './theme/index.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { BillingPresenterOptions } from '../../modules/billing/billing.presenter';
2
+ export { formatBillingResultAsJson, formatBillingResultAsText } from '../../modules/billing/billing.presenter';
@@ -0,0 +1,2 @@
1
+ export { formatBillingResultAsJson, formatBillingResultAsText } from '../../modules/billing/billing.presenter.js';
2
+ //# sourceMappingURL=billing.presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/billing.presenter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1 @@
1
+ export { formatConfig, formatConfigAsText, formatConfigDoctor, formatConfigDoctorAsText, formatConfigPath, } from '../../modules/config/config.presenter';
@@ -0,0 +1,2 @@
1
+ export { formatConfig, formatConfigAsText, formatConfigDoctor, formatConfigDoctorAsText, formatConfigPath, } from '../../modules/config/config.presenter.js';
2
+ //# sourceMappingURL=config.presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/config.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,uCAAuC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function formatCliError(error: unknown, useJson: boolean): string;
@@ -0,0 +1,89 @@
1
+ import { ZodError } from 'zod';
2
+ import { AppError } from '../../lib/errors/app-error.js';
3
+ import { errorPanel } from '../components/errorPanel.js';
4
+ import { renderJson } from '../primitives/renderJson.js';
5
+ import { bold } from '../primitives/text.js';
6
+ import { formatZodError } from './errors.zod-presenter.js';
7
+ function formatErrorTitle(code) {
8
+ switch (code) {
9
+ case 'CONFIGURATION_ERROR':
10
+ return 'Error de configuracion';
11
+ case 'INPUT_VALIDATION_ERROR':
12
+ return 'Error de entrada';
13
+ default:
14
+ return 'Error';
15
+ }
16
+ }
17
+ function formatErrorHint(error) {
18
+ switch (error.code) {
19
+ case 'CONFIGURATION_ERROR':
20
+ return 'Revise la configuracion con `arcli config` o corra `arcli config revisar`.';
21
+ case 'INPUT_VALIDATION_ERROR':
22
+ return 'Revise los parametros del comando con `ayuda` e intente nuevamente.';
23
+ default:
24
+ return null;
25
+ }
26
+ }
27
+ function detectTransientError(message) {
28
+ if (message.includes('coe.alreadyAuthenticated')) {
29
+ return {
30
+ sugerencia: 'WSAA informo que ya existe un TA valido para este servicio. Espere unos segundos y vuelva a intentar sin cambiar el payload.',
31
+ title: 'Error transitorio WSAA',
32
+ };
33
+ }
34
+ if (message.includes('Transacción Activa')) {
35
+ return {
36
+ sugerencia: 'ARCA devolvio una transaccion activa. Espere unos segundos y reintente la emision antes de modificar datos del comprobante.',
37
+ title: 'Error transitorio ARCA',
38
+ };
39
+ }
40
+ return null;
41
+ }
42
+ function formatErrorDetails(details) {
43
+ if (!details) {
44
+ return [];
45
+ }
46
+ return Object.entries(details)
47
+ .filter(([, value]) => value !== null && value !== undefined && value !== '')
48
+ .map(([key, value]) => {
49
+ const label = key === 'path' ? 'Ruta' : key;
50
+ return `${bold(`${label}:`)} ${String(value)}`;
51
+ });
52
+ }
53
+ function formatErrorDetailsAsJson(details) {
54
+ if (!details) {
55
+ return null;
56
+ }
57
+ return Object.fromEntries(Object.entries(details)
58
+ .filter(([, value]) => value !== null && value !== undefined && value !== '')
59
+ .map(([key, value]) => [key === 'path' ? 'ruta' : key, value]));
60
+ }
61
+ export function formatCliError(error, useJson) {
62
+ if (error instanceof ZodError) {
63
+ return formatZodError(error, useJson);
64
+ }
65
+ if (error instanceof AppError) {
66
+ if (useJson) {
67
+ return renderJson({
68
+ codigo: error.code,
69
+ detalles: formatErrorDetailsAsJson(error.details),
70
+ error: error.message,
71
+ });
72
+ }
73
+ const details = formatErrorDetails(error.details);
74
+ const hint = formatErrorHint(error);
75
+ return errorPanel(formatErrorTitle(error.code), error.message, details, hint ?? undefined);
76
+ }
77
+ const message = error instanceof Error ? error.message : 'Ocurrio un error inesperado.';
78
+ const transientError = detectTransientError(message);
79
+ if (useJson) {
80
+ return renderJson({
81
+ codigo: transientError ? 'TRANSIENT_ERROR' : 'UNEXPECTED_ERROR',
82
+ detalles: null,
83
+ error: message,
84
+ sugerencia: transientError?.sugerencia ?? null,
85
+ });
86
+ }
87
+ return errorPanel(transientError?.title ?? 'Error inesperado', message, [], transientError?.sugerencia ?? 'Si el problema persiste, revise la configuracion o reintente con mas contexto.');
88
+ }
89
+ //# sourceMappingURL=errors.presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.presenter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ZodError } from 'zod';
2
+ export declare function formatZodError(error: ZodError, useJson: boolean): string;
@@ -0,0 +1,82 @@
1
+ import { errorPanel } from '../components/errorPanel.js';
2
+ import { renderJson } from '../primitives/renderJson.js';
3
+ import { bold } from '../primitives/text.js';
4
+ const ZOD_PATH_LABELS = {
5
+ associatedVoucher: 'comprobante asociado',
6
+ billingDate: 'fecha del comprobante',
7
+ concept: 'concepto',
8
+ currencyCode: 'moneda',
9
+ documentNumber: 'numero de documento',
10
+ documentType: 'tipo de documento',
11
+ dueDay: 'dia de vencimiento',
12
+ exchangeRate: 'cotizacion',
13
+ ivaCondition: 'IVA receptor',
14
+ pointOfSale: 'punto de venta',
15
+ serviceEndDate: 'servicio hasta',
16
+ serviceStartDate: 'servicio desde',
17
+ totalAmount: 'monto',
18
+ };
19
+ const ZOD_PUBLIC_PATHS = {
20
+ associatedVoucher: ['comprobanteAsociado'],
21
+ billingDate: ['fechaComprobante'],
22
+ concept: ['concepto'],
23
+ currencyCode: ['codigoMoneda'],
24
+ documentNumber: ['numeroDocumento'],
25
+ documentType: ['tipoDocumento'],
26
+ dueDay: ['dia'],
27
+ exchangeRate: ['cotizacionMoneda'],
28
+ ivaCondition: ['ivaReceptor'],
29
+ pointOfSale: ['puntoVenta'],
30
+ serviceEndDate: ['servicioHasta'],
31
+ serviceStartDate: ['servicioDesde'],
32
+ totalAmount: ['montoTotal'],
33
+ };
34
+ function formatZodIssuePath(path) {
35
+ if (path.length === 0) {
36
+ return 'Entrada';
37
+ }
38
+ return path.map((segment) => String(segment)).join('.');
39
+ }
40
+ function humanizeZodIssue(issue) {
41
+ const pathKey = formatZodIssuePath(issue.path);
42
+ const label = ZOD_PATH_LABELS[pathKey] ?? pathKey;
43
+ if (issue.code === 'invalid_type' && issue.input === undefined) {
44
+ return `Falta ${label}.`;
45
+ }
46
+ if (issue.code === 'too_small' && typeof issue.minimum === 'number') {
47
+ if (pathKey === 'totalAmount') {
48
+ return 'El monto debe ser mayor a 0.';
49
+ }
50
+ return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} debe ser mayor a ${issue.minimum}.`;
51
+ }
52
+ if (issue.code === 'invalid_value') {
53
+ return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} tiene un valor no soportado.`;
54
+ }
55
+ if (issue.code === 'invalid_type') {
56
+ return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} tiene un formato invalido.`;
57
+ }
58
+ return issue.message;
59
+ }
60
+ function formatPublicIssuePath(path) {
61
+ const pathKey = formatZodIssuePath(path);
62
+ return ZOD_PUBLIC_PATHS[pathKey] ?? path.map((segment) => String(segment));
63
+ }
64
+ export function formatZodError(error, useJson) {
65
+ if (useJson) {
66
+ return renderJson({
67
+ codigo: 'INPUT_VALIDATION_ERROR',
68
+ detalles: error.issues.map((issue) => ({
69
+ mensaje: humanizeZodIssue(issue),
70
+ ruta: formatPublicIssuePath(issue.path),
71
+ })),
72
+ error: 'Hay parametros invalidos o incompletos en la entrada.',
73
+ });
74
+ }
75
+ const detailLines = error.issues.map((issue) => {
76
+ const pathKey = formatZodIssuePath(issue.path);
77
+ const label = ZOD_PATH_LABELS[pathKey] ?? pathKey;
78
+ return `${bold(`${label}:`)} ${humanizeZodIssue(issue)}`;
79
+ });
80
+ return errorPanel('Error de entrada', 'Hay parametros invalidos o incompletos en la entrada.', detailLines, 'Revise los parametros del comando con `ayuda` e intente nuevamente.');
81
+ }
82
+ //# sourceMappingURL=errors.zod-presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.zod-presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.zod-presenter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './billing.presenter';
2
+ export * from './config.presenter';
3
+ export * from './errors.presenter';
4
+ export * from './showcase.presenter';
@@ -0,0 +1,5 @@
1
+ export * from './billing.presenter.js';
2
+ export * from './config.presenter.js';
3
+ export * from './errors.presenter.js';
4
+ export * from './showcase.presenter.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export { renderStorybookShowcase, type StorybookScene } from '../../modules/storybook/showcase';
@@ -0,0 +1,2 @@
1
+ export { renderStorybookShowcase } from '../../modules/storybook/showcase.js';
2
+ //# sourceMappingURL=showcase.presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase.presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/showcase.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAuB,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from './renderDivider';
2
+ export * from './renderFooter';
3
+ export * from './renderJson';
4
+ export * from './renderKeyValue';
5
+ export * from './renderLogo';
6
+ export * from './renderObject';
7
+ export * from './renderPanel';
8
+ export * from './renderSubtitle';
9
+ export * from './renderTable';
10
+ export * from './text';
@@ -0,0 +1,11 @@
1
+ export * from './renderDivider.js';
2
+ export * from './renderFooter.js';
3
+ export * from './renderJson.js';
4
+ export * from './renderKeyValue.js';
5
+ export * from './renderLogo.js';
6
+ export * from './renderObject.js';
7
+ export * from './renderPanel.js';
8
+ export * from './renderSubtitle.js';
9
+ export * from './renderTable.js';
10
+ export * from './text.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface RenderDividerProps {
2
+ readonly character?: string;
3
+ readonly width: number;
4
+ }
5
+ export declare function renderDivider(props: RenderDividerProps): string;
@@ -0,0 +1,5 @@
1
+ import { centerText } from './text.js';
2
+ export function renderDivider(props) {
3
+ return centerText((props.character ?? '═').repeat(props.width), props.width);
4
+ }
5
+ //# sourceMappingURL=renderDivider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderDivider.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderDivider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAOpC,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,OAAO,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type UiTextColor } from './text';
2
+ export interface RenderFooterProps {
3
+ readonly text: string;
4
+ readonly textColor?: UiTextColor;
5
+ readonly width: number;
6
+ }
7
+ export declare function renderFooter(props: RenderFooterProps): string;
@@ -0,0 +1,6 @@
1
+ import { centerText, colorize } from './text.js';
2
+ export function renderFooter(props) {
3
+ const color = props.textColor ?? 'neutral';
4
+ return centerText(colorize(props.text, color), props.width);
5
+ }
6
+ //# sourceMappingURL=renderFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderFooter.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderFooter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAoB,MAAM,QAAQ,CAAC;AAQhE,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;IAE3C,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type OutputTarget } from './text';
2
+ export declare function renderJson(value: unknown): string;
3
+ export declare function highlightJsonValues(content: string, target?: OutputTarget): string;
@@ -0,0 +1,19 @@
1
+ import { colorize } from './text.js';
2
+ export function renderJson(value) {
3
+ return JSON.stringify(value, null, 2);
4
+ }
5
+ export function highlightJsonValues(content, target = 'stdout') {
6
+ return content.replace(/("(\\u[\da-fA-F]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)/g, (token) => {
7
+ if (token.startsWith('"') && token.endsWith(':')) {
8
+ return token;
9
+ }
10
+ if (token.startsWith('"')) {
11
+ return colorize(token, 'success', target);
12
+ }
13
+ if (token === 'true' || token === 'false' || token === 'null') {
14
+ return colorize(token, 'warning', target);
15
+ }
16
+ return colorize(token, 'warning', target);
17
+ });
18
+ }
19
+ //# sourceMappingURL=renderJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderJson.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqB,MAAM,QAAQ,CAAC;AAErD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,SAAuB,QAAQ;IAClF,OAAO,OAAO,CAAC,OAAO,CACpB,sGAAsG,EACtG,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9D,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type UiWidthPreset } from '../theme/theme';
2
+ export interface RenderKeyValueOptions {
3
+ readonly gap?: number;
4
+ readonly labelWidth?: number;
5
+ }
6
+ /**
7
+ * Ancho de columna de etiqueta como porcentaje del panel (columnWidths[0]),
8
+ * sin bajar de lo que necesita la etiqueta mas larga. Por defecto reparte
9
+ * el ancho en partes iguales entre las columnas (50/50 para las 2 columnas
10
+ * habituales de label/value).
11
+ */
12
+ export declare function resolveKeyValueLabelWidth(preset: UiWidthPreset, rows: ReadonlyArray<readonly [string, ...unknown[]]>, columnWidths?: readonly number[]): number;
13
+ export declare function renderKeyValue(label: string, value: string | number | null | undefined, options?: RenderKeyValueOptions): string;
14
+ export declare function renderKeyValueRows(rows: ReadonlyArray<readonly [string, string | number | null | undefined]>, options?: RenderKeyValueOptions): string[];
@@ -0,0 +1,34 @@
1
+ import { UI_THEME } from '../theme/theme.js';
2
+ import { toneText } from './text.js';
3
+ const DEFAULT_COLUMN_WIDTHS = [50, 50];
4
+ /**
5
+ * Ancho de columna de etiqueta como porcentaje del panel (columnWidths[0]),
6
+ * sin bajar de lo que necesita la etiqueta mas larga. Por defecto reparte
7
+ * el ancho en partes iguales entre las columnas (50/50 para las 2 columnas
8
+ * habituales de label/value).
9
+ */
10
+ export function resolveKeyValueLabelWidth(preset, rows, columnWidths = DEFAULT_COLUMN_WIDTHS) {
11
+ const innerWidth = UI_THEME.widths[preset].min -
12
+ (UI_THEME.spacing.panelPadding.left ?? 0) -
13
+ (UI_THEME.spacing.panelPadding.right ?? 0) -
14
+ 2;
15
+ const labelPercentage = columnWidths[0] ?? 100 / columnWidths.length;
16
+ const proportionalWidth = Math.round(innerWidth * (labelPercentage / 100));
17
+ const naturalWidth = Math.max(...rows.map(([label]) => label.length), 0);
18
+ return Math.max(naturalWidth, proportionalWidth);
19
+ }
20
+ function normalizeValue(value) {
21
+ const normalizedValue = value === null || value === undefined || value === '' ? 'N/D' : String(value);
22
+ return normalizedValue;
23
+ }
24
+ export function renderKeyValue(label, value, options = {}) {
25
+ const labelWidth = options.labelWidth ?? UI_THEME.table.labelWidth;
26
+ const gap = ' '.repeat(options.gap ?? UI_THEME.table.gap);
27
+ return `${toneText(label.padEnd(labelWidth), 'neutral')}${gap}${normalizeValue(value)}`;
28
+ }
29
+ export function renderKeyValueRows(rows, options = {}) {
30
+ const widestLabel = Math.max(...rows.map(([label]) => label.length), 0);
31
+ const labelWidth = options.labelWidth ?? widestLabel;
32
+ return rows.map(([label, value]) => renderKeyValue(label, value, { ...options, labelWidth }));
33
+ }
34
+ //# sourceMappingURL=renderKeyValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderKeyValue.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderKeyValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOlC,MAAM,qBAAqB,GAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAqB,EACrB,IAAoD,EACpD,eAAkC,qBAAqB;IAEvD,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG;QAC3B,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;QACzC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;IACrE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,KAAyC;IAC/D,MAAM,eAAe,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtG,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,KAAyC,EACzC,UAAiC,EAAE;IAEnC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1D,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAA0E,EAC1E,UAAiC,EAAE;IAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ARCLI_ASCII_BANNER: string;
2
+ export declare function renderLogo(): string;
@@ -0,0 +1,28 @@
1
+ import { colorize } from './text.js';
2
+ export const ARCLI_ASCII_BANNER = [
3
+ ' d8888 8888888b. .d8888b. 888 8888888 ',
4
+ ' d88888 888 Y88b d88P Y88b 888 888 ',
5
+ ' d88P888 888 888 888 888 888 888 ',
6
+ ' d88P 888 888 d88P 888 888 888 ',
7
+ ' d88P 888 8888888P" 888 888 888 ',
8
+ ' d88P 888 888 T88b 888 888 888 888 ',
9
+ ' d8888888888 888 T88b Y88b d88P 888 888 ',
10
+ 'd88P 888 888 T88b "Y8888P" 88888888 8888888 ',
11
+ ].join('\n');
12
+ // Columna donde termina "AR" (con el espacio entre letras) y arranca "CLI",
13
+ // segun las columnas en blanco de ARCLI_ASCII_BANNER (letras separadas por
14
+ // una columna vacia en las 8 filas: 12, 23, 34, 43).
15
+ const ARCLI_BANNER_AR_CLI_SPLIT_COLUMN = 23;
16
+ function renderLogoWidth() {
17
+ return ARCLI_ASCII_BANNER.split('\n')[0]?.length ?? 0;
18
+ }
19
+ export function renderLogo() {
20
+ const logo = ARCLI_ASCII_BANNER.split('\n').map((line) => {
21
+ const ar = line.slice(0, ARCLI_BANNER_AR_CLI_SPLIT_COLUMN);
22
+ const cli = line.slice(ARCLI_BANNER_AR_CLI_SPLIT_COLUMN);
23
+ return `${colorize(ar, 'info')}${colorize(cli, 'neutral')}`;
24
+ });
25
+ const credit = '-LcsGrz'.padStart(renderLogoWidth() - 1);
26
+ return `\n\n${[...logo, credit].join('\n')}\n\n`;
27
+ }
28
+ //# sourceMappingURL=renderLogo.js.map
@@ -0,0 +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;IACxB,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,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzD,OAAO,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function renderObject(value: unknown): string;