@mks2508/better-logger 0.14.0-alpha.2 → 0.18.2-alpha.1

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 (454) hide show
  1. package/README.md +289 -185
  2. package/dist/Logger.d.ts +576 -205
  3. package/dist/Logger.d.ts.map +1 -1
  4. package/dist/ScopedLogger.d.ts +48 -292
  5. package/dist/ScopedLogger.d.ts.map +1 -1
  6. package/dist/chunks/HookBridge-CiRfR67f.cjs +190 -0
  7. package/dist/chunks/HookBridge-CiRfR67f.cjs.map +1 -0
  8. package/dist/chunks/HookBridge-SgMmbXZB.js +173 -0
  9. package/dist/chunks/HookBridge-SgMmbXZB.js.map +1 -0
  10. package/dist/chunks/LogContext-Cwn-1Zzb.js +85 -0
  11. package/dist/chunks/LogContext-Cwn-1Zzb.js.map +1 -0
  12. package/dist/chunks/LogContext-L7HzynFw.cjs +90 -0
  13. package/dist/chunks/LogContext-L7HzynFw.cjs.map +1 -0
  14. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs +166 -0
  15. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs.map +1 -0
  16. package/dist/chunks/SerializerBridge-BkpQu5c9.js +149 -0
  17. package/dist/chunks/SerializerBridge-BkpQu5c9.js.map +1 -0
  18. package/dist/chunks/StyleManager-CIpd6wbO.cjs +92 -0
  19. package/dist/chunks/StyleManager-CIpd6wbO.cjs.map +1 -0
  20. package/dist/chunks/StyleManager-LCvVlVdx.js +87 -0
  21. package/dist/chunks/StyleManager-LCvVlVdx.js.map +1 -0
  22. package/dist/chunks/core-Dzz7agGa.cjs +39 -0
  23. package/dist/chunks/core-Dzz7agGa.cjs.map +1 -0
  24. package/dist/chunks/core-PoT7RrTK.js +34 -0
  25. package/dist/chunks/core-PoT7RrTK.js.map +1 -0
  26. package/dist/chunks/environment-detector-CI3TrWK_.js +110 -0
  27. package/dist/chunks/environment-detector-CI3TrWK_.js.map +1 -0
  28. package/dist/chunks/environment-detector-Cnn6wr6O.cjs +163 -0
  29. package/dist/chunks/environment-detector-Cnn6wr6O.cjs.map +1 -0
  30. package/dist/chunks/server-fallback-BUKjdLS7.cjs +42 -0
  31. package/dist/chunks/server-fallback-BUKjdLS7.cjs.map +1 -0
  32. package/dist/chunks/server-fallback-BsuWH1Dk.js +37 -0
  33. package/dist/chunks/server-fallback-BsuWH1Dk.js.map +1 -0
  34. package/dist/chunks/spinner-D3FsF78o.js +700 -0
  35. package/dist/chunks/spinner-D3FsF78o.js.map +1 -0
  36. package/dist/chunks/spinner-DNvxbM9a.cjs +747 -0
  37. package/dist/chunks/spinner-DNvxbM9a.cjs.map +1 -0
  38. package/dist/chunks/styling-84N8T97t.js +941 -0
  39. package/dist/chunks/styling-84N8T97t.js.map +1 -0
  40. package/dist/chunks/styling-Cg5saQ46.cjs +994 -0
  41. package/dist/chunks/styling-Cg5saQ46.cjs.map +1 -0
  42. package/dist/chunks/transports-BiDk345e.js +715 -0
  43. package/dist/chunks/transports-BiDk345e.js.map +1 -0
  44. package/dist/chunks/transports-COPWmlF1.cjs +756 -0
  45. package/dist/chunks/transports-COPWmlF1.cjs.map +1 -0
  46. package/dist/chunks/utils-BqlFYocD.cjs +698 -0
  47. package/dist/chunks/utils-BqlFYocD.cjs.map +1 -0
  48. package/dist/chunks/utils-VETbVpkR.js +579 -0
  49. package/dist/chunks/utils-VETbVpkR.js.map +1 -0
  50. package/dist/cli/commands/ExportCommand.d.ts +8 -26
  51. package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
  52. package/dist/cli/index.d.ts +1 -2
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli-module.d.ts +13 -0
  55. package/dist/cli-module.d.ts.map +1 -0
  56. package/dist/cli.cjs +11 -0
  57. package/dist/cli.js +3 -0
  58. package/dist/constants.d.ts +16 -47
  59. package/dist/constants.d.ts.map +1 -1
  60. package/dist/context/LogContext.d.ts +146 -0
  61. package/dist/context/LogContext.d.ts.map +1 -0
  62. package/dist/context/index.d.ts +6 -0
  63. package/dist/context/index.d.ts.map +1 -0
  64. package/dist/context-module.d.ts +6 -0
  65. package/dist/context-module.d.ts.map +1 -0
  66. package/dist/context.cjs +3 -0
  67. package/dist/context.js +2 -0
  68. package/dist/core.cjs +281 -2
  69. package/dist/core.cjs.map +1 -1
  70. package/dist/core.d.ts +6 -7
  71. package/dist/core.d.ts.map +1 -1
  72. package/dist/core.js +258 -314
  73. package/dist/core.js.map +1 -1
  74. package/dist/example.d.ts.map +1 -1
  75. package/dist/hooks/HookBridge.d.ts +26 -0
  76. package/dist/hooks/HookBridge.d.ts.map +1 -0
  77. package/dist/hooks/HookManager.d.ts +26 -0
  78. package/dist/hooks/HookManager.d.ts.map +1 -0
  79. package/dist/hooks/index.d.ts +7 -0
  80. package/dist/hooks/index.d.ts.map +1 -0
  81. package/dist/hooks-module.d.ts +7 -0
  82. package/dist/hooks-module.d.ts.map +1 -0
  83. package/dist/hooks.cjs +5 -0
  84. package/dist/hooks.js +2 -0
  85. package/dist/index.cjs +2522 -2
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.ts +42 -130
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +2447 -158
  90. package/dist/index.js.map +1 -1
  91. package/dist/node-module.d.ts +10 -0
  92. package/dist/node-module.d.ts.map +1 -0
  93. package/dist/node.cjs +13 -0
  94. package/dist/node.cjs.map +1 -0
  95. package/dist/node.js +12 -0
  96. package/dist/node.js.map +1 -0
  97. package/dist/playground/TerminalBridge.d.ts +46 -0
  98. package/dist/playground/TerminalBridge.d.ts.map +1 -0
  99. package/dist/playground/box.d.ts +14 -0
  100. package/dist/playground/box.d.ts.map +1 -0
  101. package/dist/playground/cli-table.d.ts +14 -0
  102. package/dist/playground/cli-table.d.ts.map +1 -0
  103. package/dist/playground/divider.d.ts +10 -0
  104. package/dist/playground/divider.d.ts.map +1 -0
  105. package/dist/playground/header.d.ts +11 -0
  106. package/dist/playground/header.d.ts.map +1 -0
  107. package/dist/playground/index.d.ts +11 -0
  108. package/dist/playground/index.d.ts.map +1 -0
  109. package/dist/playground/server-fallback.d.ts +27 -0
  110. package/dist/playground/server-fallback.d.ts.map +1 -0
  111. package/dist/playground/spinner.d.ts +48 -0
  112. package/dist/playground/spinner.d.ts.map +1 -0
  113. package/dist/playground/step.d.ts +14 -0
  114. package/dist/playground/step.d.ts.map +1 -0
  115. package/dist/playground-module.d.ts +11 -0
  116. package/dist/playground-module.d.ts.map +1 -0
  117. package/dist/playground.cjs +9 -0
  118. package/dist/playground.js +2 -0
  119. package/dist/serializers/SerializerBridge.d.ts +21 -0
  120. package/dist/serializers/SerializerBridge.d.ts.map +1 -0
  121. package/dist/serializers/SerializerRegistry.d.ts +16 -0
  122. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  123. package/dist/serializers/index.d.ts +7 -0
  124. package/dist/serializers/index.d.ts.map +1 -0
  125. package/dist/serializers-module.d.ts +7 -0
  126. package/dist/serializers-module.d.ts.map +1 -0
  127. package/dist/serializers.cjs +5 -0
  128. package/dist/serializers.js +2 -0
  129. package/dist/styles/StyleManager.d.ts +83 -0
  130. package/dist/styles/StyleManager.d.ts.map +1 -0
  131. package/dist/styles/index.d.ts +7 -0
  132. package/dist/styles/index.d.ts.map +1 -0
  133. package/dist/styles-module.d.ts +7 -0
  134. package/dist/styles-module.d.ts.map +1 -0
  135. package/dist/styles.cjs +7 -0
  136. package/dist/styles.js +3 -0
  137. package/dist/styling/banners.d.ts +6 -2
  138. package/dist/styling/banners.d.ts.map +1 -1
  139. package/dist/styling/index.d.ts +8 -3
  140. package/dist/styling/index.d.ts.map +1 -1
  141. package/dist/terminal/color-converter.d.ts +73 -0
  142. package/dist/terminal/color-converter.d.ts.map +1 -0
  143. package/dist/terminal/formatter.d.ts +23 -0
  144. package/dist/terminal/formatter.d.ts.map +1 -0
  145. package/dist/transports/ConsoleTransport.d.ts +9 -0
  146. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  147. package/dist/transports/FileTransport.d.ts +56 -0
  148. package/dist/transports/FileTransport.d.ts.map +1 -0
  149. package/dist/transports/HttpTransport.d.ts +67 -0
  150. package/dist/transports/HttpTransport.d.ts.map +1 -0
  151. package/dist/transports/OtlpTransport.d.ts +148 -0
  152. package/dist/transports/OtlpTransport.d.ts.map +1 -0
  153. package/dist/transports/TransportBridge.d.ts +37 -0
  154. package/dist/transports/TransportBridge.d.ts.map +1 -0
  155. package/dist/transports/TransportManager.d.ts +36 -0
  156. package/dist/transports/TransportManager.d.ts.map +1 -0
  157. package/dist/transports/index.d.ts +6 -0
  158. package/dist/transports/index.d.ts.map +1 -0
  159. package/dist/transports-module.d.ts +10 -0
  160. package/dist/transports-module.d.ts.map +1 -0
  161. package/dist/transports.cjs +7 -0
  162. package/dist/transports.js +2 -0
  163. package/dist/types/core.d.ts +188 -6
  164. package/dist/types/core.d.ts.map +1 -1
  165. package/dist/types/handlers.d.ts +0 -67
  166. package/dist/types/handlers.d.ts.map +1 -1
  167. package/dist/types/hooks.d.ts +60 -0
  168. package/dist/types/hooks.d.ts.map +1 -0
  169. package/dist/types/index.d.ts +7 -3
  170. package/dist/types/index.d.ts.map +1 -1
  171. package/dist/types/serializers.d.ts +25 -0
  172. package/dist/types/serializers.d.ts.map +1 -0
  173. package/dist/types/transports.d.ts +127 -0
  174. package/dist/types/transports.d.ts.map +1 -0
  175. package/dist/utils/ansi-colors.d.ts +115 -0
  176. package/dist/utils/ansi-colors.d.ts.map +1 -0
  177. package/dist/utils/environment-detector.d.ts +53 -0
  178. package/dist/utils/environment-detector.d.ts.map +1 -0
  179. package/dist/utils/formatting.d.ts +1 -0
  180. package/dist/utils/formatting.d.ts.map +1 -1
  181. package/dist/utils/index.d.ts +3 -2
  182. package/dist/utils/index.d.ts.map +1 -1
  183. package/dist/utils/output.d.ts +8 -11
  184. package/dist/utils/output.d.ts.map +1 -1
  185. package/dist/utils/stackTrace.d.ts.map +1 -1
  186. package/dist/utils/timestamps.d.ts +0 -12
  187. package/dist/utils/timestamps.d.ts.map +1 -1
  188. package/package.json +96 -21
  189. package/.claude/settings.local.json +0 -39
  190. package/.github/workflows/ci-quality.yml +0 -357
  191. package/.github/workflows/docs-demo.yml +0 -119
  192. package/.github/workflows/releases-core.yml +0 -512
  193. package/.github/workflows/releases-full.yml +0 -582
  194. package/.github/workflows-backup/ci.yml +0 -221
  195. package/.github/workflows-backup/nightly.yml +0 -196
  196. package/.github/workflows-backup/release-optimized.yml +0 -373
  197. package/.github/workflows-backup/release.yml +0 -269
  198. package/.release-notes-0.2.0.md +0 -129
  199. package/.yamllint +0 -28
  200. package/CHANGELOG.json +0 -865
  201. package/CLAUDE.md +0 -204
  202. package/bun.lock +0 -323
  203. package/demo.html +0 -847
  204. package/dist/.tsbuildinfo +0 -1
  205. package/dist/Logger.js +0 -1124
  206. package/dist/ScopedLogger.js +0 -426
  207. package/dist/chunks/Logger-Crw1woqR.js +0 -3464
  208. package/dist/chunks/Logger-Crw1woqR.js.map +0 -1
  209. package/dist/chunks/Logger-D_p3xnbq.js +0 -2
  210. package/dist/chunks/Logger-D_p3xnbq.js.map +0 -1
  211. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +0 -33
  212. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +0 -1
  213. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +0 -2
  214. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +0 -1
  215. package/dist/chunks/environment-Bxbnw4pd.js +0 -544
  216. package/dist/chunks/environment-Bxbnw4pd.js.map +0 -1
  217. package/dist/chunks/environment-Dm66zOML.js +0 -4
  218. package/dist/chunks/environment-Dm66zOML.js.map +0 -1
  219. package/dist/chunks/formatting-C0riPC5_.js +0 -95
  220. package/dist/chunks/formatting-C0riPC5_.js.map +0 -1
  221. package/dist/chunks/formatting-DNCAV66-.js +0 -2
  222. package/dist/chunks/formatting-DNCAV66-.js.map +0 -1
  223. package/dist/cli/CommandProcessor.js +0 -184
  224. package/dist/cli/commands/ConfigCommand.js +0 -88
  225. package/dist/cli/commands/ExportCommand.js +0 -243
  226. package/dist/cli/commands/HistoryCommand.d.ts +0 -50
  227. package/dist/cli/commands/HistoryCommand.d.ts.map +0 -1
  228. package/dist/cli/commands/HistoryCommand.js +0 -96
  229. package/dist/cli/commands/StatusCommand.d.ts +0 -33
  230. package/dist/cli/commands/StatusCommand.d.ts.map +0 -1
  231. package/dist/cli/commands/StatusCommand.js +0 -93
  232. package/dist/cli/commands/ThemeCommand.js +0 -79
  233. package/dist/cli/help.js +0 -118
  234. package/dist/cli/index.js +0 -46
  235. package/dist/constants.js +0 -159
  236. package/dist/example.js +0 -154
  237. package/dist/exports-module.d.ts +0 -203
  238. package/dist/exports-module.d.ts.map +0 -1
  239. package/dist/exports-module.js +0 -260
  240. package/dist/exports.cjs +0 -2
  241. package/dist/exports.cjs.map +0 -1
  242. package/dist/exports.js +0 -238
  243. package/dist/exports.js.map +0 -1
  244. package/dist/handlers/AnalyticsLogHandler.d.ts +0 -11
  245. package/dist/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  246. package/dist/handlers/AnalyticsLogHandler.js +0 -19
  247. package/dist/handlers/ExportLogHandler.d.ts +0 -103
  248. package/dist/handlers/ExportLogHandler.d.ts.map +0 -1
  249. package/dist/handlers/ExportLogHandler.js +0 -516
  250. package/dist/handlers/FileLogHandler.d.ts +0 -36
  251. package/dist/handlers/FileLogHandler.d.ts.map +0 -1
  252. package/dist/handlers/FileLogHandler.js +0 -156
  253. package/dist/handlers/RemoteLogHandler.d.ts +0 -14
  254. package/dist/handlers/RemoteLogHandler.d.ts.map +0 -1
  255. package/dist/handlers/RemoteLogHandler.js +0 -37
  256. package/dist/handlers/index.d.ts +0 -8
  257. package/dist/handlers/index.d.ts.map +0 -1
  258. package/dist/handlers/index.js +0 -7
  259. package/dist/main.js +0 -139
  260. package/dist/styling/LogStyleBuilder.d.ts +0 -149
  261. package/dist/styling/LogStyleBuilder.d.ts.map +0 -1
  262. package/dist/styling/LogStyleBuilder.js +0 -289
  263. package/dist/styling/SemanticStyles.d.ts +0 -181
  264. package/dist/styling/SemanticStyles.d.ts.map +0 -1
  265. package/dist/styling/SemanticStyles.js +0 -339
  266. package/dist/styling/SmartPresets.js +0 -276
  267. package/dist/styling/StyleBuilder.js +0 -280
  268. package/dist/styling/banners.js +0 -155
  269. package/dist/styling/index.js +0 -9
  270. package/dist/styling/themes.js +0 -231
  271. package/dist/styling-module.d.ts +0 -185
  272. package/dist/styling-module.d.ts.map +0 -1
  273. package/dist/styling-module.js +0 -199
  274. package/dist/styling.cjs +0 -2
  275. package/dist/styling.cjs.map +0 -1
  276. package/dist/styling.js +0 -146
  277. package/dist/styling.js.map +0 -1
  278. package/dist/types/Logger.d.ts +0 -700
  279. package/dist/types/Logger.d.ts.map +0 -1
  280. package/dist/types/ScopedLogger.d.ts +0 -310
  281. package/dist/types/ScopedLogger.d.ts.map +0 -1
  282. package/dist/types/cli/CommandProcessor.d.ts +0 -100
  283. package/dist/types/cli/CommandProcessor.d.ts.map +0 -1
  284. package/dist/types/cli/commands/ConfigCommand.d.ts +0 -14
  285. package/dist/types/cli/commands/ConfigCommand.d.ts.map +0 -1
  286. package/dist/types/cli/commands/ExportCommand.d.ts +0 -48
  287. package/dist/types/cli/commands/ExportCommand.d.ts.map +0 -1
  288. package/dist/types/cli/commands/HistoryCommand.d.ts +0 -47
  289. package/dist/types/cli/commands/HistoryCommand.d.ts.map +0 -1
  290. package/dist/types/cli/commands/StatusCommand.d.ts +0 -30
  291. package/dist/types/cli/commands/StatusCommand.d.ts.map +0 -1
  292. package/dist/types/cli/commands/ThemeCommand.d.ts +0 -30
  293. package/dist/types/cli/commands/ThemeCommand.d.ts.map +0 -1
  294. package/dist/types/cli/help.d.ts +0 -12
  295. package/dist/types/cli/help.d.ts.map +0 -1
  296. package/dist/types/cli/index.d.ts +0 -15
  297. package/dist/types/cli/index.d.ts.map +0 -1
  298. package/dist/types/constants.d.ts +0 -119
  299. package/dist/types/constants.d.ts.map +0 -1
  300. package/dist/types/core.js +0 -28
  301. package/dist/types/example.d.ts +0 -18
  302. package/dist/types/example.d.ts.map +0 -1
  303. package/dist/types/exports-module.d.ts +0 -196
  304. package/dist/types/exports-module.d.ts.map +0 -1
  305. package/dist/types/handlers/AnalyticsLogHandler.d.ts +0 -8
  306. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  307. package/dist/types/handlers/ExportLogHandler.d.ts +0 -100
  308. package/dist/types/handlers/ExportLogHandler.d.ts.map +0 -1
  309. package/dist/types/handlers/FileLogHandler.d.ts +0 -33
  310. package/dist/types/handlers/FileLogHandler.d.ts.map +0 -1
  311. package/dist/types/handlers/RemoteLogHandler.d.ts +0 -11
  312. package/dist/types/handlers/RemoteLogHandler.d.ts.map +0 -1
  313. package/dist/types/handlers/index.d.ts +0 -8
  314. package/dist/types/handlers/index.d.ts.map +0 -1
  315. package/dist/types/handlers.js +0 -4
  316. package/dist/types/index.js +0 -4
  317. package/dist/types/main.d.ts +0 -2
  318. package/dist/types/main.d.ts.map +0 -1
  319. package/dist/types/styling/LogStyleBuilder.d.ts +0 -146
  320. package/dist/types/styling/LogStyleBuilder.d.ts.map +0 -1
  321. package/dist/types/styling/SemanticStyles.d.ts +0 -178
  322. package/dist/types/styling/SemanticStyles.d.ts.map +0 -1
  323. package/dist/types/styling/SmartPresets.d.ts +0 -22
  324. package/dist/types/styling/SmartPresets.d.ts.map +0 -1
  325. package/dist/types/styling/StyleBuilder.d.ts +0 -140
  326. package/dist/types/styling/StyleBuilder.d.ts.map +0 -1
  327. package/dist/types/styling/banners.d.ts +0 -42
  328. package/dist/types/styling/banners.d.ts.map +0 -1
  329. package/dist/types/styling/index.d.ts +0 -10
  330. package/dist/types/styling/index.d.ts.map +0 -1
  331. package/dist/types/styling/themes.d.ts +0 -7
  332. package/dist/types/styling/themes.d.ts.map +0 -1
  333. package/dist/types/styling-module.d.ts +0 -178
  334. package/dist/types/styling-module.d.ts.map +0 -1
  335. package/dist/types/types/core.d.ts +0 -221
  336. package/dist/types/types/core.d.ts.map +0 -1
  337. package/dist/types/types/handlers.d.ts +0 -85
  338. package/dist/types/types/handlers.d.ts.map +0 -1
  339. package/dist/types/types/index.d.ts +0 -7
  340. package/dist/types/types/index.d.ts.map +0 -1
  341. package/dist/types/utils/environment.d.ts +0 -47
  342. package/dist/types/utils/environment.d.ts.map +0 -1
  343. package/dist/types/utils/formatting.d.ts +0 -37
  344. package/dist/types/utils/formatting.d.ts.map +0 -1
  345. package/dist/types/utils/index.d.ts +0 -7
  346. package/dist/types/utils/index.d.ts.map +0 -1
  347. package/dist/types/utils/opentui-detection.d.ts +0 -34
  348. package/dist/types/utils/opentui-detection.d.ts.map +0 -1
  349. package/dist/types/utils/output.d.ts +0 -41
  350. package/dist/types/utils/output.d.ts.map +0 -1
  351. package/dist/types/utils/stackTrace.d.ts +0 -6
  352. package/dist/types/utils/stackTrace.d.ts.map +0 -1
  353. package/dist/types/utils/timestamps.d.ts +0 -20
  354. package/dist/types/utils/timestamps.d.ts.map +0 -1
  355. package/dist/utils/environment.d.ts +0 -47
  356. package/dist/utils/environment.d.ts.map +0 -1
  357. package/dist/utils/environment.js +0 -85
  358. package/dist/utils/formatting.js +0 -117
  359. package/dist/utils/index.js +0 -6
  360. package/dist/utils/opentui-detection.d.ts +0 -34
  361. package/dist/utils/opentui-detection.d.ts.map +0 -1
  362. package/dist/utils/opentui-detection.js +0 -116
  363. package/dist/utils/output.js +0 -150
  364. package/dist/utils/stackTrace.js +0 -81
  365. package/dist/utils/timestamps.js +0 -71
  366. package/dist/vite.svg +0 -1
  367. package/docs/API.md +0 -691
  368. package/docs/CORE.md +0 -264
  369. package/docs/DEVELOPMENT.md +0 -731
  370. package/docs/EXPORTS.md +0 -467
  371. package/docs/PACKAGES.md +0 -244
  372. package/docs/STYLING.md +0 -405
  373. package/docs/_config.yml +0 -36
  374. package/docs/index.md +0 -179
  375. package/examples/README.md +0 -208
  376. package/examples/basic-logging.js +0 -75
  377. package/examples/data-export.js +0 -234
  378. package/examples/package.json +0 -16
  379. package/examples/performance-timing.js +0 -170
  380. package/examples/simplified-api.js +0 -124
  381. package/examples/styling-themes.js +0 -207
  382. package/index.html +0 -358
  383. package/packages/core/package.json +0 -57
  384. package/packages/exports/package.json +0 -41
  385. package/packages/nodejs-opentui/README.md +0 -232
  386. package/packages/nodejs-opentui/package.json +0 -72
  387. package/packages/nodejs-opentui/src/LogRenderer.ts +0 -171
  388. package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +0 -178
  389. package/packages/nodejs-opentui/src/components/LogBadge.tsx +0 -131
  390. package/packages/nodejs-opentui/src/index.ts +0 -133
  391. package/packages/nodejs-opentui/src/types.ts +0 -158
  392. package/packages/nodejs-opentui/tsconfig.json +0 -20
  393. package/packages/styling/package.json +0 -41
  394. package/project-utils/README.md +0 -172
  395. package/project-utils/auto-release-gemini.ts +0 -1193
  396. package/project-utils/auto-release-ui.ts +0 -1329
  397. package/project-utils/commit-generator.ts +0 -1385
  398. package/project-utils/commit-ui.ts +0 -264
  399. package/project-utils/git-utils.ts +0 -199
  400. package/project-utils/github-release-manager.ts +0 -466
  401. package/project-utils/project-config.ts +0 -260
  402. package/project-utils/prompt-templates.js +0 -345
  403. package/project-utils/prompt-templates.ts +0 -422
  404. package/project-utils/version-manager.ts +0 -1078
  405. package/public/vite.svg +0 -1
  406. package/src/Logger.ts +0 -1276
  407. package/src/ScopedLogger.ts +0 -454
  408. package/src/cli/CommandProcessor.ts +0 -248
  409. package/src/cli/commands/ConfigCommand.ts +0 -93
  410. package/src/cli/commands/ExportCommand.ts +0 -276
  411. package/src/cli/commands/HistoryCommand.ts +0 -117
  412. package/src/cli/commands/StatusCommand.ts +0 -112
  413. package/src/cli/commands/ThemeCommand.ts +0 -88
  414. package/src/cli/help.ts +0 -127
  415. package/src/cli/index.ts +0 -71
  416. package/src/constants.ts +0 -171
  417. package/src/core.ts +0 -393
  418. package/src/example.ts +0 -210
  419. package/src/exports-module.ts +0 -311
  420. package/src/handlers/AnalyticsLogHandler.ts +0 -22
  421. package/src/handlers/ExportLogHandler.ts +0 -609
  422. package/src/handlers/FileLogHandler.ts +0 -169
  423. package/src/handlers/RemoteLogHandler.ts +0 -42
  424. package/src/handlers/index.ts +0 -8
  425. package/src/index.ts +0 -209
  426. package/src/main.ts +0 -196
  427. package/src/style.css +0 -96
  428. package/src/styling/LogStyleBuilder.ts +0 -355
  429. package/src/styling/SemanticStyles.ts +0 -380
  430. package/src/styling/SmartPresets.ts +0 -288
  431. package/src/styling/StyleBuilder.ts +0 -319
  432. package/src/styling/banners.ts +0 -168
  433. package/src/styling/index.ts +0 -27
  434. package/src/styling/themes.ts +0 -235
  435. package/src/styling-module.ts +0 -244
  436. package/src/types/core.ts +0 -236
  437. package/src/types/handlers.ts +0 -95
  438. package/src/types/index.ts +0 -35
  439. package/src/typescript.svg +0 -1
  440. package/src/utils/environment.ts +0 -94
  441. package/src/utils/formatting.ts +0 -142
  442. package/src/utils/index.ts +0 -21
  443. package/src/utils/opentui-detection.ts +0 -138
  444. package/src/utils/output.ts +0 -185
  445. package/src/utils/stackTrace.ts +0 -95
  446. package/src/utils/timestamps.ts +0 -80
  447. package/src/vite-env.d.ts +0 -1
  448. package/test-core-browser.html +0 -237
  449. package/test-core-node.js +0 -63
  450. package/tests/test-conflict-resolution.ts +0 -391
  451. package/tests/validate-workflows.sh +0 -131
  452. package/tests/yaml-autofix.sh +0 -146
  453. package/tsconfig.json +0 -50
  454. package/vite.config.ts +0 -223
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner-D3FsF78o.js","names":[],"sources":["../../src/terminal/color-converter.ts","../../src/terminal/formatter.ts","../../src/playground/step.ts","../../src/playground/header.ts","../../src/playground/divider.ts","../../src/playground/box.ts","../../src/playground/cli-table.ts","../../src/playground/spinner.ts"],"sourcesContent":["/**\n * Color Converter - CSS colors to ANSI extended color codes\n * Supports 256-color and truecolor (24-bit) terminals\n */\n\nexport type ColorCapability = 'full' | 'basic' | 'none';\n\nexport interface RGB {\n r: number;\n g: number;\n b: number;\n}\n\nconst ANSI_16_COLORS: Record<string, { fg: string; bg: string; bright: { fg: string; bg: string } }> = {\n black: { fg: '30', bg: '40', bright: { fg: '90', bg: '100' } },\n red: { fg: '31', bg: '41', bright: { fg: '91', bg: '101' } },\n green: { fg: '32', bg: '42', bright: { fg: '92', bg: '102' } },\n yellow: { fg: '33', bg: '43', bright: { fg: '93', bg: '103' } },\n blue: { fg: '34', bg: '44', bright: { fg: '94', bg: '104' } },\n magenta: { fg: '35', bg: '45', bright: { fg: '95', bg: '105' } },\n cyan: { fg: '36', bg: '46', bright: { fg: '96', bg: '106' } },\n white: { fg: '37', bg: '47', bright: { fg: '97', bg: '107' } },\n gray: { fg: '90', bg: '100', bright: { fg: '37', bg: '47' } },\n grey: { fg: '90', bg: '100', bright: { fg: '37', bg: '47' } },\n};\n\nconst CSS_NAMED_COLORS: Record<string, string> = {\n aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aqua: '#00ffff',\n aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc',\n bisque: '#ffe4c4', black: '#000000', blanchedalmond: '#ffebcd',\n blue: '#0000ff', blueviolet: '#8a2be2', brown: '#a52a2a',\n burlywood: '#deb887', cadetblue: '#5f9ea0', chartreuse: '#7fff00',\n chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff',\n darkblue: '#00008b', darkcyan: '#008b8b', darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9', darkgreen: '#006400', darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00',\n darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f', darkslateblue: '#483d8b', darkslategray: '#2f4f4f',\n darkturquoise: '#00ced1', darkviolet: '#9400d3', deeppink: '#ff1493',\n deepskyblue: '#00bfff', dimgray: '#696969', dodgerblue: '#1e90ff',\n firebrick: '#b22222', floralwhite: '#fffaf0', forestgreen: '#228b22',\n fuchsia: '#ff00ff', gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff',\n gold: '#ffd700', goldenrod: '#daa520', gray: '#808080',\n green: '#008000', greenyellow: '#adff2f', honeydew: '#f0fff0',\n hotpink: '#ff69b4', indianred: '#cd5c5c', indigo: '#4b0082',\n ivory: '#fffff0', khaki: '#f0e68c', lavender: '#e6e6fa',\n lavenderblush: '#fff0f5', lawngreen: '#7cfc00', lemonchiffon: '#fffacd',\n lightblue: '#add8e6', lightcoral: '#f08080', lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3', lightgreen: '#90ee90',\n lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa', lightslategray: '#778899', lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0', lime: '#00ff00', limegreen: '#32cd32',\n linen: '#faf0e6', magenta: '#ff00ff', maroon: '#800000',\n mediumaquamarine: '#66cdaa', mediumblue: '#0000cd', mediumorchid: '#ba55d3',\n mediumpurple: '#9370db', mediumseagreen: '#3cb371', mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc', mediumvioletred: '#c71585',\n midnightblue: '#191970', mintcream: '#f5fffa', mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5', navajowhite: '#ffdead', navy: '#000080',\n oldlace: '#fdf5e6', olive: '#808000', olivedrab: '#6b8e23',\n orange: '#ffa500', orangered: '#ff4500', orchid: '#da70d6',\n palegoldenrod: '#eee8aa', palegreen: '#98fb98', paleturquoise: '#afeeee',\n palevioletred: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9',\n peru: '#cd853f', pink: '#ffc0cb', plum: '#dda0dd',\n powderblue: '#b0e0e6', purple: '#800080', rebeccapurple: '#663399',\n red: '#ff0000', rosybrown: '#bc8f8f', royalblue: '#4169e1',\n saddlebrown: '#8b4513', salmon: '#fa8072', sandybrown: '#f4a460',\n seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d',\n silver: '#c0c0c0', skyblue: '#87ceeb', slateblue: '#6a5acd',\n slategray: '#708090', snow: '#fffafa', springgreen: '#00ff7f',\n steelblue: '#4682b4', tan: '#d2b48c', teal: '#008080',\n thistle: '#d8bfd8', tomato: '#ff6347', turquoise: '#40e0d0',\n violet: '#ee82ee', wheat: '#f5deb3', white: '#ffffff',\n whitesmoke: '#f5f5f5', yellow: '#ffff00', yellowgreen: '#9acd32',\n};\n\nexport function hexToRgb(hex: string): RGB {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result || !result[1] || !result[2] || !result[3]) {\n return { r: 255, g: 255, b: 255 };\n }\n return {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n };\n}\n\nexport function rgbToHex(r: number, g: number, b: number): string {\n return '#' + [r, g, b].map(x => x.toString(16).padStart(2, '0')).join('');\n}\n\nexport function hexTo256(hex: string): number {\n const { r, g, b } = hexToRgb(hex);\n\n if (r === g && g === b) {\n if (r < 8) return 16;\n if (r > 248) return 231;\n return Math.round(((r - 8) / 247) * 24) + 232;\n }\n\n const ri = Math.round(r / 255 * 5);\n const gi = Math.round(g / 255 * 5);\n const bi = Math.round(b / 255 * 5);\n\n return 16 + (36 * ri) + (6 * gi) + bi;\n}\n\nexport function colorToHex(color: string): string {\n if (color.startsWith('#')) {\n return color;\n }\n\n const named = CSS_NAMED_COLORS[color.toLowerCase()];\n if (named) {\n return named;\n }\n\n const rgbMatch = color.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/);\n if (rgbMatch && rgbMatch[1] && rgbMatch[2] && rgbMatch[3]) {\n return rgbToHex(\n parseInt(rgbMatch[1]),\n parseInt(rgbMatch[2]),\n parseInt(rgbMatch[3])\n );\n }\n\n return '#ffffff';\n}\n\nexport function getANSIForeground(color: string, capability: ColorCapability): string {\n if (capability === 'none') return '';\n\n const lowerColor = color.toLowerCase();\n\n if (capability === 'basic' && ANSI_16_COLORS[lowerColor]) {\n return `\\x1b[${ANSI_16_COLORS[lowerColor].fg}m`;\n }\n\n if (capability === 'basic') {\n const hex = colorToHex(color);\n const nearestBasic = findNearestBasicColor(hex);\n const basicColor = ANSI_16_COLORS[nearestBasic];\n return basicColor ? `\\x1b[${basicColor.fg}m` : '\\x1b[37m';\n }\n\n const hex = colorToHex(color);\n const { r, g, b } = hexToRgb(hex);\n return `\\x1b[38;2;${r};${g};${b}m`;\n}\n\nexport function getANSIBackground(color: string, capability: ColorCapability): string {\n if (capability === 'none') return '';\n\n const lowerColor = color.toLowerCase();\n\n if (capability === 'basic' && ANSI_16_COLORS[lowerColor]) {\n return `\\x1b[${ANSI_16_COLORS[lowerColor].bg}m`;\n }\n\n if (capability === 'basic') {\n const hex = colorToHex(color);\n const nearestBasic = findNearestBasicColor(hex);\n const basicColor = ANSI_16_COLORS[nearestBasic];\n return basicColor ? `\\x1b[${basicColor.bg}m` : '\\x1b[47m';\n }\n\n const hex = colorToHex(color);\n const { r, g, b } = hexToRgb(hex);\n return `\\x1b[48;2;${r};${g};${b}m`;\n}\n\nexport function getANSI256Foreground(colorIndex: number): string {\n return `\\x1b[38;5;${colorIndex}m`;\n}\n\nexport function getANSI256Background(colorIndex: number): string {\n return `\\x1b[48;5;${colorIndex}m`;\n}\n\nfunction findNearestBasicColor(hex: string): string {\n const { r, g, b } = hexToRgb(hex);\n const basicColors: Record<string, RGB> = {\n black: { r: 0, g: 0, b: 0 },\n red: { r: 205, g: 0, b: 0 },\n green: { r: 0, g: 205, b: 0 },\n yellow: { r: 205, g: 205, b: 0 },\n blue: { r: 0, g: 0, b: 238 },\n magenta: { r: 205, g: 0, b: 205 },\n cyan: { r: 0, g: 205, b: 205 },\n white: { r: 229, g: 229, b: 229 },\n };\n\n let nearest = 'white';\n let minDistance = Infinity;\n\n for (const [name, rgb] of Object.entries(basicColors)) {\n const distance = Math.sqrt(\n Math.pow(r - rgb.r, 2) +\n Math.pow(g - rgb.g, 2) +\n Math.pow(b - rgb.b, 2)\n );\n if (distance < minDistance) {\n minDistance = distance;\n nearest = name;\n }\n }\n\n return nearest;\n}\n\nexport function extractGradientColors(gradient: string): string[] {\n const hexMatches = gradient.match(/#[a-fA-F0-9]{6}/g) || [];\n const rgbMatches = gradient.match(/rgba?\\([^)]+\\)/g) || [];\n const namedMatches = gradient.match(/,\\s*([a-z]+)(?:\\s|,|\\))/gi) || [];\n\n const colors: string[] = [\n ...hexMatches,\n ...rgbMatches.map(colorToHex),\n ...namedMatches.map(m => {\n const name = m.replace(/[,\\s)]/g, '').toLowerCase();\n return CSS_NAMED_COLORS[name] || null;\n }).filter((c): c is string => c !== null)\n ];\n\n return colors.length > 0 ? colors : ['#ffffff'];\n}\n\nexport function gradientToSingleColor(gradient: string): string {\n const colors = extractGradientColors(gradient);\n if (colors.length === 0) return '#ffffff';\n if (colors.length === 1) return colors[0] ?? '#ffffff';\n\n const rgbs = colors.map(c => hexToRgb(colorToHex(c)));\n const avgR = Math.round(rgbs.reduce((sum, rgb) => sum + rgb.r, 0) / rgbs.length);\n const avgG = Math.round(rgbs.reduce((sum, rgb) => sum + rgb.g, 0) / rgbs.length);\n const avgB = Math.round(rgbs.reduce((sum, rgb) => sum + rgb.b, 0) / rgbs.length);\n\n return rgbToHex(avgR, avgG, avgB);\n}\n\nexport function cssColorToANSI(\n cssColor: string,\n capability: ColorCapability,\n isBackground: boolean = false\n): string {\n if (capability === 'none') return '';\n\n let resolvedColor: string;\n\n if (cssColor.includes('gradient')) {\n resolvedColor = gradientToSingleColor(cssColor);\n } else {\n resolvedColor = colorToHex(cssColor);\n }\n\n return isBackground\n ? getANSIBackground(resolvedColor, capability)\n : getANSIForeground(resolvedColor, capability);\n}\n\nexport const ANSI = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n blink: '\\x1b[5m',\n inverse: '\\x1b[7m',\n hidden: '\\x1b[8m',\n strikethrough: '\\x1b[9m',\n\n fg: {\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n brightRed: '\\x1b[91m',\n brightGreen: '\\x1b[92m',\n brightYellow: '\\x1b[93m',\n brightBlue: '\\x1b[94m',\n brightMagenta: '\\x1b[95m',\n brightCyan: '\\x1b[96m',\n brightWhite: '\\x1b[97m',\n },\n\n bg: {\n black: '\\x1b[40m',\n red: '\\x1b[41m',\n green: '\\x1b[42m',\n yellow: '\\x1b[43m',\n blue: '\\x1b[44m',\n magenta: '\\x1b[45m',\n cyan: '\\x1b[46m',\n white: '\\x1b[47m',\n gray: '\\x1b[100m',\n brightRed: '\\x1b[101m',\n brightGreen: '\\x1b[102m',\n brightYellow: '\\x1b[103m',\n brightBlue: '\\x1b[104m',\n brightMagenta: '\\x1b[105m',\n brightCyan: '\\x1b[106m',\n brightWhite: '\\x1b[107m',\n },\n\n rgb: (r: number, g: number, b: number) => `\\x1b[38;2;${r};${g};${b}m`,\n bgRgb: (r: number, g: number, b: number) => `\\x1b[48;2;${r};${g};${b}m`,\n color256: (n: number) => `\\x1b[38;5;${n}m`,\n bgColor256: (n: number) => `\\x1b[48;5;${n}m`,\n};\n","/**\n * Terminal Formatter - Alignment, key-value, and advanced terminal formatting\n */\n\nimport { getTerminalWidth } from '../utils/environment-detector.js';\nimport { getANSIForeground, getANSIBackground, ANSI, type ColorCapability } from './color-converter.js';\nimport type { ColumnConfig, ColumnAlign, BadgeStyle, TimestampFormat, LogOptions } from '../types/index.js';\n\nexport function stripAnsi(str: string): string {\n return str.replace(/\\x1b\\[[0-9;]*m/g, '');\n}\n\nexport function getVisibleLength(str: string): number {\n return stripAnsi(str).length;\n}\n\nexport function padToWidth(str: string, width: number, align: ColumnAlign = 'left'): string {\n const visibleLen = getVisibleLength(str);\n if (visibleLen >= width) return str;\n\n const padding = width - visibleLen;\n\n switch (align) {\n case 'right':\n return ' '.repeat(padding) + str;\n case 'center':\n const leftPad = Math.floor(padding / 2);\n const rightPad = padding - leftPad;\n return ' '.repeat(leftPad) + str + ' '.repeat(rightPad);\n case 'left':\n default:\n return str + ' '.repeat(padding);\n }\n}\n\nexport function formatWithRightAlign(\n leftContent: string,\n rightContent: string,\n maxWidth?: number\n): string {\n const width = maxWidth ?? getTerminalWidth();\n const leftLen = getVisibleLength(leftContent);\n const rightLen = getVisibleLength(rightContent);\n\n const gap = width - leftLen - rightLen;\n if (gap <= 1) {\n return `${leftContent} ${rightContent}`;\n }\n\n return `${leftContent}${' '.repeat(gap)}${rightContent}`;\n}\n\nexport function formatColumns(\n columns: ColumnConfig[],\n maxWidth?: number,\n colorCapability: ColorCapability = 'full'\n): string {\n const width = maxWidth ?? getTerminalWidth();\n const totalColumns = columns.length;\n\n const columnsWithWidths = columns.map((col, idx) => {\n if (col.width) return { ...col, calculatedWidth: col.width };\n\n const remainingWidth = width - columns\n .filter((c, i) => i !== idx && c.width)\n .reduce((sum, c) => sum + (c.width ?? 0), 0);\n\n const autoColumns = columns.filter(c => !c.width).length;\n const calculatedWidth = Math.floor(remainingWidth / autoColumns);\n\n return { ...col, calculatedWidth };\n });\n\n return columnsWithWidths.map(col => {\n let content = col.content;\n\n if (col.color && colorCapability !== 'none') {\n const colorCode = getANSIForeground(col.color, colorCapability);\n content = `${colorCode}${content}${ANSI.reset}`;\n }\n\n return padToWidth(content, col.calculatedWidth, col.align);\n }).join('');\n}\n\nexport function formatKeyValue(\n obj: Record<string, unknown>,\n colorCapability: ColorCapability = 'full',\n options: { separator?: string; keyColor?: string; valueColor?: string } = {}\n): string {\n const {\n separator = ' ',\n keyColor = '#888888',\n valueColor = '#00ffff'\n } = options;\n\n const entries = Object.entries(obj);\n if (entries.length === 0) return '';\n\n const keyColorCode = colorCapability !== 'none'\n ? getANSIForeground(keyColor, colorCapability)\n : '';\n const valueColorCode = colorCapability !== 'none'\n ? getANSIForeground(valueColor, colorCapability)\n : '';\n const reset = colorCapability !== 'none' ? ANSI.reset : '';\n\n return entries\n .map(([key, value]) => {\n const valueStr = typeof value === 'object'\n ? JSON.stringify(value)\n : String(value);\n return `${keyColorCode}${key}:${reset} ${valueColorCode}${valueStr}${reset}`;\n })\n .join(separator);\n}\n\nexport function isKeyValueObject(obj: unknown): obj is Record<string, unknown> {\n if (typeof obj !== 'object' || obj === null) return false;\n if (Array.isArray(obj)) return false;\n\n const proto = Object.getPrototypeOf(obj);\n if (proto !== Object.prototype && proto !== null) return false;\n\n const values = Object.values(obj);\n return values.every(v =>\n typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n v === null\n );\n}\n\nexport function formatBadge(\n badge: string,\n style: BadgeStyle = 'brackets',\n colorCapability: ColorCapability = 'full',\n color?: string\n): string {\n const reset = colorCapability !== 'none' ? ANSI.reset : '';\n\n const text = badge.toUpperCase();\n\n switch (style) {\n case 'rounded':\n const colorCode1 = color && colorCapability !== 'none' ? getANSIForeground(color, colorCapability) : '';\n const bgBlack1 = colorCapability !== 'none' ? ANSI.bg.black : '';\n return `${bgBlack1}${colorCode1}⟨${text}⟩${reset}`;\n case 'plain':\n const colorCode2 = color && colorCapability !== 'none' ? getANSIForeground(color, colorCapability) : '';\n return `${colorCode2}${text}${reset}`;\n case 'unicode':\n const colorCode3 = color && colorCapability !== 'none' ? getANSIForeground(color, colorCapability) : '';\n const bgBlack3 = colorCapability !== 'none' ? ANSI.bg.black : '';\n return `${bgBlack3}${colorCode3}╭${text}╮${reset}`;\n case 'pill':\n // Badge con background de color y texto blanco/negro\n const bgColor = color && colorCapability !== 'none' ? getANSIBackground(color, colorCapability) : '';\n const fgColor = colorCapability !== 'none' ? getANSIForeground('#000000', colorCapability) : '';\n return `${bgColor}${fgColor}[${text}]${reset}`;\n case 'brackets':\n default:\n const colorCode5 = color && colorCapability !== 'none' ? getANSIForeground(color, colorCapability) : '';\n const bgBlack5 = colorCapability !== 'none' ? ANSI.bg.black : '';\n return `${bgBlack5}${colorCode5}[${text}]${reset}`;\n }\n}\n\nexport function formatTimestamp(\n date: Date = new Date(),\n format: TimestampFormat = 'time'\n): string {\n switch (format) {\n case 'iso':\n return date.toISOString();\n case 'date':\n return date.toISOString().split('T')[0] ?? '';\n case 'time':\n return date.toTimeString().slice(0, 8);\n case 'timeMs':\n return date.toTimeString().slice(0, 8) + '.' +\n String(date.getMilliseconds()).padStart(3, '0');\n case 'relative':\n return formatRelativeTime(date);\n case 'elapsed':\n return formatElapsedTime(date);\n case 'custom':\n default:\n return date.toLocaleTimeString();\n }\n}\n\nlet startTime: number | null = null;\n\nexport function formatRelativeTime(date: Date): string {\n if (startTime === null) {\n startTime = Date.now();\n }\n\n const diff = date.getTime() - startTime;\n\n if (diff < 1000) {\n return `+${diff}ms`;\n } else if (diff < 60000) {\n return `+${(diff / 1000).toFixed(1)}s`;\n } else {\n const mins = Math.floor(diff / 60000);\n const secs = Math.floor((diff % 60000) / 1000);\n return `+${mins}m${secs}s`;\n }\n}\n\nexport function formatElapsedTime(date: Date): string {\n if (startTime === null) {\n startTime = Date.now();\n }\n\n const diff = date.getTime() - startTime;\n const hours = Math.floor(diff / 3600000);\n const mins = Math.floor((diff % 3600000) / 60000);\n const secs = Math.floor((diff % 60000) / 1000);\n\n return `${String(hours).padStart(2, '0')}:${String(mins).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;\n}\n\nexport function resetStartTime(): void {\n startTime = Date.now();\n}\n\nexport function applyLogOptions(\n message: string,\n options: LogOptions,\n colorCapability: ColorCapability = 'full'\n): string {\n let result = message;\n\n if (options.rightAlign) {\n result = formatWithRightAlign(message, options.rightAlign);\n }\n\n return result;\n}\n","/**\n * @fileoverview Step progress renderer for CLI primitives\n */\n\nimport { getANSIForeground, ANSI, type ColorCapability } from '../terminal/color-converter.js';\n\n/**\n * Renders a step progress indicator like ` [2/5] Analyzing repository...`\n * @param current - Current step number\n * @param total - Total number of steps\n * @param msg - Step description message\n * @param colorCap - Terminal color capability\n * @returns Formatted step string\n */\nexport function renderStep(current: number, total: number, msg: string, colorCap: ColorCapability): string {\n const label = `[${current}/${total}]`;\n const colored = colorCap !== 'none'\n ? getANSIForeground('#00bcd4', colorCap) + ANSI.bold + label + ANSI.reset\n : label;\n return ` ${colored} ${msg}`;\n}\n","/**\n * @fileoverview Header renderer for CLI primitives\n */\n\nimport { ANSI } from '../terminal/color-converter.js';\n\n/**\n * Renders a styled header with optional subtitle\n * @param title - Main title text\n * @param subtitle - Optional subtitle (rendered dimmed)\n * @returns Formatted header string\n */\nexport function renderHeader(title: string, subtitle?: string): string {\n const t = ANSI.bold + title + ANSI.reset;\n const s = subtitle ? ANSI.dim + ` ${subtitle}` + ANSI.reset : '';\n return ` ${t}${s}`;\n}\n","/**\n * @fileoverview Divider renderer for CLI primitives\n */\n\nimport { ANSI } from '../terminal/color-converter.js';\nimport { getTerminalWidth } from '../utils/environment-detector.js';\n\n/**\n * Renders a horizontal divider line\n * @param width - Optional explicit width (defaults to terminal width capped at 60)\n * @returns Formatted divider string\n */\nexport function renderDivider(width?: number): string {\n const w = width ?? Math.min(getTerminalWidth() - 4, 60);\n return ANSI.dim + ' ' + '\\u2500'.repeat(w) + ANSI.reset;\n}\n","/**\n * @fileoverview Box renderer for CLI primitives\n */\n\nimport type { IBoxOptions } from '../types/core.js';\nimport type { ColorCapability } from '../terminal/color-converter.js';\nimport { getANSIForeground, ANSI } from '../terminal/color-converter.js';\nimport { getTerminalWidth } from '../utils/environment-detector.js';\nimport { stripAnsi, getVisibleLength } from '../terminal/formatter.js';\n\n/**\n * Border character sets for different styles\n */\nconst BORDER_CHARS = {\n single: { tl: '\\u250c', tr: '\\u2510', bl: '\\u2514', br: '\\u2518', h: '\\u2500', v: '\\u2502' },\n rounded: { tl: '\\u256d', tr: '\\u256e', bl: '\\u2570', br: '\\u256f', h: '\\u2500', v: '\\u2502' },\n double: { tl: '\\u2554', tr: '\\u2557', bl: '\\u255a', br: '\\u255d', h: '\\u2550', v: '\\u2551' },\n bold: { tl: '\\u250f', tr: '\\u2513', bl: '\\u2517', br: '\\u251b', h: '\\u2501', v: '\\u2503' },\n} as const;\n\n/**\n * Renders content inside a bordered box\n * @param content - Content string (may contain newlines)\n * @param options - Box rendering options\n * @param colorCap - Terminal color capability\n * @returns Formatted box string with border\n */\nexport function renderBox(content: string, options: IBoxOptions = {}, colorCap: ColorCapability = 'full'): string {\n const {\n title,\n borderColor,\n borderStyle = 'rounded',\n padding = 0,\n } = options;\n\n const chars = BORDER_CHARS[borderStyle] ?? BORDER_CHARS.rounded;\n const lines = content.split('\\n');\n const maxTermWidth = Math.min(getTerminalWidth() - 4, 80);\n\n // Calculate content width from visible text\n const contentWidths = lines.map(l => getVisibleLength(l));\n const titleWidth = title ? stripAnsi(title).length + 2 : 0; // +2 for spaces around title\n const maxContentWidth = Math.max(...contentWidths, titleWidth);\n const innerWidth = Math.min(maxContentWidth + 2, maxTermWidth); // +2 for horizontal padding\n\n // Color wrapper for border chars\n const bc = borderColor && colorCap !== 'none'\n ? getANSIForeground(borderColor, colorCap)\n : '';\n const reset = bc ? ANSI.reset : '';\n\n const wrap = (char: string) => `${bc}${char}${reset}`;\n\n // Build top border (with optional title)\n let topBorder: string;\n if (title) {\n const titleStr = ` ${title} `;\n const afterTitle = innerWidth - stripAnsi(titleStr).length;\n topBorder = ` ${wrap(chars.tl)}${wrap(chars.h)}${wrap(titleStr)}${wrap(chars.h.repeat(Math.max(0, afterTitle - 1)))}${wrap(chars.tr)}`;\n } else {\n topBorder = ` ${wrap(chars.tl)}${wrap(chars.h.repeat(innerWidth))}${wrap(chars.tr)}`;\n }\n\n // Build bottom border\n const bottomBorder = ` ${wrap(chars.bl)}${wrap(chars.h.repeat(innerWidth))}${wrap(chars.br)}`;\n\n // Build padding lines\n const emptyLine = ` ${wrap(chars.v)}${' '.repeat(innerWidth)}${wrap(chars.v)}`;\n const paddingLines = padding > 0 ? Array(padding).fill(emptyLine) : [];\n\n // Build content lines\n const contentLines = lines.map(line => {\n const visible = getVisibleLength(line);\n const pad = innerWidth - visible - 1; // -1 for left space\n return ` ${wrap(chars.v)} ${line}${' '.repeat(Math.max(0, pad))}${wrap(chars.v)}`;\n });\n\n return [\n topBorder,\n ...paddingLines,\n ...contentLines,\n ...paddingLines,\n bottomBorder,\n ].join('\\n');\n}\n","/**\n * @fileoverview CLI table renderer for CLI primitives\n */\n\nimport type { ITableOptions } from '../types/core.js';\nimport type { ColorCapability } from '../terminal/color-converter.js';\nimport { getANSIForeground, ANSI } from '../terminal/color-converter.js';\nimport { getVisibleLength, padToWidth } from '../terminal/formatter.js';\n\n/**\n * Renders an array of objects as a formatted ASCII table\n * @param rows - Array of row objects\n * @param options - Table rendering options\n * @param colorCap - Terminal color capability\n * @returns Formatted table string\n */\nexport function renderTable(\n rows: Record<string, unknown>[],\n options: ITableOptions = {},\n colorCap: ColorCapability = 'full'\n): string {\n if (rows.length === 0) return '';\n\n // Determine columns from options or first row's keys\n const columns = options.columns ?? Object.keys(rows[0]!);\n const headers = options.head ?? columns;\n\n // Calculate column widths (max of header and all values)\n const colWidths = columns.map((col, i) => {\n const headerLen = getVisibleLength(headers[i] ?? col);\n const maxValueLen = rows.reduce((max, row) => {\n const val = String(row[col] ?? '');\n return Math.max(max, getVisibleLength(val));\n }, 0);\n return Math.max(headerLen, maxValueLen) + 2; // +2 for padding\n });\n\n // Color helpers\n const cyan = colorCap !== 'none' ? getANSIForeground('#00bcd4', colorCap) : '';\n const dim = colorCap !== 'none' ? ANSI.dim : '';\n const reset = colorCap !== 'none' ? ANSI.reset : '';\n\n // Build header row\n const headerRow = ' ' + columns.map((col, i) => {\n const label = headers[i] ?? col;\n return cyan + ANSI.bold + padToWidth(` ${label}`, colWidths[i]!) + reset;\n }).join('');\n\n // Build separator\n const separator = ' ' + dim + colWidths.map(w => '\\u2500'.repeat(w)).join('\\u2500') + reset;\n\n // Build data rows\n const dataRows = rows.map(row => {\n return ' ' + columns.map((col, i) => {\n const val = String(row[col] ?? '');\n return padToWidth(` ${val}`, colWidths[i]!);\n }).join('');\n });\n\n return [headerRow, separator, ...dataRows].join('\\n');\n}\n","/**\n * @fileoverview Built-in spinner implementation for CLI primitives\n */\n\nimport type { ISpinnerHandle, LoggerConfig } from '../types/core.js';\nimport type { Logger } from '../Logger.js';\nimport { ANSI } from '../terminal/color-converter.js';\n\n/** Braille-based spinner animation frames */\nconst SPINNER_FRAMES = ['\\u280b', '\\u2819', '\\u2839', '\\u2838', '\\u283c', '\\u2834', '\\u2826', '\\u2827', '\\u2807', '\\u280f'];\n\n/** Spinner frame interval in milliseconds */\nconst FRAME_INTERVAL = 80;\n\n/**\n * Interactive terminal spinner with in-place line updates.\n * Writes to stderr to avoid polluting piped stdout.\n *\n * @implements {ISpinnerHandle}\n */\nexport class SpinnerManager implements ISpinnerHandle {\n private message: string;\n private frameIndex = 0;\n private interval: ReturnType<typeof setInterval> | null = null;\n private _logger: Logger;\n\n constructor(message: string, _config: LoggerConfig, logger: Logger) {\n this.message = message;\n this._logger = logger;\n }\n\n /** Start the spinner animation */\n start(): void {\n if (this.interval) return; // Already running\n\n // Switch logger to buffer mode to prevent garbled output\n this._logger.updateConfig({ outputMode: 'silent' });\n\n this.frameIndex = 0;\n this.render();\n this.interval = setInterval(() => {\n this.frameIndex = (this.frameIndex + 1) % SPINNER_FRAMES.length;\n this.render();\n }, FRAME_INTERVAL);\n }\n\n /** Stop the spinner without a status message */\n stop(): void {\n this.clearInterval();\n this.clearLine();\n // Restore logger output\n this._logger.updateConfig({ outputMode: 'console' });\n }\n\n /** Stop with a success indicator */\n succeed(msg?: string): void {\n this.clearInterval();\n this.clearLine();\n const text = msg ?? this.message;\n process.stderr.write(` ${ANSI.fg.green}\\u2713${ANSI.reset} ${text}\\n`);\n this._logger.updateConfig({ outputMode: 'console' });\n }\n\n /** Stop with a failure indicator */\n fail(msg?: string): void {\n this.clearInterval();\n this.clearLine();\n const text = msg ?? this.message;\n process.stderr.write(` ${ANSI.fg.red}\\u2717${ANSI.reset} ${text}\\n`);\n this._logger.updateConfig({ outputMode: 'console' });\n }\n\n /** Update the spinner text while running */\n text(msg: string): void {\n this.message = msg;\n }\n\n private render(): void {\n const frame = SPINNER_FRAMES[this.frameIndex] ?? SPINNER_FRAMES[0];\n const line = ` ${ANSI.fg.cyan}${frame}${ANSI.reset} ${this.message}`;\n process.stderr.write(`\\r\\x1b[K${line}`);\n }\n\n private clearLine(): void {\n process.stderr.write('\\r\\x1b[K');\n }\n\n private clearInterval(): void {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = null;\n }\n }\n}\n\n/**\n * No-op spinner for non-TTY environments or silent mode.\n * Logs start/succeed/fail as plain log messages.\n *\n * @implements {ISpinnerHandle}\n */\nexport class NoopSpinner implements ISpinnerHandle {\n private message: string;\n private _logger: Logger;\n\n constructor(message: string, logger: Logger) {\n this.message = message;\n this._logger = logger;\n }\n\n start(): void {\n this._logger.info(this.message);\n }\n\n stop(): void {\n // No-op\n }\n\n succeed(msg?: string): void {\n this._logger.success(msg ?? this.message);\n }\n\n fail(msg?: string): void {\n this._logger.error(msg ?? this.message);\n }\n\n text(msg: string): void {\n this.message = msg;\n }\n}\n"],"mappings":"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"}