@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,149 @@
1
+ //#region src/serializers/SerializerRegistry.ts
2
+ const DEFAULT_CONFIG = {
3
+ maxDepth: 5,
4
+ circular: "placeholder",
5
+ preserveUndefined: false
6
+ };
7
+ var SerializerRegistry = class {
8
+ serializers = /* @__PURE__ */ new Map();
9
+ config;
10
+ constructor(config = {}) {
11
+ this.config = {
12
+ ...DEFAULT_CONFIG,
13
+ ...config
14
+ };
15
+ this.registerDefaults();
16
+ }
17
+ registerDefaults() {
18
+ this.add(Error, (err) => ({
19
+ name: err.name,
20
+ message: err.message,
21
+ stack: err.stack?.split("\n").slice(0, 10),
22
+ ...err.cause ? { cause: this.serialize(err.cause) } : {}
23
+ }), 100);
24
+ this.add(Date, (date) => ({
25
+ iso: date.toISOString(),
26
+ timestamp: date.getTime()
27
+ }), 90);
28
+ this.add(RegExp, (regex) => ({
29
+ pattern: regex.source,
30
+ flags: regex.flags
31
+ }), 90);
32
+ this.add(Map, (map, ctx) => {
33
+ const obj = {};
34
+ map.forEach((value, key) => {
35
+ const keyStr = typeof key === "object" ? JSON.stringify(key) : String(key);
36
+ obj[keyStr] = this.serializeInternal(value, {
37
+ ...ctx,
38
+ depth: ctx.depth + 1,
39
+ path: [...ctx.path, keyStr]
40
+ });
41
+ });
42
+ return {
43
+ __type: "Map",
44
+ entries: obj
45
+ };
46
+ }, 80);
47
+ this.add(Set, (set, ctx) => ({
48
+ __type: "Set",
49
+ values: Array.from(set).map((v, i) => this.serializeInternal(v, {
50
+ ...ctx,
51
+ depth: ctx.depth + 1,
52
+ path: [...ctx.path, `[${i}]`]
53
+ }))
54
+ }), 80);
55
+ if (typeof Buffer !== "undefined") this.add(Buffer, (buf) => ({
56
+ __type: "Buffer",
57
+ length: buf.length,
58
+ preview: buf.slice(0, 50).toString("hex")
59
+ }), 70);
60
+ }
61
+ add(type, serializer, priority = 50) {
62
+ this.serializers.set(type, {
63
+ type,
64
+ serializer,
65
+ priority
66
+ });
67
+ }
68
+ remove(type) {
69
+ return this.serializers.delete(type);
70
+ }
71
+ has(type) {
72
+ return this.serializers.has(type);
73
+ }
74
+ getAll() {
75
+ return Array.from(this.serializers.values()).sort((a, b) => (b.priority ?? 50) - (a.priority ?? 50));
76
+ }
77
+ findSerializer(value) {
78
+ const sorted = this.getAll();
79
+ for (const entry of sorted) if (value instanceof entry.type) return entry;
80
+ return null;
81
+ }
82
+ serializeInternal(value, context) {
83
+ if (value === null) return null;
84
+ if (value === void 0) return this.config.preserveUndefined ? void 0 : "[undefined]";
85
+ if (typeof value === "function") return `[Function: ${value.name || "anonymous"}]`;
86
+ if (typeof value !== "object") return value;
87
+ if (context.depth >= this.config.maxDepth) return "[Max Depth]";
88
+ if (context.seen.has(value)) switch (this.config.circular) {
89
+ case "error": throw new Error(`Circular reference at ${context.path.join(".")}`);
90
+ case "skip": return;
91
+ default: return "[Circular]";
92
+ }
93
+ context.seen.add(value);
94
+ const serializer = this.findSerializer(value);
95
+ if (serializer) return serializer.serializer(value, context);
96
+ if (Array.isArray(value)) return value.map((item, i) => this.serializeInternal(item, {
97
+ ...context,
98
+ depth: context.depth + 1,
99
+ path: [...context.path, `[${i}]`]
100
+ }));
101
+ const result = {};
102
+ for (const [key, val] of Object.entries(value)) result[key] = this.serializeInternal(val, {
103
+ ...context,
104
+ depth: context.depth + 1,
105
+ path: [...context.path, key]
106
+ });
107
+ return result;
108
+ }
109
+ serialize(value, config) {
110
+ const mergedConfig = {
111
+ ...this.config,
112
+ ...config
113
+ };
114
+ return this.serializeInternal(value, {
115
+ depth: 0,
116
+ maxDepth: mergedConfig.maxDepth,
117
+ path: [],
118
+ seen: /* @__PURE__ */ new WeakSet()
119
+ });
120
+ }
121
+ };
122
+ let _defaultRegistry = null;
123
+ function getDefaultSerializerRegistry() {
124
+ if (!_defaultRegistry) _defaultRegistry = new SerializerRegistry();
125
+ return _defaultRegistry;
126
+ }
127
+ //#endregion
128
+ //#region src/serializers/SerializerBridge.ts
129
+ /**
130
+ * Creates a SerializerBridge instance.
131
+ */
132
+ function createSerializerBridge() {
133
+ const serializerRegistry = new SerializerRegistry();
134
+ return {
135
+ addSerializer(type, serializer, priority) {
136
+ serializerRegistry.add(type, serializer, priority);
137
+ },
138
+ removeSerializer(type) {
139
+ return serializerRegistry.remove(type);
140
+ },
141
+ getSerializerRegistry() {
142
+ return serializerRegistry;
143
+ }
144
+ };
145
+ }
146
+ //#endregion
147
+ export { SerializerRegistry as n, getDefaultSerializerRegistry as r, createSerializerBridge as t };
148
+
149
+ //# sourceMappingURL=SerializerBridge-BkpQu5c9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializerBridge-BkpQu5c9.js","names":[],"sources":["../../src/serializers/SerializerRegistry.ts","../../src/serializers/SerializerBridge.ts"],"sourcesContent":["import type {\n SerializerFn,\n SerializerContext,\n SerializerEntry,\n SerializerConfig,\n ISerializerRegistry\n} from '../types/index.js';\n\nconst DEFAULT_CONFIG: Required<SerializerConfig> = {\n maxDepth: 5,\n circular: 'placeholder',\n preserveUndefined: false\n};\n\nexport class SerializerRegistry implements ISerializerRegistry {\n private serializers: Map<Function, SerializerEntry> = new Map();\n private config: Required<SerializerConfig>;\n\n constructor(config: SerializerConfig = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.registerDefaults();\n }\n\n private registerDefaults(): void {\n this.add(Error, (err: Error) => ({\n name: err.name,\n message: err.message,\n stack: err.stack?.split('\\n').slice(0, 10),\n ...(err.cause ? { cause: this.serialize(err.cause) } : {})\n }), 100);\n\n this.add(Date, (date: Date) => ({\n iso: date.toISOString(),\n timestamp: date.getTime()\n }), 90);\n\n this.add(RegExp, (regex: RegExp) => ({\n pattern: regex.source,\n flags: regex.flags\n }), 90);\n\n this.add(Map, (map: Map<any, any>, ctx) => {\n const obj: Record<string, any> = {};\n map.forEach((value, key) => {\n const keyStr = typeof key === 'object' ? JSON.stringify(key) : String(key);\n obj[keyStr] = this.serializeInternal(value, {\n ...ctx,\n depth: ctx.depth + 1,\n path: [...ctx.path, keyStr]\n });\n });\n return { __type: 'Map', entries: obj };\n }, 80);\n\n this.add(Set, (set: Set<any>, ctx) => ({\n __type: 'Set',\n values: Array.from(set).map((v, i) =>\n this.serializeInternal(v, {\n ...ctx,\n depth: ctx.depth + 1,\n path: [...ctx.path, `[${i}]`]\n })\n )\n }), 80);\n\n if (typeof Buffer !== 'undefined') {\n this.add(Buffer as any, (buf: Buffer) => ({\n __type: 'Buffer',\n length: buf.length,\n preview: buf.slice(0, 50).toString('hex')\n }), 70);\n }\n }\n\n add<T>(\n type: new (...args: any[]) => T,\n serializer: SerializerFn<T>,\n priority: number = 50\n ): void {\n this.serializers.set(type, { type, serializer, priority });\n }\n\n remove<T>(type: new (...args: any[]) => T): boolean {\n return this.serializers.delete(type);\n }\n\n has<T>(type: new (...args: any[]) => T): boolean {\n return this.serializers.has(type);\n }\n\n getAll(): SerializerEntry[] {\n return Array.from(this.serializers.values())\n .sort((a, b) => (b.priority ?? 50) - (a.priority ?? 50));\n }\n\n private findSerializer(value: any): SerializerEntry | null {\n const sorted = this.getAll();\n for (const entry of sorted) {\n if (value instanceof entry.type) {\n return entry;\n }\n }\n return null;\n }\n\n private serializeInternal(value: any, context: SerializerContext): any {\n if (value === null) return null;\n if (value === undefined) return this.config.preserveUndefined ? undefined : '[undefined]';\n if (typeof value === 'function') return `[Function: ${value.name || 'anonymous'}]`;\n if (typeof value !== 'object') return value;\n\n if (context.depth >= this.config.maxDepth) {\n return '[Max Depth]';\n }\n\n if (context.seen.has(value)) {\n switch (this.config.circular) {\n case 'error':\n throw new Error(`Circular reference at ${context.path.join('.')}`);\n case 'skip':\n return undefined;\n case 'placeholder':\n default:\n return '[Circular]';\n }\n }\n context.seen.add(value);\n\n const serializer = this.findSerializer(value);\n if (serializer) {\n return serializer.serializer(value, context);\n }\n\n if (Array.isArray(value)) {\n return value.map((item, i) =>\n this.serializeInternal(item, {\n ...context,\n depth: context.depth + 1,\n path: [...context.path, `[${i}]`]\n })\n );\n }\n\n const result: Record<string, any> = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = this.serializeInternal(val, {\n ...context,\n depth: context.depth + 1,\n path: [...context.path, key]\n });\n }\n return result;\n }\n\n serialize(value: any, config?: SerializerConfig): any {\n const mergedConfig = { ...this.config, ...config };\n return this.serializeInternal(value, {\n depth: 0,\n maxDepth: mergedConfig.maxDepth,\n path: [],\n seen: new WeakSet()\n });\n }\n}\n\nlet _defaultRegistry: SerializerRegistry | null = null;\n\nexport function getDefaultSerializerRegistry(): SerializerRegistry {\n if (!_defaultRegistry) {\n _defaultRegistry = new SerializerRegistry();\n }\n return _defaultRegistry;\n}\n","/**\n * @fileoverview SerializerBridge — SerializerRegistry facade.\n * Encapsulates serializer registration, removal, and registry access.\n */\n\nimport type { SerializerFn } from '../types/index.js';\nimport { SerializerRegistry } from './index.js';\n\n/**\n * Bridge for serializer management.\n */\nexport interface SerializerBridge {\n /** Adds a serializer for a type. */\n addSerializer<T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number): void;\n removeSerializer<T>(type: new (...args: unknown[]) => T): boolean;\n /** Returns the underlying registry. */\n getSerializerRegistry(): SerializerRegistry;\n}\n\n/**\n * Creates a SerializerBridge instance.\n */\nexport function createSerializerBridge(): SerializerBridge {\n const serializerRegistry = new SerializerRegistry();\n\n return {\n addSerializer<T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number): void {\n serializerRegistry.add(type, serializer, priority);\n },\n\n removeSerializer<T>(type: new (...args: unknown[]) => T): boolean {\n return serializerRegistry.remove(type);\n },\n\n getSerializerRegistry(): SerializerRegistry {\n return serializerRegistry;\n }\n };\n}\n"],"mappings":";AAQA,MAAM,iBAA6C;CAC/C,UAAU;CACV,UAAU;CACV,mBAAmB;AACvB;AAEA,IAAa,qBAAb,MAA+D;CAC3D,8BAAsD,IAAI,IAAI;CAC9D;CAEA,YAAY,SAA2B,CAAC,GAAG;EACvC,KAAK,SAAS;GAAE,GAAG;GAAgB,GAAG;EAAO;EAC7C,KAAK,iBAAiB;CAC1B;CAEA,mBAAiC;EAC7B,KAAK,IAAI,QAAQ,SAAgB;GAC7B,MAAM,IAAI;GACV,SAAS,IAAI;GACb,OAAO,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;GACzC,GAAI,IAAI,QAAQ,EAAE,OAAO,KAAK,UAAU,IAAI,KAAK,EAAE,IAAI,CAAC;EAC5D,IAAI,GAAG;EAEP,KAAK,IAAI,OAAO,UAAgB;GAC5B,KAAK,KAAK,YAAY;GACtB,WAAW,KAAK,QAAQ;EAC5B,IAAI,EAAE;EAEN,KAAK,IAAI,SAAS,WAAmB;GACjC,SAAS,MAAM;GACf,OAAO,MAAM;EACjB,IAAI,EAAE;EAEN,KAAK,IAAI,MAAM,KAAoB,QAAQ;GACvC,MAAM,MAA2B,CAAC;GAClC,IAAI,SAAS,OAAO,QAAQ;IACxB,MAAM,SAAS,OAAO,QAAQ,WAAW,KAAK,UAAU,GAAG,IAAI,OAAO,GAAG;IACzE,IAAI,UAAU,KAAK,kBAAkB,OAAO;KACxC,GAAG;KACH,OAAO,IAAI,QAAQ;KACnB,MAAM,CAAC,GAAG,IAAI,MAAM,MAAM;IAC9B,CAAC;GACL,CAAC;GACD,OAAO;IAAE,QAAQ;IAAO,SAAS;GAAI;EACzC,GAAG,EAAE;EAEL,KAAK,IAAI,MAAM,KAAe,SAAS;GACnC,QAAQ;GACR,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,MAC5B,KAAK,kBAAkB,GAAG;IACtB,GAAG;IACH,OAAO,IAAI,QAAQ;IACnB,MAAM,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,EAAE;GAChC,CAAC,CACL;EACJ,IAAI,EAAE;EAEN,IAAI,OAAO,WAAW,aAClB,KAAK,IAAI,SAAgB,SAAiB;GACtC,QAAQ;GACR,QAAQ,IAAI;GACZ,SAAS,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,KAAK;EAC5C,IAAI,EAAE;CAEd;CAEA,IACI,MACA,YACA,WAAmB,IACf;EACJ,KAAK,YAAY,IAAI,MAAM;GAAE;GAAM;GAAY;EAAS,CAAC;CAC7D;CAEA,OAAU,MAA0C;EAChD,OAAO,KAAK,YAAY,OAAO,IAAI;CACvC;CAEA,IAAO,MAA0C;EAC7C,OAAO,KAAK,YAAY,IAAI,IAAI;CACpC;CAEA,SAA4B;EACxB,OAAO,MAAM,KAAK,KAAK,YAAY,OAAO,CAAC,CAAC,CACvC,MAAM,GAAG,OAAO,EAAE,YAAY,OAAO,EAAE,YAAY,GAAG;CAC/D;CAEA,eAAuB,OAAoC;EACvD,MAAM,SAAS,KAAK,OAAO;EAC3B,KAAK,MAAM,SAAS,QAChB,IAAI,iBAAiB,MAAM,MACvB,OAAO;EAGf,OAAO;CACX;CAEA,kBAA0B,OAAY,SAAiC;EACnE,IAAI,UAAU,MAAM,OAAO;EAC3B,IAAI,UAAU,KAAA,GAAW,OAAO,KAAK,OAAO,oBAAoB,KAAA,IAAY;EAC5E,IAAI,OAAO,UAAU,YAAY,OAAO,cAAc,MAAM,QAAQ,YAAY;EAChF,IAAI,OAAO,UAAU,UAAU,OAAO;EAEtC,IAAI,QAAQ,SAAS,KAAK,OAAO,UAC7B,OAAO;EAGX,IAAI,QAAQ,KAAK,IAAI,KAAK,GACtB,QAAQ,KAAK,OAAO,UAApB;GACI,KAAK,SACD,MAAM,IAAI,MAAM,yBAAyB,QAAQ,KAAK,KAAK,GAAG,GAAG;GACrE,KAAK,QACD;GAEJ,SACI,OAAO;EACf;EAEJ,QAAQ,KAAK,IAAI,KAAK;EAEtB,MAAM,aAAa,KAAK,eAAe,KAAK;EAC5C,IAAI,YACA,OAAO,WAAW,WAAW,OAAO,OAAO;EAG/C,IAAI,MAAM,QAAQ,KAAK,GACnB,OAAO,MAAM,KAAK,MAAM,MACpB,KAAK,kBAAkB,MAAM;GACzB,GAAG;GACH,OAAO,QAAQ,QAAQ;GACvB,MAAM,CAAC,GAAG,QAAQ,MAAM,IAAI,EAAE,EAAE;EACpC,CAAC,CACL;EAGJ,MAAM,SAA8B,CAAC;EACrC,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,GACzC,OAAO,OAAO,KAAK,kBAAkB,KAAK;GACtC,GAAG;GACH,OAAO,QAAQ,QAAQ;GACvB,MAAM,CAAC,GAAG,QAAQ,MAAM,GAAG;EAC/B,CAAC;EAEL,OAAO;CACX;CAEA,UAAU,OAAY,QAAgC;EAClD,MAAM,eAAe;GAAE,GAAG,KAAK;GAAQ,GAAG;EAAO;EACjD,OAAO,KAAK,kBAAkB,OAAO;GACjC,OAAO;GACP,UAAU,aAAa;GACvB,MAAM,CAAC;GACP,sBAAM,IAAI,QAAQ;EACtB,CAAC;CACL;AACJ;AAEA,IAAI,mBAA8C;AAElD,SAAgB,+BAAmD;CAC/D,IAAI,CAAC,kBACD,mBAAmB,IAAI,mBAAmB;CAE9C,OAAO;AACX;;;;;;ACtJA,SAAgB,yBAA2C;CACvD,MAAM,qBAAqB,IAAI,mBAAmB;CAElD,OAAO;EACH,cAAiB,MAAqC,YAA6B,UAAyB;GACxG,mBAAmB,IAAI,MAAM,YAAY,QAAQ;EACrD;EAEA,iBAAoB,MAA8C;GAC9D,OAAO,mBAAmB,OAAO,IAAI;EACzC;EAEA,wBAA4C;GACxC,OAAO;EACX;CACJ;AACJ"}
@@ -0,0 +1,92 @@
1
+ const require_styling = require("./styling-Cg5saQ46.cjs");
2
+ //#region src/styles/StyleManager.ts
3
+ /**
4
+ * @fileoverview StyleManager — style preset and display settings management.
5
+ * Encapsulates active preset tracking, display toggles, and the
6
+ * module-level LEVEL_STYLES variable.
7
+ *
8
+ * Wired into Logger.ts in F4. Logger delegates style queries and theme
9
+ * changes through this bridge so that the module-level LEVEL_STYLES stay
10
+ * in sync across the module.
11
+ */
12
+ function createDefaultDisplaySettings() {
13
+ return {
14
+ showTimestamp: true,
15
+ showLocation: true,
16
+ showBadges: true
17
+ };
18
+ }
19
+ /**
20
+ * Creates a StyleManager instance.
21
+ */
22
+ function createStyleManager(options = {}) {
23
+ const displaySettings = createDefaultDisplaySettings();
24
+ let activePreset;
25
+ let activePresetName;
26
+ let customization;
27
+ return {
28
+ getDisplaySettings() {
29
+ return { ...displaySettings };
30
+ },
31
+ applyPreset(name) {
32
+ if (!require_styling.hasPreset(name)) return false;
33
+ const presetConfig = require_styling.getSmartPreset(name);
34
+ if (presetConfig) {
35
+ displaySettings.showTimestamp = presetConfig.timestamp?.show ?? true;
36
+ displaySettings.showLocation = presetConfig.location?.show ?? true;
37
+ activePreset = presetConfig;
38
+ activePresetName = name;
39
+ }
40
+ return true;
41
+ },
42
+ getAvailablePresets() {
43
+ return require_styling.getAvailablePresets();
44
+ },
45
+ getStyles() {
46
+ return LEVEL_STYLES;
47
+ },
48
+ getActivePreset() {
49
+ return activePreset;
50
+ },
51
+ getActivePresetName() {
52
+ return activePresetName;
53
+ },
54
+ getCustomization() {
55
+ return customization;
56
+ },
57
+ setCustomization(overrides) {
58
+ customization = overrides;
59
+ },
60
+ resolveThemeStyle(theme) {
61
+ if (theme in require_styling.THEME_PRESETS) return require_styling.THEME_PRESETS[theme] ?? require_styling.THEME_PRESETS.default;
62
+ return require_styling.THEME_PRESETS.default;
63
+ },
64
+ setTheme(theme) {
65
+ if (theme in require_styling.THEME_PRESETS) {
66
+ const newStyles = require_styling.THEME_PRESETS[theme];
67
+ if (newStyles) {
68
+ LEVEL_STYLES = newStyles;
69
+ return true;
70
+ }
71
+ }
72
+ return false;
73
+ },
74
+ resetStyles() {
75
+ LEVEL_STYLES = require_styling.THEME_PRESETS.default;
76
+ }
77
+ };
78
+ }
79
+ /**
80
+ * Module-level active styles — shared across all Logger instances.
81
+ * Exported so Logger can reference it directly.
82
+ */
83
+ let LEVEL_STYLES = require_styling.THEME_PRESETS.default;
84
+ //#endregion
85
+ Object.defineProperty(exports, "createStyleManager", {
86
+ enumerable: true,
87
+ get: function() {
88
+ return createStyleManager;
89
+ }
90
+ });
91
+
92
+ //# sourceMappingURL=StyleManager-CIpd6wbO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleManager-CIpd6wbO.cjs","names":["hasPreset","getSmartPreset","getAvailablePresets","THEME_PRESETS","themeRecord"],"sources":["../../src/styles/StyleManager.ts"],"sourcesContent":["/**\n * @fileoverview StyleManager — style preset and display settings management.\n * Encapsulates active preset tracking, display toggles, and the\n * module-level LEVEL_STYLES variable.\n *\n * Wired into Logger.ts in F4. Logger delegates style queries and theme\n * changes through this bridge so that the module-level LEVEL_STYLES stay\n * in sync across the module.\n */\n\nimport {\n THEME_PRESETS,\n type StylePresets,\n type StyleBuilder\n} from '../styling/index.js';\nimport { getSmartPreset, getAvailablePresets, hasPreset } from '../styling/SmartPresets.js';\nimport type { ThemeVariant, LogStyles } from '../types/index.js';\n\n// Re-export StyleBuilder for internal use by Logger\nexport { StyleBuilder } from '../styling/index.js';\n\n/**\n * Display visibility settings.\n */\nexport interface DisplaySettings {\n showTimestamp: boolean;\n showLocation: boolean;\n showBadges: boolean;\n}\n\n/**\n * Active preset state tracked by StyleManager.\n */\nexport interface PresetState {\n /** The resolved style config (LEVEL_STYLES). */\n styles: typeof THEME_PRESETS.default;\n /** The active smart-preset config (if any). */\n activePreset: unknown;\n /** Name of the active smart-preset (if any). */\n activePresetName: string | undefined;\n /** Last-applied customize() overrides. */\n customization: unknown;\n /** Display visibility settings. */\n displaySettings: DisplaySettings;\n}\n\n/**\n * Options for creating StyleManager.\n */\nexport interface IStyleManagerOptions {\n /** Initial display settings. */\n initialDisplaySettings?: Partial<DisplaySettings>;\n}\n\n/**\n * StyleManager - manages style presets and display settings.\n */\nexport interface StyleManager {\n /** Returns current display settings. */\n getDisplaySettings(): DisplaySettings;\n /** Applies a smart preset by name. Returns true if applied. */\n applyPreset(name: string): boolean;\n /** Lists all available presets. */\n getAvailablePresets(): string[];\n /** Gets the current LEVEL_STYLES. */\n getStyles(): typeof THEME_PRESETS.default;\n /** Gets the active smart-preset config. */\n getActivePreset(): unknown;\n /** Gets the active smart-preset name. */\n getActivePresetName(): string | undefined;\n /** Gets the active customization overrides. */\n getCustomization(): unknown;\n /** Stores customization overrides. */\n setCustomization(overrides: unknown): void;\n /** Resolves the effective styles for a theme variant. */\n resolveThemeStyle(theme: ThemeVariant): typeof THEME_PRESETS.default;\n /** Sets the active theme by name, updating the module-level LEVEL_STYLES. */\n setTheme(theme: ThemeVariant): boolean;\n /** Resets LEVEL_STYLES to the default preset. */\n resetStyles(): void;\n}\n\nfunction createDefaultDisplaySettings(): DisplaySettings {\n return {\n showTimestamp: true,\n showLocation: true,\n showBadges: true\n };\n}\n\n/**\n * Creates a StyleManager instance.\n */\nexport function createStyleManager(options: IStyleManagerOptions = {}): StyleManager {\n const displaySettings = createDefaultDisplaySettings();\n let activePreset: unknown;\n let activePresetName: string | undefined;\n let customization: unknown;\n\n return {\n getDisplaySettings(): DisplaySettings {\n return { ...displaySettings };\n },\n\n applyPreset(name: string): boolean {\n if (!hasPreset(name)) {\n return false;\n }\n\n const presetConfig = getSmartPreset(name);\n if (presetConfig) {\n displaySettings.showTimestamp = presetConfig.timestamp?.show ?? true;\n displaySettings.showLocation = presetConfig.location?.show ?? true;\n activePreset = presetConfig;\n activePresetName = name;\n }\n return true;\n },\n\n getAvailablePresets(): string[] {\n return getAvailablePresets();\n },\n\n getStyles(): typeof THEME_PRESETS.default {\n return LEVEL_STYLES;\n },\n\n getActivePreset(): unknown {\n return activePreset;\n },\n\n getActivePresetName(): string | undefined {\n return activePresetName;\n },\n\n getCustomization(): unknown {\n return customization;\n },\n\n setCustomization(overrides: unknown): void {\n customization = overrides;\n },\n\n resolveThemeStyle(theme: ThemeVariant): typeof THEME_PRESETS.default {\n if (theme in THEME_PRESETS) {\n const themeRecord = THEME_PRESETS as unknown as Record<string, typeof LEVEL_STYLES>;\n return themeRecord[theme] ?? THEME_PRESETS.default;\n }\n return THEME_PRESETS.default;\n },\n\n setTheme(theme: ThemeVariant): boolean {\n if (theme in THEME_PRESETS) {\n const themeRecord = THEME_PRESETS as unknown as Record<string, typeof LEVEL_STYLES>;\n const newStyles = themeRecord[theme];\n if (newStyles) {\n LEVEL_STYLES = newStyles;\n return true;\n }\n }\n return false;\n },\n\n resetStyles(): void {\n LEVEL_STYLES = THEME_PRESETS.default;\n }\n };\n}\n\n/**\n * Module-level active styles — shared across all Logger instances.\n * Exported so Logger can reference it directly.\n */\nexport let LEVEL_STYLES: typeof THEME_PRESETS.default = THEME_PRESETS.default;\n\n/**\n * Resets LEVEL_STYLES to default.\n */\nexport function resetStyles(): void {\n LEVEL_STYLES = THEME_PRESETS.default;\n}\n"],"mappings":";;;;;;;;;;;AAkFA,SAAS,+BAAgD;CACrD,OAAO;EACH,eAAe;EACf,cAAc;EACd,YAAY;CAChB;AACJ;;;;AAKA,SAAgB,mBAAmB,UAAgC,CAAC,GAAiB;CACjF,MAAM,kBAAkB,6BAA6B;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI;CAEJ,OAAO;EACH,qBAAsC;GAClC,OAAO,EAAE,GAAG,gBAAgB;EAChC;EAEA,YAAY,MAAuB;GAC/B,IAAI,CAACA,gBAAAA,UAAU,IAAI,GACf,OAAO;GAGX,MAAM,eAAeC,gBAAAA,eAAe,IAAI;GACxC,IAAI,cAAc;IACd,gBAAgB,gBAAgB,aAAa,WAAW,QAAQ;IAChE,gBAAgB,eAAe,aAAa,UAAU,QAAQ;IAC9D,eAAe;IACf,mBAAmB;GACvB;GACA,OAAO;EACX;EAEA,sBAAgC;GAC5B,OAAOC,gBAAAA,oBAAoB;EAC/B;EAEA,YAA0C;GACtC,OAAO;EACX;EAEA,kBAA2B;GACvB,OAAO;EACX;EAEA,sBAA0C;GACtC,OAAO;EACX;EAEA,mBAA4B;GACxB,OAAO;EACX;EAEA,iBAAiB,WAA0B;GACvC,gBAAgB;EACpB;EAEA,kBAAkB,OAAmD;GACjE,IAAI,SAASC,gBAAAA,eAET,OAAOC,gBAAAA,cAAY,UAAUD,gBAAAA,cAAc;GAE/C,OAAOA,gBAAAA,cAAc;EACzB;EAEA,SAAS,OAA8B;GACnC,IAAI,SAASA,gBAAAA,eAAe;IAExB,MAAM,YAAYC,gBAAAA,cAAY;IAC9B,IAAI,WAAW;KACX,eAAe;KACf,OAAO;IACX;GACJ;GACA,OAAO;EACX;EAEA,cAAoB;GAChB,eAAeD,gBAAAA,cAAc;EACjC;CACJ;AACJ;;;;;AAMA,IAAW,eAA6CA,gBAAAA,cAAc"}
@@ -0,0 +1,87 @@
1
+ import { n as getSmartPreset, r as hasPreset, s as THEME_PRESETS, t as getAvailablePresets } from "./styling-84N8T97t.js";
2
+ //#region src/styles/StyleManager.ts
3
+ /**
4
+ * @fileoverview StyleManager — style preset and display settings management.
5
+ * Encapsulates active preset tracking, display toggles, and the
6
+ * module-level LEVEL_STYLES variable.
7
+ *
8
+ * Wired into Logger.ts in F4. Logger delegates style queries and theme
9
+ * changes through this bridge so that the module-level LEVEL_STYLES stay
10
+ * in sync across the module.
11
+ */
12
+ function createDefaultDisplaySettings() {
13
+ return {
14
+ showTimestamp: true,
15
+ showLocation: true,
16
+ showBadges: true
17
+ };
18
+ }
19
+ /**
20
+ * Creates a StyleManager instance.
21
+ */
22
+ function createStyleManager(options = {}) {
23
+ const displaySettings = createDefaultDisplaySettings();
24
+ let activePreset;
25
+ let activePresetName;
26
+ let customization;
27
+ return {
28
+ getDisplaySettings() {
29
+ return { ...displaySettings };
30
+ },
31
+ applyPreset(name) {
32
+ if (!hasPreset(name)) return false;
33
+ const presetConfig = getSmartPreset(name);
34
+ if (presetConfig) {
35
+ displaySettings.showTimestamp = presetConfig.timestamp?.show ?? true;
36
+ displaySettings.showLocation = presetConfig.location?.show ?? true;
37
+ activePreset = presetConfig;
38
+ activePresetName = name;
39
+ }
40
+ return true;
41
+ },
42
+ getAvailablePresets() {
43
+ return getAvailablePresets();
44
+ },
45
+ getStyles() {
46
+ return LEVEL_STYLES;
47
+ },
48
+ getActivePreset() {
49
+ return activePreset;
50
+ },
51
+ getActivePresetName() {
52
+ return activePresetName;
53
+ },
54
+ getCustomization() {
55
+ return customization;
56
+ },
57
+ setCustomization(overrides) {
58
+ customization = overrides;
59
+ },
60
+ resolveThemeStyle(theme) {
61
+ if (theme in THEME_PRESETS) return THEME_PRESETS[theme] ?? THEME_PRESETS.default;
62
+ return THEME_PRESETS.default;
63
+ },
64
+ setTheme(theme) {
65
+ if (theme in THEME_PRESETS) {
66
+ const newStyles = THEME_PRESETS[theme];
67
+ if (newStyles) {
68
+ LEVEL_STYLES = newStyles;
69
+ return true;
70
+ }
71
+ }
72
+ return false;
73
+ },
74
+ resetStyles() {
75
+ LEVEL_STYLES = THEME_PRESETS.default;
76
+ }
77
+ };
78
+ }
79
+ /**
80
+ * Module-level active styles — shared across all Logger instances.
81
+ * Exported so Logger can reference it directly.
82
+ */
83
+ let LEVEL_STYLES = THEME_PRESETS.default;
84
+ //#endregion
85
+ export { createStyleManager as t };
86
+
87
+ //# sourceMappingURL=StyleManager-LCvVlVdx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleManager-LCvVlVdx.js","names":["themeRecord"],"sources":["../../src/styles/StyleManager.ts"],"sourcesContent":["/**\n * @fileoverview StyleManager — style preset and display settings management.\n * Encapsulates active preset tracking, display toggles, and the\n * module-level LEVEL_STYLES variable.\n *\n * Wired into Logger.ts in F4. Logger delegates style queries and theme\n * changes through this bridge so that the module-level LEVEL_STYLES stay\n * in sync across the module.\n */\n\nimport {\n THEME_PRESETS,\n type StylePresets,\n type StyleBuilder\n} from '../styling/index.js';\nimport { getSmartPreset, getAvailablePresets, hasPreset } from '../styling/SmartPresets.js';\nimport type { ThemeVariant, LogStyles } from '../types/index.js';\n\n// Re-export StyleBuilder for internal use by Logger\nexport { StyleBuilder } from '../styling/index.js';\n\n/**\n * Display visibility settings.\n */\nexport interface DisplaySettings {\n showTimestamp: boolean;\n showLocation: boolean;\n showBadges: boolean;\n}\n\n/**\n * Active preset state tracked by StyleManager.\n */\nexport interface PresetState {\n /** The resolved style config (LEVEL_STYLES). */\n styles: typeof THEME_PRESETS.default;\n /** The active smart-preset config (if any). */\n activePreset: unknown;\n /** Name of the active smart-preset (if any). */\n activePresetName: string | undefined;\n /** Last-applied customize() overrides. */\n customization: unknown;\n /** Display visibility settings. */\n displaySettings: DisplaySettings;\n}\n\n/**\n * Options for creating StyleManager.\n */\nexport interface IStyleManagerOptions {\n /** Initial display settings. */\n initialDisplaySettings?: Partial<DisplaySettings>;\n}\n\n/**\n * StyleManager - manages style presets and display settings.\n */\nexport interface StyleManager {\n /** Returns current display settings. */\n getDisplaySettings(): DisplaySettings;\n /** Applies a smart preset by name. Returns true if applied. */\n applyPreset(name: string): boolean;\n /** Lists all available presets. */\n getAvailablePresets(): string[];\n /** Gets the current LEVEL_STYLES. */\n getStyles(): typeof THEME_PRESETS.default;\n /** Gets the active smart-preset config. */\n getActivePreset(): unknown;\n /** Gets the active smart-preset name. */\n getActivePresetName(): string | undefined;\n /** Gets the active customization overrides. */\n getCustomization(): unknown;\n /** Stores customization overrides. */\n setCustomization(overrides: unknown): void;\n /** Resolves the effective styles for a theme variant. */\n resolveThemeStyle(theme: ThemeVariant): typeof THEME_PRESETS.default;\n /** Sets the active theme by name, updating the module-level LEVEL_STYLES. */\n setTheme(theme: ThemeVariant): boolean;\n /** Resets LEVEL_STYLES to the default preset. */\n resetStyles(): void;\n}\n\nfunction createDefaultDisplaySettings(): DisplaySettings {\n return {\n showTimestamp: true,\n showLocation: true,\n showBadges: true\n };\n}\n\n/**\n * Creates a StyleManager instance.\n */\nexport function createStyleManager(options: IStyleManagerOptions = {}): StyleManager {\n const displaySettings = createDefaultDisplaySettings();\n let activePreset: unknown;\n let activePresetName: string | undefined;\n let customization: unknown;\n\n return {\n getDisplaySettings(): DisplaySettings {\n return { ...displaySettings };\n },\n\n applyPreset(name: string): boolean {\n if (!hasPreset(name)) {\n return false;\n }\n\n const presetConfig = getSmartPreset(name);\n if (presetConfig) {\n displaySettings.showTimestamp = presetConfig.timestamp?.show ?? true;\n displaySettings.showLocation = presetConfig.location?.show ?? true;\n activePreset = presetConfig;\n activePresetName = name;\n }\n return true;\n },\n\n getAvailablePresets(): string[] {\n return getAvailablePresets();\n },\n\n getStyles(): typeof THEME_PRESETS.default {\n return LEVEL_STYLES;\n },\n\n getActivePreset(): unknown {\n return activePreset;\n },\n\n getActivePresetName(): string | undefined {\n return activePresetName;\n },\n\n getCustomization(): unknown {\n return customization;\n },\n\n setCustomization(overrides: unknown): void {\n customization = overrides;\n },\n\n resolveThemeStyle(theme: ThemeVariant): typeof THEME_PRESETS.default {\n if (theme in THEME_PRESETS) {\n const themeRecord = THEME_PRESETS as unknown as Record<string, typeof LEVEL_STYLES>;\n return themeRecord[theme] ?? THEME_PRESETS.default;\n }\n return THEME_PRESETS.default;\n },\n\n setTheme(theme: ThemeVariant): boolean {\n if (theme in THEME_PRESETS) {\n const themeRecord = THEME_PRESETS as unknown as Record<string, typeof LEVEL_STYLES>;\n const newStyles = themeRecord[theme];\n if (newStyles) {\n LEVEL_STYLES = newStyles;\n return true;\n }\n }\n return false;\n },\n\n resetStyles(): void {\n LEVEL_STYLES = THEME_PRESETS.default;\n }\n };\n}\n\n/**\n * Module-level active styles — shared across all Logger instances.\n * Exported so Logger can reference it directly.\n */\nexport let LEVEL_STYLES: typeof THEME_PRESETS.default = THEME_PRESETS.default;\n\n/**\n * Resets LEVEL_STYLES to default.\n */\nexport function resetStyles(): void {\n LEVEL_STYLES = THEME_PRESETS.default;\n}\n"],"mappings":";;;;;;;;;;;AAkFA,SAAS,+BAAgD;CACrD,OAAO;EACH,eAAe;EACf,cAAc;EACd,YAAY;CAChB;AACJ;;;;AAKA,SAAgB,mBAAmB,UAAgC,CAAC,GAAiB;CACjF,MAAM,kBAAkB,6BAA6B;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI;CAEJ,OAAO;EACH,qBAAsC;GAClC,OAAO,EAAE,GAAG,gBAAgB;EAChC;EAEA,YAAY,MAAuB;GAC/B,IAAI,CAAC,UAAU,IAAI,GACf,OAAO;GAGX,MAAM,eAAe,eAAe,IAAI;GACxC,IAAI,cAAc;IACd,gBAAgB,gBAAgB,aAAa,WAAW,QAAQ;IAChE,gBAAgB,eAAe,aAAa,UAAU,QAAQ;IAC9D,eAAe;IACf,mBAAmB;GACvB;GACA,OAAO;EACX;EAEA,sBAAgC;GAC5B,OAAO,oBAAoB;EAC/B;EAEA,YAA0C;GACtC,OAAO;EACX;EAEA,kBAA2B;GACvB,OAAO;EACX;EAEA,sBAA0C;GACtC,OAAO;EACX;EAEA,mBAA4B;GACxB,OAAO;EACX;EAEA,iBAAiB,WAA0B;GACvC,gBAAgB;EACpB;EAEA,kBAAkB,OAAmD;GACjE,IAAI,SAAS,eAET,OAAOA,cAAY,UAAU,cAAc;GAE/C,OAAO,cAAc;EACzB;EAEA,SAAS,OAA8B;GACnC,IAAI,SAAS,eAAe;IAExB,MAAM,YAAYA,cAAY;IAC9B,IAAI,WAAW;KACX,eAAe;KACf,OAAO;IACX;GACJ;GACA,OAAO;EACX;EAEA,cAAoB;GAChB,eAAe,cAAc;EACjC;CACJ;AACJ;;;;;AAMA,IAAW,eAA6C,cAAc"}
@@ -0,0 +1,39 @@
1
+ //#region src/types/core.ts
2
+ /**
3
+ * @fileoverview Definiciones de tipos principales para Better Logger
4
+ */
5
+ /**
6
+ * Niveles de log soportados en orden jerárquico
7
+ * (trace < debug < info < warn < error < critical)
8
+ *
9
+ * @constant {Object} LOG_LEVELS
10
+ * @property {number} trace - Nivel -1: Trazas muy verbosas (alineado con OTel TRACE severity 1-4)
11
+ * @property {number} debug - Nivel 0: Información de depuración detallada
12
+ * @property {number} info - Nivel 1: Mensajes informativos generales
13
+ * @property {number} warn - Nivel 2: Advertencias que no detienen la ejecución
14
+ * @property {number} error - Nivel 3: Errores que pueden afectar funcionalidad
15
+ * @property {number} critical - Nivel 4: Errores críticos que requieren atención inmediata
16
+ *
17
+ * @example
18
+ * // Verificar si un nivel debe mostrarse
19
+ * if (LOG_LEVELS[currentLevel] >= LOG_LEVELS.warn) {
20
+ * // Mostrar solo warn, error y critical
21
+ * }
22
+ */
23
+ const LOG_LEVELS = {
24
+ trace: -1,
25
+ debug: 0,
26
+ info: 1,
27
+ warn: 2,
28
+ error: 3,
29
+ critical: 4
30
+ };
31
+ //#endregion
32
+ Object.defineProperty(exports, "LOG_LEVELS", {
33
+ enumerable: true,
34
+ get: function() {
35
+ return LOG_LEVELS;
36
+ }
37
+ });
38
+
39
+ //# sourceMappingURL=core-Dzz7agGa.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-Dzz7agGa.cjs","names":[],"sources":["../../src/types/core.ts"],"sourcesContent":["/**\n * @fileoverview Definiciones de tipos principales para Better Logger\n */\n\n/**\n * Niveles de log soportados en orden jerárquico\n * (trace < debug < info < warn < error < critical)\n *\n * @constant {Object} LOG_LEVELS\n * @property {number} trace - Nivel -1: Trazas muy verbosas (alineado con OTel TRACE severity 1-4)\n * @property {number} debug - Nivel 0: Información de depuración detallada\n * @property {number} info - Nivel 1: Mensajes informativos generales\n * @property {number} warn - Nivel 2: Advertencias que no detienen la ejecución\n * @property {number} error - Nivel 3: Errores que pueden afectar funcionalidad\n * @property {number} critical - Nivel 4: Errores críticos que requieren atención inmediata\n *\n * @example\n * // Verificar si un nivel debe mostrarse\n * if (LOG_LEVELS[currentLevel] >= LOG_LEVELS.warn) {\n * // Mostrar solo warn, error y critical\n * }\n */\nexport const LOG_LEVELS = {\n trace: -1,\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n critical: 4,\n} as const;\n\n/**\n * Tipo de nivel de log derivado de las claves de LOG_LEVELS\n * @typedef {'trace' | 'debug' | 'info' | 'warn' | 'error' | 'critical'} LogLevel\n */\nexport type LogLevel = keyof typeof LOG_LEVELS;\n\n/**\n * Special \"level\" tag used by `success()` — maps to OTel INFO severity.\n * Exists outside the standard LogLevel union so internal level comparisons\n * (trace < debug < info < warn < error < critical) are not perturbed.\n */\nexport const SUCCESS_LEVEL = 'success' as const;\n\n/**\n * Tags accepted by `log()` family and visual methods (success() emits at\n * INFO severity but uses success styling). Useful for transport layers that\n * need to distinguish \"success\" from generic info logs.\n */\nexport type LogTag = LogLevel | typeof SUCCESS_LEVEL;\n\n/**\n * Tipo de nivel de verbosidad para filtrar logs\n * @typedef {LogLevel | 'silent'} Verbosity\n * @description 'silent' desactiva completamente todos los logs\n */\nexport type Verbosity = LogLevel | 'silent';\n\n/**\n * Variantes de tema para diferentes estilos visuales\n * @typedef {'default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk'} ThemeVariant\n * \n * @description\n * - default: Tema adaptativo automático (claro/oscuro)\n * - dark: Tema oscuro con colores vibrantes\n * - light: Tema claro con colores suaves\n * - neon: Colores neón brillantes con efectos de resplandor\n * - minimal: Diseño minimalista y limpio\n * - cyberpunk: Estilo futurista con neón y efectos\n */\nexport type ThemeVariant = 'default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk';\n\n/**\n * Detección de tema de DevTools del navegador\n * @typedef {'light' | 'dark'} DevToolsTheme\n */\nexport type DevToolsTheme = 'light' | 'dark';\n\n/**\n * Tipos de banner para diferentes enfoques visuales\n * @typedef {'simple' | 'ascii' | 'unicode' | 'svg' | 'animated'} BannerType\n * \n * @description\n * - simple: Texto simple sin decoración\n * - ascii: Arte ASCII tradicional\n * - unicode: Caracteres Unicode decorativos\n * - svg: Gráfico SVG embebido\n * - animated: Banner con animación CSS\n */\nexport type BannerType = 'simple' | 'ascii' | 'unicode' | 'svg' | 'animated';\n\n/**\n * Formatos de exportación para datos de log\n * @typedef {'json' | 'csv' | 'markdown' | 'plain' | 'html'} ExportFormat\n *\n * @description\n * - json: Formato JSON estructurado\n * - csv: Valores separados por comas para Excel/Sheets\n * - markdown: Formato Markdown para documentación\n * - plain: Texto plano sin formato\n * - html: HTML con estilos para visualización web\n */\nexport type ExportFormat = 'json' | 'csv' | 'markdown' | 'plain' | 'html';\n\n/**\n * Formatos de salida para diferentes entornos\n * @typedef {'auto' | 'plain' | 'ansi' | 'build' | 'ci'} OutputFormat\n *\n * @description\n * - auto: Detección automática basada en entorno (recomendado)\n * - plain: Texto plano sin colores (máxima compatibilidad)\n * - ansi: Colores ANSI para terminales modernos\n * - build: Formato optimizado para builds (Next.js, webpack, etc.)\n * - ci: Formato optimizado para CI/CD (sin emojis, texto simple)\n */\nexport type OutputFormat = 'auto' | 'plain' | 'ansi' | 'build' | 'ci';\n\n/**\n * Output modes for controlling where logs are written\n * @typedef {'console' | 'silent' | 'custom'} OutputMode\n *\n * @description\n * - console: Standard console.log output (default)\n * - silent: No output at all\n * - custom: Use custom OutputWriter for advanced scenarios\n */\nexport type OutputMode = 'console' | 'silent' | 'custom';\n\n/**\n * Custom output writer interface for redirecting log output\n *\n * @interface OutputWriter\n *\n * @description\n * Allows redirecting log output to custom destinations like:\n * - DraftLog for CLI spinners with concurrent logging\n * - Buffers for collecting logs during operations\n * - Custom streams or transports\n *\n * @example\n * class BufferWriter implements OutputWriter {\n * private buffer: string[] = [];\n *\n * write(message: string, level: LogLevel, styles: string[]): void {\n * this.buffer.push(message);\n * }\n *\n * flush(): void {\n * this.buffer.forEach(msg => console.log(msg));\n * this.buffer = [];\n * }\n * }\n */\nexport interface OutputWriter {\n write(message: string, level: LogLevel, styles: string[]): void;\n flush?(): void;\n}\n\n/**\n * Interfaz de configuración para instancias del logger\n * \n * @interface LoggerConfig\n * \n * @example\n * const config: LoggerConfig = {\n * globalPrefix: 'MiApp',\n * verbosity: 'info',\n * enableColors: true,\n * enableTimestamps: true,\n * enableStackTrace: false,\n * theme: 'cyberpunk',\n * bannerType: 'animated',\n * bufferSize: 500,\n * autoDetectTheme: true\n * };\n */\n/**\n * Minimal OTel resource shape — duplicated here to avoid a circular\n * import with `./transports.js`. The canonical `ILogResource` lives in\n * `./transports.js`; both shapes stay in sync via the public contract\n * (service.name + optional version + optional environment).\n */\nexport interface ILogResourceRef {\n 'service.name': string;\n 'service.version'?: string;\n 'deployment.environment'?: string;\n [key: string]: string | undefined;\n}\n\nexport interface LoggerConfig {\n globalPrefix?: string;\n verbosity: Verbosity;\n enableColors: boolean;\n enableTimestamps: boolean;\n enableStackTrace: boolean;\n theme?: ThemeVariant;\n bannerType?: BannerType;\n bufferSize?: number;\n autoDetectTheme?: boolean;\n outputFormat?: OutputFormat;\n /** Output mode: 'console' (default), 'silent', or 'custom'*/\n outputMode?: OutputMode;\n /** Custom writer when outputMode is 'custom'*/\n outputWriter?: OutputWriter;\n /** CLI verbosity level for controlling primitive output*/\n cliLevel?: CLILogLevel;\n /**\n * Default OTel resource attached to every record that doesn't override it.\n * Set once per process (service.name, service.version, deployment.environment).\n */\n resource?: Partial<ILogResourceRef>;\n}\n\n/**\n * Información parseada del stack trace\n * \n * @interface StackInfo\n * @description Contiene la ubicación exacta donde se originó el log\n */\nexport interface StackInfo {\n file: string;\n line: number;\n column: number;\n function?: string;\n}\n\n/**\n * Entrada de temporizador para medición de rendimiento\n * \n * @interface TimerEntry\n * @description Usado internamente para rastrear temporizadores activos\n */\nexport interface TimerEntry {\n label: string;\n startTime: number;\n}\n\n/**\n * Opciones para estilizar componentes\n * \n * @interface StyleOptions\n * @description Configuración de dimensiones y espaciado para elementos visuales\n */\nexport interface StyleOptions {\n width?: number;\n height?: number;\n padding?: string;\n}\n\n/**\n * Configuración de colores adaptativos para temas claro/oscuro\n * \n * @interface AdaptiveColors\n * @description Define colores que se ajustan automáticamente al tema del navegador\n */\nexport interface AdaptiveColors {\n light: string;\n dark: string;\n}\n\n/**\n * Configuración de espaciado para elementos del log\n * @typedef {'compact' | 'normal' | 'spacious'} SpacingType\n * \n * @description\n * - compact: Espaciado mínimo para más densidad\n * - normal: Espaciado estándar balanceado\n * - spacious: Espaciado amplio para mejor legibilidad\n */\nexport type SpacingType = 'compact' | 'normal' | 'spacious';\n\n/**\n * Configuración de layout para la estructura del log\n * \n * @interface LogLayout\n * @description Define cómo se organizan visualmente los elementos del log\n */\nexport interface LogLayout {\n spacing: SpacingType;\n innerPadding?: string;\n outerMargin?: string;\n separator?: string;\n}\n\n/**\n * Configuración para partes individuales del log\n * \n * @interface LogPartConfig\n * @description Permite personalizar cada elemento del log por separado\n * \n * @example\n * const timestampConfig: LogPartConfig = {\n * show: true,\n * color: '#888',\n * font: 'Monaco',\n * size: '11px'\n * };\n */\nexport interface LogPartConfig {\n show?: boolean;\n style?: string;\n font?: string;\n size?: string;\n color?: string; // Automatically adaptive by default\n background?: string;\n padding?: string;\n margin?: string;\n border?: string;\n shadow?: string;\n uppercase?: boolean;\n}\n\n/**\n * Configuración completa de estilos del log\n * \n * @interface LogStyles\n * @description Agrupa todas las opciones de estilo en una sola configuración\n */\nexport interface LogStyles {\n layout?: LogLayout;\n timestamp?: LogPartConfig;\n level?: LogPartConfig;\n prefix?: LogPartConfig;\n message?: LogPartConfig;\n location?: LogPartConfig;\n backdrop?: string;\n transparency?: number;\n}\n\nexport interface TimerResult {\n label: string;\n duration: number;\n startTime: number;\n endTime: number;\n}\n\nexport interface IScopedLogger {\n debug(...args: any[]): void;\n info(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n success(...args: any[]): void;\n critical(...args: any[]): void;\n trace(...args: any[]): void;\n\n badges(badges: string[]): this;\n badge(badge: string): this;\n clearBadges(): this;\n\n time(label: string): void;\n timeEnd(label: string): number | undefined;\n\n style(presetName: string): this;\n}\n\nexport interface IAPILogger extends IScopedLogger {\n slow(message: string, duration?: number): void;\n rateLimit(message: string): void;\n auth(message: string): void;\n deprecated(message: string): void;\n}\n\nexport interface IComponentLogger extends IScopedLogger {\n lifecycle(event: string, message?: string): void;\n stateChange(from: string, to: string, data?: any): void;\n propsChange(changes: Record<string, any>): void;\n}\n\nexport interface Bindings {\n scope?: string;\n badges?: string[];\n type?: 'scope' | 'api' | 'component';\n context?: string[];\n}\n\nexport type BadgeStyle = 'brackets' | 'rounded' | 'plain' | 'unicode' | 'pill';\n\nexport type TimestampFormat = 'iso' | 'time' | 'timeMs' | 'relative' | 'elapsed' | 'date' | 'custom';\n\nexport type ColumnAlign = 'left' | 'right' | 'center';\n\nexport interface ColumnConfig {\n content: string;\n width?: number;\n align?: ColumnAlign;\n color?: string;\n}\n\nexport interface LogOptions {\n rightAlign?: string;\n columns?: ColumnConfig[];\n maxWidth?: number;\n keyValue?: boolean;\n badgeStyle?: BadgeStyle;\n timestampFormat?: TimestampFormat;\n}\n\n// ===== CLI PRIMITIVES (v5.0) =====\n\n/**\n * CLI verbosity levels for controlling primitive output\n */\nexport type CLILogLevel = 'silent' | 'quiet' | 'normal' | 'verbose' | 'debug';\n\n/**\n * Handle returned by logger.spinner() for controlling spinner lifecycle\n */\nexport interface ISpinnerHandle {\n /** Start the spinner animation */\n start(): void;\n /** Stop the spinner without a status message */\n stop(): void;\n /** Stop the spinner with a success message */\n succeed(msg?: string): void;\n /** Stop the spinner with a failure message */\n fail(msg?: string): void;\n /** Update the spinner text while running */\n text(msg: string): void;\n}\n\n/**\n * Options for logger.box() output\n */\nexport interface IBoxOptions {\n /** Title displayed in the top border */\n title?: string;\n /** Color of the border (hex, CSS name, or ANSI name) */\n borderColor?: string;\n /** Border character style */\n borderStyle?: 'single' | 'double' | 'rounded' | 'bold';\n /** Inner padding lines (default: 0) */\n padding?: number;\n}\n\n/**\n * Options for logger.cliTable() output\n */\nexport interface ITableOptions {\n /** Column names to display (overrides auto-detection) */\n columns?: string[];\n /** Header labels (defaults to column names) */\n head?: string[];\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,aAAa;CACtB,OAAO;CACP,OAAO;CACP,MAAM;CACN,MAAM;CACN,OAAO;CACP,UAAU;AACd"}
@@ -0,0 +1,34 @@
1
+ //#region src/types/core.ts
2
+ /**
3
+ * @fileoverview Definiciones de tipos principales para Better Logger
4
+ */
5
+ /**
6
+ * Niveles de log soportados en orden jerárquico
7
+ * (trace < debug < info < warn < error < critical)
8
+ *
9
+ * @constant {Object} LOG_LEVELS
10
+ * @property {number} trace - Nivel -1: Trazas muy verbosas (alineado con OTel TRACE severity 1-4)
11
+ * @property {number} debug - Nivel 0: Información de depuración detallada
12
+ * @property {number} info - Nivel 1: Mensajes informativos generales
13
+ * @property {number} warn - Nivel 2: Advertencias que no detienen la ejecución
14
+ * @property {number} error - Nivel 3: Errores que pueden afectar funcionalidad
15
+ * @property {number} critical - Nivel 4: Errores críticos que requieren atención inmediata
16
+ *
17
+ * @example
18
+ * // Verificar si un nivel debe mostrarse
19
+ * if (LOG_LEVELS[currentLevel] >= LOG_LEVELS.warn) {
20
+ * // Mostrar solo warn, error y critical
21
+ * }
22
+ */
23
+ const LOG_LEVELS = {
24
+ trace: -1,
25
+ debug: 0,
26
+ info: 1,
27
+ warn: 2,
28
+ error: 3,
29
+ critical: 4
30
+ };
31
+ //#endregion
32
+ export { LOG_LEVELS as t };
33
+
34
+ //# sourceMappingURL=core-PoT7RrTK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-PoT7RrTK.js","names":[],"sources":["../../src/types/core.ts"],"sourcesContent":["/**\n * @fileoverview Definiciones de tipos principales para Better Logger\n */\n\n/**\n * Niveles de log soportados en orden jerárquico\n * (trace < debug < info < warn < error < critical)\n *\n * @constant {Object} LOG_LEVELS\n * @property {number} trace - Nivel -1: Trazas muy verbosas (alineado con OTel TRACE severity 1-4)\n * @property {number} debug - Nivel 0: Información de depuración detallada\n * @property {number} info - Nivel 1: Mensajes informativos generales\n * @property {number} warn - Nivel 2: Advertencias que no detienen la ejecución\n * @property {number} error - Nivel 3: Errores que pueden afectar funcionalidad\n * @property {number} critical - Nivel 4: Errores críticos que requieren atención inmediata\n *\n * @example\n * // Verificar si un nivel debe mostrarse\n * if (LOG_LEVELS[currentLevel] >= LOG_LEVELS.warn) {\n * // Mostrar solo warn, error y critical\n * }\n */\nexport const LOG_LEVELS = {\n trace: -1,\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n critical: 4,\n} as const;\n\n/**\n * Tipo de nivel de log derivado de las claves de LOG_LEVELS\n * @typedef {'trace' | 'debug' | 'info' | 'warn' | 'error' | 'critical'} LogLevel\n */\nexport type LogLevel = keyof typeof LOG_LEVELS;\n\n/**\n * Special \"level\" tag used by `success()` — maps to OTel INFO severity.\n * Exists outside the standard LogLevel union so internal level comparisons\n * (trace < debug < info < warn < error < critical) are not perturbed.\n */\nexport const SUCCESS_LEVEL = 'success' as const;\n\n/**\n * Tags accepted by `log()` family and visual methods (success() emits at\n * INFO severity but uses success styling). Useful for transport layers that\n * need to distinguish \"success\" from generic info logs.\n */\nexport type LogTag = LogLevel | typeof SUCCESS_LEVEL;\n\n/**\n * Tipo de nivel de verbosidad para filtrar logs\n * @typedef {LogLevel | 'silent'} Verbosity\n * @description 'silent' desactiva completamente todos los logs\n */\nexport type Verbosity = LogLevel | 'silent';\n\n/**\n * Variantes de tema para diferentes estilos visuales\n * @typedef {'default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk'} ThemeVariant\n * \n * @description\n * - default: Tema adaptativo automático (claro/oscuro)\n * - dark: Tema oscuro con colores vibrantes\n * - light: Tema claro con colores suaves\n * - neon: Colores neón brillantes con efectos de resplandor\n * - minimal: Diseño minimalista y limpio\n * - cyberpunk: Estilo futurista con neón y efectos\n */\nexport type ThemeVariant = 'default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk';\n\n/**\n * Detección de tema de DevTools del navegador\n * @typedef {'light' | 'dark'} DevToolsTheme\n */\nexport type DevToolsTheme = 'light' | 'dark';\n\n/**\n * Tipos de banner para diferentes enfoques visuales\n * @typedef {'simple' | 'ascii' | 'unicode' | 'svg' | 'animated'} BannerType\n * \n * @description\n * - simple: Texto simple sin decoración\n * - ascii: Arte ASCII tradicional\n * - unicode: Caracteres Unicode decorativos\n * - svg: Gráfico SVG embebido\n * - animated: Banner con animación CSS\n */\nexport type BannerType = 'simple' | 'ascii' | 'unicode' | 'svg' | 'animated';\n\n/**\n * Formatos de exportación para datos de log\n * @typedef {'json' | 'csv' | 'markdown' | 'plain' | 'html'} ExportFormat\n *\n * @description\n * - json: Formato JSON estructurado\n * - csv: Valores separados por comas para Excel/Sheets\n * - markdown: Formato Markdown para documentación\n * - plain: Texto plano sin formato\n * - html: HTML con estilos para visualización web\n */\nexport type ExportFormat = 'json' | 'csv' | 'markdown' | 'plain' | 'html';\n\n/**\n * Formatos de salida para diferentes entornos\n * @typedef {'auto' | 'plain' | 'ansi' | 'build' | 'ci'} OutputFormat\n *\n * @description\n * - auto: Detección automática basada en entorno (recomendado)\n * - plain: Texto plano sin colores (máxima compatibilidad)\n * - ansi: Colores ANSI para terminales modernos\n * - build: Formato optimizado para builds (Next.js, webpack, etc.)\n * - ci: Formato optimizado para CI/CD (sin emojis, texto simple)\n */\nexport type OutputFormat = 'auto' | 'plain' | 'ansi' | 'build' | 'ci';\n\n/**\n * Output modes for controlling where logs are written\n * @typedef {'console' | 'silent' | 'custom'} OutputMode\n *\n * @description\n * - console: Standard console.log output (default)\n * - silent: No output at all\n * - custom: Use custom OutputWriter for advanced scenarios\n */\nexport type OutputMode = 'console' | 'silent' | 'custom';\n\n/**\n * Custom output writer interface for redirecting log output\n *\n * @interface OutputWriter\n *\n * @description\n * Allows redirecting log output to custom destinations like:\n * - DraftLog for CLI spinners with concurrent logging\n * - Buffers for collecting logs during operations\n * - Custom streams or transports\n *\n * @example\n * class BufferWriter implements OutputWriter {\n * private buffer: string[] = [];\n *\n * write(message: string, level: LogLevel, styles: string[]): void {\n * this.buffer.push(message);\n * }\n *\n * flush(): void {\n * this.buffer.forEach(msg => console.log(msg));\n * this.buffer = [];\n * }\n * }\n */\nexport interface OutputWriter {\n write(message: string, level: LogLevel, styles: string[]): void;\n flush?(): void;\n}\n\n/**\n * Interfaz de configuración para instancias del logger\n * \n * @interface LoggerConfig\n * \n * @example\n * const config: LoggerConfig = {\n * globalPrefix: 'MiApp',\n * verbosity: 'info',\n * enableColors: true,\n * enableTimestamps: true,\n * enableStackTrace: false,\n * theme: 'cyberpunk',\n * bannerType: 'animated',\n * bufferSize: 500,\n * autoDetectTheme: true\n * };\n */\n/**\n * Minimal OTel resource shape — duplicated here to avoid a circular\n * import with `./transports.js`. The canonical `ILogResource` lives in\n * `./transports.js`; both shapes stay in sync via the public contract\n * (service.name + optional version + optional environment).\n */\nexport interface ILogResourceRef {\n 'service.name': string;\n 'service.version'?: string;\n 'deployment.environment'?: string;\n [key: string]: string | undefined;\n}\n\nexport interface LoggerConfig {\n globalPrefix?: string;\n verbosity: Verbosity;\n enableColors: boolean;\n enableTimestamps: boolean;\n enableStackTrace: boolean;\n theme?: ThemeVariant;\n bannerType?: BannerType;\n bufferSize?: number;\n autoDetectTheme?: boolean;\n outputFormat?: OutputFormat;\n /** Output mode: 'console' (default), 'silent', or 'custom'*/\n outputMode?: OutputMode;\n /** Custom writer when outputMode is 'custom'*/\n outputWriter?: OutputWriter;\n /** CLI verbosity level for controlling primitive output*/\n cliLevel?: CLILogLevel;\n /**\n * Default OTel resource attached to every record that doesn't override it.\n * Set once per process (service.name, service.version, deployment.environment).\n */\n resource?: Partial<ILogResourceRef>;\n}\n\n/**\n * Información parseada del stack trace\n * \n * @interface StackInfo\n * @description Contiene la ubicación exacta donde se originó el log\n */\nexport interface StackInfo {\n file: string;\n line: number;\n column: number;\n function?: string;\n}\n\n/**\n * Entrada de temporizador para medición de rendimiento\n * \n * @interface TimerEntry\n * @description Usado internamente para rastrear temporizadores activos\n */\nexport interface TimerEntry {\n label: string;\n startTime: number;\n}\n\n/**\n * Opciones para estilizar componentes\n * \n * @interface StyleOptions\n * @description Configuración de dimensiones y espaciado para elementos visuales\n */\nexport interface StyleOptions {\n width?: number;\n height?: number;\n padding?: string;\n}\n\n/**\n * Configuración de colores adaptativos para temas claro/oscuro\n * \n * @interface AdaptiveColors\n * @description Define colores que se ajustan automáticamente al tema del navegador\n */\nexport interface AdaptiveColors {\n light: string;\n dark: string;\n}\n\n/**\n * Configuración de espaciado para elementos del log\n * @typedef {'compact' | 'normal' | 'spacious'} SpacingType\n * \n * @description\n * - compact: Espaciado mínimo para más densidad\n * - normal: Espaciado estándar balanceado\n * - spacious: Espaciado amplio para mejor legibilidad\n */\nexport type SpacingType = 'compact' | 'normal' | 'spacious';\n\n/**\n * Configuración de layout para la estructura del log\n * \n * @interface LogLayout\n * @description Define cómo se organizan visualmente los elementos del log\n */\nexport interface LogLayout {\n spacing: SpacingType;\n innerPadding?: string;\n outerMargin?: string;\n separator?: string;\n}\n\n/**\n * Configuración para partes individuales del log\n * \n * @interface LogPartConfig\n * @description Permite personalizar cada elemento del log por separado\n * \n * @example\n * const timestampConfig: LogPartConfig = {\n * show: true,\n * color: '#888',\n * font: 'Monaco',\n * size: '11px'\n * };\n */\nexport interface LogPartConfig {\n show?: boolean;\n style?: string;\n font?: string;\n size?: string;\n color?: string; // Automatically adaptive by default\n background?: string;\n padding?: string;\n margin?: string;\n border?: string;\n shadow?: string;\n uppercase?: boolean;\n}\n\n/**\n * Configuración completa de estilos del log\n * \n * @interface LogStyles\n * @description Agrupa todas las opciones de estilo en una sola configuración\n */\nexport interface LogStyles {\n layout?: LogLayout;\n timestamp?: LogPartConfig;\n level?: LogPartConfig;\n prefix?: LogPartConfig;\n message?: LogPartConfig;\n location?: LogPartConfig;\n backdrop?: string;\n transparency?: number;\n}\n\nexport interface TimerResult {\n label: string;\n duration: number;\n startTime: number;\n endTime: number;\n}\n\nexport interface IScopedLogger {\n debug(...args: any[]): void;\n info(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n success(...args: any[]): void;\n critical(...args: any[]): void;\n trace(...args: any[]): void;\n\n badges(badges: string[]): this;\n badge(badge: string): this;\n clearBadges(): this;\n\n time(label: string): void;\n timeEnd(label: string): number | undefined;\n\n style(presetName: string): this;\n}\n\nexport interface IAPILogger extends IScopedLogger {\n slow(message: string, duration?: number): void;\n rateLimit(message: string): void;\n auth(message: string): void;\n deprecated(message: string): void;\n}\n\nexport interface IComponentLogger extends IScopedLogger {\n lifecycle(event: string, message?: string): void;\n stateChange(from: string, to: string, data?: any): void;\n propsChange(changes: Record<string, any>): void;\n}\n\nexport interface Bindings {\n scope?: string;\n badges?: string[];\n type?: 'scope' | 'api' | 'component';\n context?: string[];\n}\n\nexport type BadgeStyle = 'brackets' | 'rounded' | 'plain' | 'unicode' | 'pill';\n\nexport type TimestampFormat = 'iso' | 'time' | 'timeMs' | 'relative' | 'elapsed' | 'date' | 'custom';\n\nexport type ColumnAlign = 'left' | 'right' | 'center';\n\nexport interface ColumnConfig {\n content: string;\n width?: number;\n align?: ColumnAlign;\n color?: string;\n}\n\nexport interface LogOptions {\n rightAlign?: string;\n columns?: ColumnConfig[];\n maxWidth?: number;\n keyValue?: boolean;\n badgeStyle?: BadgeStyle;\n timestampFormat?: TimestampFormat;\n}\n\n// ===== CLI PRIMITIVES (v5.0) =====\n\n/**\n * CLI verbosity levels for controlling primitive output\n */\nexport type CLILogLevel = 'silent' | 'quiet' | 'normal' | 'verbose' | 'debug';\n\n/**\n * Handle returned by logger.spinner() for controlling spinner lifecycle\n */\nexport interface ISpinnerHandle {\n /** Start the spinner animation */\n start(): void;\n /** Stop the spinner without a status message */\n stop(): void;\n /** Stop the spinner with a success message */\n succeed(msg?: string): void;\n /** Stop the spinner with a failure message */\n fail(msg?: string): void;\n /** Update the spinner text while running */\n text(msg: string): void;\n}\n\n/**\n * Options for logger.box() output\n */\nexport interface IBoxOptions {\n /** Title displayed in the top border */\n title?: string;\n /** Color of the border (hex, CSS name, or ANSI name) */\n borderColor?: string;\n /** Border character style */\n borderStyle?: 'single' | 'double' | 'rounded' | 'bold';\n /** Inner padding lines (default: 0) */\n padding?: number;\n}\n\n/**\n * Options for logger.cliTable() output\n */\nexport interface ITableOptions {\n /** Column names to display (overrides auto-detection) */\n columns?: string[];\n /** Header labels (defaults to column names) */\n head?: string[];\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,aAAa;CACtB,OAAO;CACP,OAAO;CACP,MAAM;CACN,MAAM;CACN,OAAO;CACP,UAAU;AACd"}
@@ -0,0 +1,110 @@
1
+ //#region src/utils/environment-detector.ts
2
+ /**
3
+ * Checks if running in Node.js environment
4
+ */
5
+ const isNode = typeof process !== "undefined" && process.versions && process.versions.node;
6
+ /**
7
+ * Checks if running in browser environment
8
+ */
9
+ const isBrowser = typeof window !== "undefined" && typeof document !== "undefined";
10
+ /**
11
+ * Main environment detection function
12
+ */
13
+ function getEnvironment() {
14
+ if (typeof globalThis !== "undefined" && globalThis.Deno) return "deno";
15
+ if (typeof window === "undefined" && typeof self !== "undefined" && typeof self.importScripts === "function") return "webworker";
16
+ if (typeof process !== "undefined" && process.versions && process.versions.node) {
17
+ if (isRunningInTerminal()) return "terminal";
18
+ return "server";
19
+ }
20
+ if (typeof window !== "undefined" && typeof document !== "undefined") return "browser";
21
+ return "unknown";
22
+ }
23
+ /**
24
+ * Check if running in an interactive terminal
25
+ */
26
+ function isRunningInTerminal() {
27
+ if (typeof process === "undefined") return false;
28
+ const isTTY = process.stdout && process.stdout.isTTY;
29
+ const hasTerminalEnv = process.env && (process.env.TERM || process.env.TERM_PROGRAM || process.env.SSH_TTY || process.env.TERM_SESSION_ID);
30
+ const isTerminalProgram = hasTerminalEnv && [
31
+ "vscode",
32
+ "hyper",
33
+ "iterm",
34
+ "terminal",
35
+ "alacritty",
36
+ "kitty",
37
+ "gnome-terminal",
38
+ "konsole",
39
+ "xterm",
40
+ "tmux",
41
+ "screen"
42
+ ].some((program) => process.env.TERM_PROGRAM?.toLowerCase().includes(program) || process.env.TERM?.toLowerCase().includes(program));
43
+ return Boolean(isTTY || hasTerminalEnv || isTerminalProgram);
44
+ }
45
+ /**
46
+ * Check if environment supports ANSI colors
47
+ */
48
+ function supportsANSI() {
49
+ const env = getEnvironment();
50
+ if (env === "browser") return false;
51
+ if (env === "terminal") return true;
52
+ if (env === "server") return checkServerANSISupport();
53
+ return false;
54
+ }
55
+ /**
56
+ * Check if server environment supports ANSI colors
57
+ */
58
+ function checkServerANSISupport() {
59
+ if (typeof process === "undefined") return false;
60
+ const supportsANSI = process.env && (process.env.COLORTERM || process.env.FORCE_COLOR || process.env.TERM && process.env.TERM !== "dumb" || process.env.TERM_PROGRAM);
61
+ return Boolean(supportsANSI);
62
+ }
63
+ /**
64
+ * Get environment-specific color capability
65
+ */
66
+ function getColorCapability() {
67
+ if (getEnvironment() === "browser") return "full";
68
+ if (!supportsANSI()) return "none";
69
+ if (typeof process !== "undefined" && process.env) {
70
+ const hasTrueColor = process.env.COLORTERM === "truecolor" || process.env.COLORTERM === "24bit";
71
+ const has256Colors = process.env.TERM && process.env.TERM.includes("256");
72
+ if (hasTrueColor || has256Colors) return "full";
73
+ }
74
+ return "basic";
75
+ }
76
+ /**
77
+ * Get terminal width in columns
78
+ */
79
+ function getTerminalWidth() {
80
+ if (typeof process !== "undefined" && process.stdout?.columns) return process.stdout.columns;
81
+ return 80;
82
+ }
83
+ /**
84
+ * Get terminal height in rows
85
+ */
86
+ function getTerminalHeight() {
87
+ if (typeof process !== "undefined" && process.stdout?.rows) return process.stdout.rows;
88
+ return 24;
89
+ }
90
+ /**
91
+ * Environment information for debugging
92
+ */
93
+ function getEnvironmentInfo() {
94
+ return {
95
+ environment: getEnvironment(),
96
+ supportsANSI: supportsANSI(),
97
+ colorCapability: getColorCapability(),
98
+ isTTY: typeof process !== "undefined" ? Boolean(process.stdout?.isTTY) : false,
99
+ platform: typeof process !== "undefined" ? process.platform : "unknown",
100
+ nodeVersion: typeof process !== "undefined" ? process.versions?.node : null,
101
+ term: typeof process !== "undefined" ? process.env?.TERM : null,
102
+ colorTerm: typeof process !== "undefined" ? process.env?.COLORTERM : null,
103
+ terminalWidth: getTerminalWidth(),
104
+ terminalHeight: getTerminalHeight()
105
+ };
106
+ }
107
+ //#endregion
108
+ export { getTerminalWidth as a, isRunningInTerminal as c, getTerminalHeight as i, supportsANSI as l, getEnvironment as n, isBrowser as o, getEnvironmentInfo as r, isNode as s, getColorCapability as t };
109
+
110
+ //# sourceMappingURL=environment-detector-CI3TrWK_.js.map