@mks2508/better-logger 5.0.1 → 5.0.2

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 (310) hide show
  1. package/dist/Logger.d.ts +976 -0
  2. package/dist/Logger.d.ts.map +1 -0
  3. package/dist/ScopedLogger.d.ts +74 -0
  4. package/dist/ScopedLogger.d.ts.map +1 -0
  5. package/dist/chunks/Logger-CKqzXDh3.js +2 -0
  6. package/dist/chunks/Logger-CKqzXDh3.js.map +1 -0
  7. package/dist/chunks/Logger-D_vuKP4l.js +4511 -0
  8. package/dist/chunks/Logger-D_vuKP4l.js.map +1 -0
  9. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  10. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  11. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  12. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  13. package/dist/chunks/cli-module-B-njrTWb.js +2 -0
  14. package/dist/chunks/cli-module-B-njrTWb.js.map +1 -0
  15. package/dist/chunks/cli-module-Cx7qotPY.js +390 -0
  16. package/dist/chunks/cli-module-Cx7qotPY.js.map +1 -0
  17. package/dist/chunks/color-converter-CCSQRztd.js +2 -0
  18. package/dist/chunks/color-converter-CCSQRztd.js.map +1 -0
  19. package/dist/chunks/color-converter-_Xdmsy7E.js +462 -0
  20. package/dist/chunks/color-converter-_Xdmsy7E.js.map +1 -0
  21. package/dist/chunks/environment-C1xxvc8l.js +1127 -0
  22. package/dist/chunks/environment-C1xxvc8l.js.map +1 -0
  23. package/dist/chunks/environment-Cprkw3g9.js +4 -0
  24. package/dist/chunks/environment-Cprkw3g9.js.map +1 -0
  25. package/dist/chunks/formatting-DMJxYq9o.js +380 -0
  26. package/dist/chunks/formatting-DMJxYq9o.js.map +1 -0
  27. package/dist/chunks/formatting-DpKxCsXq.js +2 -0
  28. package/dist/chunks/formatting-DpKxCsXq.js.map +1 -0
  29. package/dist/cli/CommandProcessor.d.ts +100 -0
  30. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  31. package/dist/cli/commands/ConfigCommand.d.ts +14 -0
  32. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  33. package/dist/cli/commands/ExportCommand.d.ts +48 -0
  34. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  35. package/dist/cli/commands/HistoryCommand.d.ts +47 -0
  36. package/dist/cli/commands/HistoryCommand.d.ts.map +1 -0
  37. package/dist/cli/commands/StatusCommand.d.ts +30 -0
  38. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  39. package/dist/cli/commands/ThemeCommand.d.ts +30 -0
  40. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  41. package/dist/cli/help.d.ts +12 -0
  42. package/dist/cli/help.d.ts.map +1 -0
  43. package/dist/cli/index.d.ts +15 -0
  44. package/dist/cli/index.d.ts.map +1 -0
  45. package/{src/cli-module.ts → dist/cli-module.d.ts} +2 -8
  46. package/dist/cli-module.d.ts.map +1 -0
  47. package/dist/cli-primitives/box.d.ts +11 -0
  48. package/dist/cli-primitives/box.d.ts.map +1 -0
  49. package/dist/cli-primitives/cli-table.d.ts +11 -0
  50. package/dist/cli-primitives/cli-table.d.ts.map +1 -0
  51. package/dist/cli-primitives/divider.d.ts +11 -0
  52. package/dist/cli-primitives/divider.d.ts.map +1 -0
  53. package/dist/cli-primitives/header.d.ts +12 -0
  54. package/dist/cli-primitives/header.d.ts.map +1 -0
  55. package/{src/cli-primitives/index.ts → dist/cli-primitives/index.d.ts} +1 -1
  56. package/dist/cli-primitives/index.d.ts.map +1 -0
  57. package/dist/cli-primitives/server-fallback.d.ts +25 -0
  58. package/dist/cli-primitives/server-fallback.d.ts.map +1 -0
  59. package/dist/cli-primitives/spinner.d.ts +47 -0
  60. package/dist/cli-primitives/spinner.d.ts.map +1 -0
  61. package/dist/cli-primitives/step.d.ts +11 -0
  62. package/dist/cli-primitives/step.d.ts.map +1 -0
  63. package/dist/cli.cjs +2 -0
  64. package/dist/cli.cjs.map +1 -0
  65. package/dist/cli.js +12 -0
  66. package/dist/cli.js.map +1 -0
  67. package/dist/constants.d.ts +235 -0
  68. package/dist/constants.d.ts.map +1 -0
  69. package/dist/core.cjs +2 -0
  70. package/dist/core.cjs.map +1 -0
  71. package/dist/core.d.ts +127 -0
  72. package/dist/core.d.ts.map +1 -0
  73. package/dist/core.js +291 -0
  74. package/dist/core.js.map +1 -0
  75. package/dist/example.d.ts +18 -0
  76. package/dist/example.d.ts.map +1 -0
  77. package/dist/exports-module.d.ts +196 -0
  78. package/dist/exports-module.d.ts.map +1 -0
  79. package/dist/exports.cjs +2 -0
  80. package/dist/exports.cjs.map +1 -0
  81. package/dist/exports.js +238 -0
  82. package/dist/exports.js.map +1 -0
  83. package/dist/handlers/AnalyticsLogHandler.d.ts +8 -0
  84. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  85. package/dist/handlers/ExportLogHandler.d.ts +100 -0
  86. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  87. package/dist/handlers/FileLogHandler.d.ts +33 -0
  88. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  89. package/dist/handlers/RemoteLogHandler.d.ts +11 -0
  90. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  91. package/{src/handlers/index.ts → dist/handlers/index.d.ts} +2 -2
  92. package/dist/handlers/index.d.ts.map +1 -0
  93. package/dist/hooks/HookManager.d.ts +21 -0
  94. package/dist/hooks/HookManager.d.ts.map +1 -0
  95. package/{src/hooks/index.ts → dist/hooks/index.d.ts} +1 -0
  96. package/dist/hooks/index.d.ts.map +1 -0
  97. package/dist/index.cjs +2 -0
  98. package/dist/index.cjs.map +1 -0
  99. package/dist/index.d.ts +161 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +627 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/main.d.ts +2 -0
  104. package/dist/main.d.ts.map +1 -0
  105. package/dist/serializers/SerializerRegistry.d.ts +16 -0
  106. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  107. package/{src/serializers/index.ts → dist/serializers/index.d.ts} +1 -0
  108. package/dist/serializers/index.d.ts.map +1 -0
  109. package/dist/styling/LogStyleBuilder.d.ts +146 -0
  110. package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
  111. package/dist/styling/SemanticStyles.d.ts +178 -0
  112. package/dist/styling/SemanticStyles.d.ts.map +1 -0
  113. package/dist/styling/SmartPresets.d.ts +22 -0
  114. package/dist/styling/SmartPresets.d.ts.map +1 -0
  115. package/dist/styling/StyleBuilder.d.ts +140 -0
  116. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  117. package/dist/styling/StyleCache.d.ts +42 -0
  118. package/dist/styling/StyleCache.d.ts.map +1 -0
  119. package/dist/styling/banners.d.ts +42 -0
  120. package/dist/styling/banners.d.ts.map +1 -0
  121. package/dist/styling/index.d.ts +10 -0
  122. package/dist/styling/index.d.ts.map +1 -0
  123. package/dist/styling/themes.d.ts +7 -0
  124. package/dist/styling/themes.d.ts.map +1 -0
  125. package/dist/styling-module.d.ts +178 -0
  126. package/dist/styling-module.d.ts.map +1 -0
  127. package/dist/styling.cjs +2 -0
  128. package/dist/styling.cjs.map +1 -0
  129. package/dist/styling.js +146 -0
  130. package/dist/styling.js.map +1 -0
  131. package/dist/terminal/color-converter.d.ts +73 -0
  132. package/dist/terminal/color-converter.d.ts.map +1 -0
  133. package/dist/terminal/formatter.d.ts +20 -0
  134. package/dist/terminal/formatter.d.ts.map +1 -0
  135. package/dist/terminal/terminal-renderer.d.ts +77 -0
  136. package/dist/terminal/terminal-renderer.d.ts.map +1 -0
  137. package/dist/transports/ConsoleTransport.d.ts +9 -0
  138. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  139. package/dist/transports/FileTransport.d.ts +15 -0
  140. package/dist/transports/FileTransport.d.ts.map +1 -0
  141. package/dist/transports/HttpTransport.d.ts +16 -0
  142. package/dist/transports/HttpTransport.d.ts.map +1 -0
  143. package/dist/transports/TransportManager.d.ts +14 -0
  144. package/dist/transports/TransportManager.d.ts.map +1 -0
  145. package/{src/transports/index.ts → dist/transports/index.d.ts} +1 -0
  146. package/dist/transports/index.d.ts.map +1 -0
  147. package/{src/types/core.ts → dist/types/core.d.ts} +25 -62
  148. package/dist/types/core.d.ts.map +1 -0
  149. package/{src/types/handlers.ts → dist/types/handlers.d.ts} +5 -15
  150. package/dist/types/handlers.d.ts.map +1 -0
  151. package/{src/types/hooks.ts → dist/types/hooks.d.ts} +3 -12
  152. package/dist/types/hooks.d.ts.map +1 -0
  153. package/dist/types/index.d.ts +11 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/{src/types/serializers.ts → dist/types/serializers.d.ts} +1 -6
  156. package/dist/types/serializers.d.ts.map +1 -0
  157. package/{src/types/transports.ts → dist/types/transports.d.ts} +2 -7
  158. package/dist/types/transports.d.ts.map +1 -0
  159. package/dist/utils/adapter.d.ts +48 -0
  160. package/dist/utils/adapter.d.ts.map +1 -0
  161. package/dist/utils/ansi-colors.d.ts +156 -0
  162. package/dist/utils/ansi-colors.d.ts.map +1 -0
  163. package/dist/utils/environment-detector.d.ts +45 -0
  164. package/dist/utils/environment-detector.d.ts.map +1 -0
  165. package/dist/utils/environment.d.ts +47 -0
  166. package/dist/utils/environment.d.ts.map +1 -0
  167. package/dist/utils/formatting.d.ts +58 -0
  168. package/dist/utils/formatting.d.ts.map +1 -0
  169. package/dist/utils/index.d.ts +8 -0
  170. package/dist/utils/index.d.ts.map +1 -0
  171. package/dist/utils/opentui-detection.d.ts +34 -0
  172. package/dist/utils/opentui-detection.d.ts.map +1 -0
  173. package/dist/utils/output.d.ts +46 -0
  174. package/dist/utils/output.d.ts.map +1 -0
  175. package/dist/utils/stackTrace.d.ts +6 -0
  176. package/dist/utils/stackTrace.d.ts.map +1 -0
  177. package/dist/utils/timestamps.d.ts +20 -0
  178. package/dist/utils/timestamps.d.ts.map +1 -0
  179. package/{src/writers/BufferWriter.ts → dist/writers/BufferWriter.d.ts} +16 -77
  180. package/dist/writers/BufferWriter.d.ts.map +1 -0
  181. package/{src/writers/index.ts → dist/writers/index.d.ts} +1 -1
  182. package/dist/writers/index.d.ts.map +1 -0
  183. package/package.json +5 -1
  184. package/.claude/settings.local.json +0 -48
  185. package/.github/workflows/ci-quality.yml +0 -357
  186. package/.github/workflows/docs-demo.yml +0 -119
  187. package/.github/workflows/releases-core.yml +0 -512
  188. package/.github/workflows/releases-full.yml +0 -582
  189. package/.github/workflows-backup/ci.yml +0 -221
  190. package/.github/workflows-backup/nightly.yml +0 -196
  191. package/.github/workflows-backup/release-optimized.yml +0 -373
  192. package/.github/workflows-backup/release.yml +0 -269
  193. package/.release-notes-0.2.0.md +0 -129
  194. package/.yamllint +0 -28
  195. package/CHANGELOG.json +0 -1120
  196. package/CHANGELOG.md +0 -209
  197. package/CLAUDE.md +0 -217
  198. package/demo.html +0 -847
  199. package/docs/API.md +0 -918
  200. package/docs/CORE.md +0 -264
  201. package/docs/DEVELOPMENT.md +0 -731
  202. package/docs/EXPORTS.md +0 -467
  203. package/docs/PACKAGES.md +0 -244
  204. package/docs/STYLING.md +0 -405
  205. package/docs/_config.yml +0 -36
  206. package/docs/index.md +0 -179
  207. package/examples/README.md +0 -208
  208. package/examples/basic-logging.js +0 -75
  209. package/examples/data-export.js +0 -234
  210. package/examples/package.json +0 -16
  211. package/examples/performance-timing.js +0 -170
  212. package/examples/simplified-api.js +0 -124
  213. package/examples/styling-themes.js +0 -207
  214. package/index.html +0 -358
  215. package/packages/core/package.json +0 -57
  216. package/packages/exports/package.json +0 -41
  217. package/packages/nodejs-opentui/README.md +0 -232
  218. package/packages/nodejs-opentui/package.json +0 -72
  219. package/packages/nodejs-opentui/src/LogRenderer.ts +0 -171
  220. package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +0 -178
  221. package/packages/nodejs-opentui/src/components/LogBadge.tsx +0 -131
  222. package/packages/nodejs-opentui/src/index.ts +0 -133
  223. package/packages/nodejs-opentui/src/types.ts +0 -158
  224. package/packages/nodejs-opentui/tsconfig.json +0 -20
  225. package/packages/styling/package.json +0 -41
  226. package/playground/demo-all.ts +0 -95
  227. package/playground/demo-box.ts +0 -85
  228. package/playground/demo-levels.ts +0 -56
  229. package/playground/demo-real-world.ts +0 -98
  230. package/playground/demo-spinner.ts +0 -77
  231. package/playground/demo-steps.ts +0 -72
  232. package/playground/demo-table.ts +0 -83
  233. package/project-utils/README.md +0 -172
  234. package/project-utils/auto-release-gemini.ts +0 -1193
  235. package/project-utils/auto-release-ui.ts +0 -1329
  236. package/project-utils/commit-generator.ts +0 -1385
  237. package/project-utils/commit-ui.ts +0 -264
  238. package/project-utils/git-utils.ts +0 -199
  239. package/project-utils/github-release-manager.ts +0 -466
  240. package/project-utils/project-config.ts +0 -260
  241. package/project-utils/prompt-templates.js +0 -345
  242. package/project-utils/prompt-templates.ts +0 -422
  243. package/project-utils/version-manager.ts +0 -1078
  244. package/src/Logger.ts +0 -1858
  245. package/src/ScopedLogger.ts +0 -256
  246. package/src/cli/CommandProcessor.ts +0 -248
  247. package/src/cli/commands/ConfigCommand.ts +0 -93
  248. package/src/cli/commands/ExportCommand.ts +0 -276
  249. package/src/cli/commands/HistoryCommand.ts +0 -117
  250. package/src/cli/commands/StatusCommand.ts +0 -112
  251. package/src/cli/commands/ThemeCommand.ts +0 -88
  252. package/src/cli/help.ts +0 -127
  253. package/src/cli/index.ts +0 -71
  254. package/src/cli-primitives/box.ts +0 -86
  255. package/src/cli-primitives/cli-table.ts +0 -62
  256. package/src/cli-primitives/divider.ts +0 -17
  257. package/src/cli-primitives/header.ts +0 -18
  258. package/src/cli-primitives/server-fallback.ts +0 -54
  259. package/src/cli-primitives/spinner.ts +0 -133
  260. package/src/cli-primitives/step.ts +0 -22
  261. package/src/constants.ts +0 -313
  262. package/src/core.ts +0 -397
  263. package/src/example.ts +0 -210
  264. package/src/exports-module.ts +0 -311
  265. package/src/handlers/AnalyticsLogHandler.ts +0 -22
  266. package/src/handlers/ExportLogHandler.ts +0 -610
  267. package/src/handlers/FileLogHandler.ts +0 -169
  268. package/src/handlers/RemoteLogHandler.ts +0 -42
  269. package/src/hooks/HookManager.ts +0 -177
  270. package/src/index.ts +0 -395
  271. package/src/main.ts +0 -196
  272. package/src/serializers/SerializerRegistry.ts +0 -173
  273. package/src/style.css +0 -96
  274. package/src/styling/LogStyleBuilder.ts +0 -355
  275. package/src/styling/SemanticStyles.ts +0 -380
  276. package/src/styling/SmartPresets.ts +0 -288
  277. package/src/styling/StyleBuilder.ts +0 -319
  278. package/src/styling/StyleCache.ts +0 -131
  279. package/src/styling/banners.ts +0 -168
  280. package/src/styling/index.ts +0 -27
  281. package/src/styling/themes.ts +0 -235
  282. package/src/styling-module.ts +0 -244
  283. package/src/terminal/color-converter.ts +0 -315
  284. package/src/terminal/formatter.ts +0 -242
  285. package/src/terminal/terminal-renderer.ts +0 -342
  286. package/src/transports/ConsoleTransport.ts +0 -28
  287. package/src/transports/FileTransport.ts +0 -53
  288. package/src/transports/HttpTransport.ts +0 -56
  289. package/src/transports/TransportManager.ts +0 -130
  290. package/src/types/index.ts +0 -83
  291. package/src/typescript.svg +0 -1
  292. package/src/utils/adapter.ts +0 -291
  293. package/src/utils/ansi-colors.ts +0 -333
  294. package/src/utils/environment-detector.ts +0 -170
  295. package/src/utils/environment.ts +0 -94
  296. package/src/utils/formatting.ts +0 -332
  297. package/src/utils/index.ts +0 -33
  298. package/src/utils/opentui-detection.ts +0 -138
  299. package/src/utils/output.ts +0 -227
  300. package/src/utils/stackTrace.ts +0 -144
  301. package/src/utils/timestamps.ts +0 -80
  302. package/src/vite-env.d.ts +0 -1
  303. package/test-core-browser.html +0 -237
  304. package/test-core-node.js +0 -63
  305. package/tests/test-conflict-resolution.ts +0 -391
  306. package/tests/validate-workflows.sh +0 -131
  307. package/tests/yaml-autofix.sh +0 -146
  308. package/tsconfig.json +0 -50
  309. package/vite.config.ts +0 -256
  310. /package/{public → dist}/vite.svg +0 -0
@@ -1,119 +0,0 @@
1
- ---
2
- name: Docs & Demo Deployment
3
-
4
- on:
5
- workflow_dispatch:
6
- # Solo se ejecuta manualmente o cuando se llama desde otro workflow
7
- workflow_call:
8
-
9
- env:
10
- NODE_VERSION: '20'
11
-
12
- jobs:
13
- # ===== BUILD DEMO =====
14
- build-demo:
15
- runs-on: ubuntu-latest
16
-
17
- steps:
18
- - name: "📥 Checkout code"
19
- uses: actions/checkout@v4
20
-
21
- - name: "📦 Setup Bun"
22
- uses: oven-sh/setup-bun@v2
23
- with:
24
- bun-version: latest
25
- - name: "🔧 Install dependencies"
26
- run: bun install --frozen-lockfile
27
-
28
- - name: "🏗️ Build library for demo"
29
- run: bun run build:full
30
-
31
- - name: "🏗️ Setup demo structure"
32
- run: |
33
- mkdir -p _site/docs
34
- # Copy demo as root
35
- cp demo.html _site/index.html
36
- cp index.html _site/dev.html
37
- cp -r dist/ _site/dist/
38
-
39
- # Create demo metadata
40
- echo "## 📦 Demo Build Info" > _site/build-info.md
41
- echo "- **Build Date**: $(date)" >> _site/build-info.md
42
- echo "- **Commit**: ${{ github.sha }}" >> _site/build-info.md
43
- echo "- **Version**: $(node -p 'require("./package.json").version')" >> _site/build-info.md
44
-
45
- - name: "📤 Upload demo artifacts"
46
- uses: actions/upload-artifact@v4
47
- with:
48
- name: demo-site
49
- path: _site/
50
- retention-days: 30
51
-
52
- # ===== BUILD DOCS =====
53
- build-docs:
54
- runs-on: ubuntu-latest
55
-
56
- steps:
57
- - name: "📥 Checkout code"
58
- uses: actions/checkout@v4
59
-
60
- - name: "📤 Build Jekyll documentation"
61
- uses: actions/jekyll-build-pages@v1
62
- with:
63
- source: ./docs
64
- destination: ./_site/docs
65
-
66
- - name: "📤 Upload docs artifacts"
67
- uses: actions/upload-artifact@v4
68
- with:
69
- name: docs-site
70
- path: _site/docs/
71
- retention-days: 30
72
-
73
- # ===== DEPLOY TO GITHUB PAGES =====
74
- deploy-pages:
75
- runs-on: ubuntu-latest
76
- needs: [build-demo, build-docs]
77
- if: github.ref == 'refs/heads/main'
78
-
79
- permissions:
80
- contents: read
81
- pages: write
82
- id-token: write
83
-
84
- environment:
85
- name: github-pages
86
- url: ${{ steps.deployment.outputs.page_url }}
87
-
88
- steps:
89
- - name: "📥 Download demo artifacts"
90
- uses: actions/download-artifact@v4
91
- with:
92
- name: demo-site
93
- path: _site/
94
-
95
- - name: "📥 Download docs artifacts"
96
- uses: actions/download-artifact@v4
97
- with:
98
- name: docs-site
99
- path: _site/docs/
100
-
101
- - name: "📤 Setup Pages"
102
- uses: actions/configure-pages@v4
103
-
104
- - name: "📤 Upload to Pages"
105
- uses: actions/upload-pages-artifact@v3
106
- with:
107
- path: ./_site
108
-
109
- - name: "🚀 Deploy to GitHub Pages"
110
- id: deployment
111
- uses: actions/deploy-pages@v4
112
-
113
- - name: 📊 Deployment summary
114
- run: |
115
- echo "## 📝 Documentation & Demo Deployed!" >> $GITHUB_STEP_SUMMARY
116
- echo "- **Demo URL**: ${{ steps.deployment.outputs.page_url }}" >> $GITHUB_STEP_SUMMARY
117
- echo "- **Docs URL**: ${{ steps.deployment.outputs.page_url }}docs/" >> $GITHUB_STEP_SUMMARY
118
- echo "- **Dev Demo**: ${{ steps.deployment.outputs.page_url }}dev.html" >> $GITHUB_STEP_SUMMARY
119
- echo "- **Build Info**: ${{ steps.deployment.outputs.page_url }}build-info.md" >> $GITHUB_STEP_SUMMARY
@@ -1,512 +0,0 @@
1
- ---
2
- name: Core Modular Releases - AI Enhanced (Manual Only)
3
-
4
- on:
5
- workflow_dispatch:
6
- inputs:
7
- module:
8
- description: 'Módulo a construir y publicar'
9
- required: true
10
- default: 'all'
11
- type: choice
12
- options:
13
- - all
14
- - core
15
- - styling
16
- - exports
17
- - full
18
- version_type:
19
- description: 'Tipo de versión'
20
- required: false
21
- default: 'auto'
22
- type: choice
23
- options:
24
- - auto
25
- - patch
26
- - minor
27
- - major
28
- version_prefix:
29
- description: 'Prefijo de versión'
30
- required: false
31
- default: 'stable'
32
- type: choice
33
- options:
34
- - stable
35
- - alpha
36
- - beta
37
- - rc
38
- target_registry:
39
- description: 'Registro objetivo'
40
- required: false
41
- default: 'both'
42
- type: choice
43
- options:
44
- - npm
45
- - github
46
- - both
47
- skip_tests:
48
- description: 'Saltar tests (no recomendado)'
49
- required: false
50
- default: false
51
- type: boolean
52
-
53
- # Concurrency control para evitar conflictos con otros releases
54
- concurrency:
55
- group: release-pipeline-${{ github.ref }}
56
- cancel-in-progress: true
57
-
58
- env:
59
- NODE_VERSION: '20'
60
-
61
- jobs:
62
- # ===== STEP 1: AI VERSION ANALYSIS FOR MODULAR RELEASE =====
63
- ai-modular-version:
64
- runs-on: ubuntu-latest
65
- permissions:
66
- contents: write
67
-
68
- outputs:
69
- version: ${{ steps.version.outputs.version }}
70
- tag: ${{ steps.version.outputs.tag }}
71
- is_prerelease: ${{ steps.version.outputs.is_prerelease }}
72
- release_channel: ${{ steps.version.outputs.release_channel }}
73
- modules_to_build: ${{ steps.modules.outputs.modules }}
74
-
75
- steps:
76
- - name: "📥 Checkout code"
77
- uses: actions/checkout@v4
78
- with:
79
- fetch-depth: 0
80
- token: ${{ secrets.GITHUB_TOKEN }}
81
-
82
- - name: "📦 Setup Bun"
83
- uses: oven-sh/setup-bun@v2
84
- with:
85
- bun-version: latest
86
-
87
- - name: "🔧 Install dependencies"
88
- run: bun install --frozen-lockfile
89
-
90
- - name: "🤖 Setup Gemini CLI"
91
- run: |
92
- echo "🤖 Configurando Gemini CLI para release modular..."
93
- # Install Gemini CLI
94
- npm install -g @google/generative-ai
95
- # Verificar instalación
96
- echo "✅ Gemini CLI configurado para módulos"
97
- env:
98
- GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
99
-
100
- - name: "🤖 Step 1: AI Version Analysis for Modular Release"
101
- id: version
102
- run: |
103
- echo "🤖 === PASO 1: ANÁLISIS AI PARA RELEASE MODULAR ==="
104
-
105
- # Configurar contexto específico para release modular
106
- WORK_TYPE="modular-release"
107
- AFFECTED_COMPONENTS="${{ inputs.module }}"
108
- CONTEXT="Modular release for ${{ inputs.module }} module(s)"
109
-
110
- VERSION_TYPE="${{ inputs.version_type }}"
111
- VERSION_PREFIX="${{ inputs.version_prefix }}"
112
-
113
- # Preparar argumentos para version-manager con contexto de módulos
114
- ARGS="--auto-approve"
115
-
116
- if [ "$VERSION_TYPE" != "auto" ]; then
117
- ARGS="$ARGS --type $VERSION_TYPE"
118
- fi
119
-
120
- if [ "$VERSION_PREFIX" != "stable" ]; then
121
- ARGS="$ARGS --prefix $VERSION_PREFIX"
122
- fi
123
-
124
- echo "📋 Ejecutando version-manager con contexto modular: $AFFECTED_COMPONENTS"
125
- echo "🚀 Comando: bun project-utils/version-manager.ts $ARGS"
126
-
127
- # Ejecutar version-manager con análisis AI
128
- bun project-utils/version-manager.ts $ARGS
129
-
130
- # Obtener nueva versión
131
- NEW_VERSION=$(node -p "require('./package.json').version")
132
- echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
133
- echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
134
-
135
- # Determinar si es prerelease y canal
136
- case "$NEW_VERSION" in
137
- *alpha*)
138
- echo "is_prerelease=true" >> $GITHUB_OUTPUT
139
- echo "release_channel=alpha" >> $GITHUB_OUTPUT
140
- ;;
141
- *beta*)
142
- echo "is_prerelease=true" >> $GITHUB_OUTPUT
143
- echo "release_channel=beta" >> $GITHUB_OUTPUT
144
- ;;
145
- *rc*)
146
- echo "is_prerelease=true" >> $GITHUB_OUTPUT
147
- echo "release_channel=rc" >> $GITHUB_OUTPUT
148
- ;;
149
- *)
150
- echo "is_prerelease=false" >> $GITHUB_OUTPUT
151
- echo "release_channel=latest" >> $GITHUB_OUTPUT
152
- ;;
153
- esac
154
-
155
- echo "✅ Versión generada para release modular: $NEW_VERSION"
156
-
157
- - name: "📋 Step 2: Determine modules to build"
158
- id: modules
159
- run: |
160
- echo "📋 === PASO 2: DETERMINANDO MÓDULOS A CONSTRUIR ==="
161
- MODULE_INPUT="${{ inputs.module }}"
162
-
163
- case "$MODULE_INPUT" in
164
- "all")
165
- MODULES="core,styling,exports,full"
166
- ;;
167
- "full")
168
- MODULES="full"
169
- ;;
170
- *)
171
- MODULES="$MODULE_INPUT"
172
- ;;
173
- esac
174
-
175
- echo "modules=$MODULES" >> $GITHUB_OUTPUT
176
- echo "✅ Módulos a construir: $MODULES"
177
-
178
- - name: "🏷️ Commit version changes"
179
- run: |
180
- echo "🏷️ Commiteando cambios de versión modular usando project-utils con resolución automática de conflictos..."
181
-
182
- # Configurar environment variables para detectar contexto de release
183
- export RELEASE_WORKFLOW=true
184
- export GITHUB_WORKFLOW="${{ github.workflow }}"
185
-
186
- # Usar commit-generator con contexto específico de release modular
187
- echo "🤖 Usando commit-generator con detección automática de conflictos para módulo ${{ inputs.module }}..."
188
- bun project-utils/commit-generator.ts \
189
- --context "modular release ${{ steps.version.outputs.version }} (${{ inputs.module }})" \
190
- --work-type "release" \
191
- --affected-components "${{ inputs.module }},changelog" \
192
- --auto-approve \
193
- --quiet \
194
- || {
195
- echo "⚠️ Commit-generator falló, usando estrategia de fallback..."
196
-
197
- # Fallback: estrategia manual con pull-rebase-push
198
- git config user.name "github-actions[bot]"
199
- git config user.email "github-actions[bot]@users.noreply.github.com"
200
-
201
- MAX_RETRIES=3
202
- RETRY_COUNT=0
203
-
204
- while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
205
- echo "🔄 Intento fallback $((RETRY_COUNT + 1))/$MAX_RETRIES"
206
-
207
- git fetch origin main
208
- if ! git merge-base --is-ancestor origin/main HEAD; then
209
- echo "🔄 Aplicando rebase..."
210
- git rebase origin/main || {
211
- echo "⚠️ Conflictos en rebase, aplicando reset hard"
212
- git rebase --abort
213
- git reset --hard origin/main
214
- }
215
- fi
216
-
217
- git add package.json CHANGELOG.json packages/*/package.json
218
- git commit -m "chore: modular release ${{ steps.version.outputs.version }} (${{ inputs.module }}) [skip ci]" || {
219
- echo "ℹ️ No hay cambios para commit"
220
- break
221
- }
222
-
223
- if git push origin main; then
224
- echo "✅ Push exitoso en intento fallback $((RETRY_COUNT + 1))"
225
- break
226
- else
227
- RETRY_COUNT=$((RETRY_COUNT + 1))
228
- if [ $RETRY_COUNT -lt $MAX_RETRIES ]; then
229
- sleep 5
230
- git reset --hard HEAD~1
231
- fi
232
- fi
233
- done
234
-
235
- if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
236
- echo "❌ Push falló después de $MAX_RETRIES intentos"
237
- exit 1
238
- fi
239
- }
240
-
241
- - name: "📤 Upload version artifacts"
242
- uses: actions/upload-artifact@v4
243
- with:
244
- name: modular-version-artifacts
245
- path: |
246
- project-utils/.temp/
247
- CHANGELOG.json
248
- package.json
249
- retention-days: 7
250
-
251
- # ===== STEP 2: BUILD SPECIFIED MODULES =====
252
- build-modular:
253
- runs-on: ubuntu-latest
254
- needs: ai-modular-version
255
-
256
- strategy:
257
- matrix:
258
- module: ${{ fromJson(format('["{0}"]', needs.ai-modular-version.outputs.modules_to_build)) }}
259
-
260
- steps:
261
- - name: "📥 Checkout code with version changes"
262
- uses: actions/checkout@v4
263
- with:
264
- fetch-depth: 0
265
- token: ${{ secrets.GITHUB_TOKEN }}
266
- ref: main
267
-
268
- - name: "🔄 Pull latest changes"
269
- run: git pull origin main
270
-
271
- - name: "📦 Setup Bun"
272
- uses: oven-sh/setup-bun@v2
273
- with:
274
- bun-version: latest
275
-
276
- - name: "🔧 Install dependencies"
277
- run: bun install --frozen-lockfile
278
-
279
- - name: "🧪 Run tests for module (unless skipped)"
280
- if: ${{ !inputs.skip_tests }}
281
- run: |
282
- echo "🧪 === EJECUTANDO TESTS PARA MÓDULO: ${{ matrix.module }} ==="
283
- bun run type-check
284
- bun run test
285
- echo "✅ Tests completados para ${{ matrix.module }}"
286
-
287
- - name: "🏗️ Step 3: Build specific module"
288
- run: |
289
- echo "🏗️ === PASO 3: CONSTRUYENDO MÓDULO: ${{ matrix.module }} ==="
290
-
291
- case "${{ matrix.module }}" in
292
- "core")
293
- bun run build:core
294
- echo "✅ Módulo core construido"
295
- ;;
296
- "styling")
297
- bun run build:styling
298
- echo "✅ Módulo styling construido"
299
- ;;
300
- "exports")
301
- bun run build:exports
302
- echo "✅ Módulo exports construido"
303
- ;;
304
- "full")
305
- bun run build:full
306
- echo "✅ Build completo realizado"
307
- ;;
308
- *)
309
- echo "🏗️ Construyendo todos los módulos..."
310
- bun run build:all
311
- echo "✅ Todos los módulos construidos"
312
- ;;
313
- esac
314
-
315
- # Mostrar archivos generados
316
- echo "📊 Archivos generados para ${{ matrix.module }}:"
317
- if [ "${{ matrix.module }}" == "full" ] || ["${{ matrix.module }}" == "all"]; then
318
- ls -la dist/
319
- else
320
- ls -la dist/modular/${{ matrix.module }}/ || ls -la dist/
321
- fi
322
-
323
- - name: "📤 Upload build artifacts for module"
324
- uses: actions/upload-artifact@v4
325
- with:
326
- name: build-${{ matrix.module }}-${{ needs.ai-modular-version.outputs.version }}
327
- path: |
328
- dist/
329
- retention-days: 30
330
-
331
- # ===== STEP 3: PUBLISH MODULAR RELEASES =====
332
- publish-modular:
333
- runs-on: ubuntu-latest
334
- needs: [ai-modular-version, build-modular]
335
- if: inputs.target_registry == 'npm' || inputs.target_registry == 'both'
336
-
337
- steps:
338
- - name: "📥 Checkout code"
339
- uses: actions/checkout@v4
340
- with:
341
- ref: main
342
-
343
- - name: "📦 Setup Bun with NPM registry"
344
- uses: oven-sh/setup-bun@v2
345
- with:
346
- bun-version: latest
347
- registry-url: 'https://registry.npmjs.org'
348
-
349
- - name: "📥 Download all build artifacts"
350
- uses: actions/download-artifact@v4
351
- with:
352
- pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
353
- path: builds/
354
- merge-multiple: true
355
-
356
- - name: "🚀 Step 4: Publish modular releases to NPM"
357
- run: |
358
- echo "🚀 === PASO 4: PUBLICANDO RELEASES MODULARES EN NPM ==="
359
-
360
- # Determinar tag de publicación
361
- if [ "${{ needs.ai-modular-version.outputs.is_prerelease }}" = "true" ]; then
362
- PUBLISH_TAG="${{ needs.ai-modular-version.outputs.release_channel }}"
363
- echo "📦 Publicando como prerelease con tag: $PUBLISH_TAG"
364
- else
365
- PUBLISH_TAG="latest"
366
- echo "📦 Publicando como release estable"
367
- fi
368
-
369
- # Publicar dependiendo del módulo seleccionado
370
- if [ "${{ inputs.module }}" == "all" ] || ["${{ inputs.module }}" == "full"]; then
371
- echo "📦 Publicando paquete completo..."
372
- npm publish --access public --tag $PUBLISH_TAG
373
- else
374
- echo "📦 Publicando módulo específico: ${{ inputs.module }}"
375
- # Para releases modulares específicos, publicar como paquete scoped
376
- npm publish --access public --tag $PUBLISH_TAG
377
- fi
378
-
379
- echo "✅ Publicación modular completada en NPM"
380
- env:
381
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
382
-
383
- # ===== STEP 4: GITHUB PACKAGES (if selected) =====
384
- publish-github-modular:
385
- runs-on: ubuntu-latest
386
- needs: [ai-modular-version, build-modular]
387
- if: inputs.target_registry == 'github' || inputs.target_registry == 'both'
388
-
389
- steps:
390
- - name: "📥 Checkout code"
391
- uses: actions/checkout@v4
392
- with:
393
- ref: main
394
-
395
- - name: "📦 Setup Bun with GitHub registry"
396
- uses: oven-sh/setup-bun@v2
397
- with:
398
- bun-version: latest
399
- registry-url: 'https://npm.pkg.github.com'
400
-
401
- - name: "📥 Download all build artifacts"
402
- uses: actions/download-artifact@v4
403
- with:
404
- pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
405
- path: builds/
406
- merge-multiple: true
407
-
408
- - name: "📦 Step 5: Publish to GitHub Packages"
409
- run: |
410
- echo "📦 === PASO 5: PUBLICANDO EN GITHUB PACKAGES ==="
411
-
412
- if [ "${{ needs.ai-modular-version.outputs.is_prerelease }}" = "true" ]; then
413
- echo "📦 Publishing prerelease to GitHub Packages with tag: ${{ needs.ai-modular-version.outputs.release_channel }}"
414
- npm publish --access public --tag ${{ needs.ai-modular-version.outputs.release_channel }}
415
- else
416
- echo "📦 Publishing stable release to GitHub Packages"
417
- npm publish --access public
418
- fi
419
- echo "✅ Publicación modular completada en GitHub Packages"
420
- env:
421
- NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
422
-
423
- # ===== STEP 5: CREATE MODULAR GITHUB RELEASE =====
424
- create-modular-release:
425
- runs-on: ubuntu-latest
426
- needs: [ai-modular-version, build-modular, publish-modular, publish-github-modular]
427
- if: always() && needs.build-modular.result == 'success'
428
-
429
- permissions:
430
- contents: write
431
-
432
- steps:
433
- - name: "📥 Checkout code"
434
- uses: actions/checkout@v4
435
- with:
436
- fetch-depth: 0
437
- ref: main
438
-
439
- - name: "📦 Setup Bun"
440
- uses: oven-sh/setup-bun@v2
441
- with:
442
- bun-version: latest
443
-
444
- - name: "🔧 Install dependencies"
445
- run: bun install --frozen-lockfile
446
-
447
- - name: "📥 Download build artifacts"
448
- uses: actions/download-artifact@v4
449
- with:
450
- pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
451
- path: builds/
452
- merge-multiple: true
453
-
454
- - name: "🏷️ Create git tag for modular release"
455
- run: |
456
- echo "🏷️ Creando tag para release modular..."
457
- git config user.name "github-actions[bot]"
458
- git config user.email "github-actions[bot]@users.noreply.github.com"
459
- TAG_NAME="${{ needs.ai-modular-version.outputs.tag }}-${{ inputs.module }}"
460
- git tag -a "$TAG_NAME" -m "Modular release ${{ needs.ai-modular-version.outputs.version }} (${{ inputs.module }})"
461
- git push origin --tags
462
-
463
- - name: "🚀 Step 6: Create Modular GitHub Release with AI"
464
- run: |
465
- echo "🚀 === PASO 6: CREANDO GITHUB RELEASE MODULAR CON AI ==="
466
-
467
- # Agregar contexto de módulo al release
468
- export RELEASE_CONTEXT="Modular release for ${{ inputs.module }} module(s)"
469
- export RELEASE_MODULE="${{ inputs.module }}"
470
-
471
- bun project-utils/github-release-manager.ts --auto-approve
472
- echo "✅ GitHub Release modular creado exitosamente"
473
- env:
474
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
475
-
476
- # ===== MODULAR RELEASE SUMMARY =====
477
- modular-summary:
478
- runs-on: ubuntu-latest
479
- needs: [ai-modular-version, build-modular, publish-modular, publish-github-modular, create-modular-release]
480
- if: always()
481
-
482
- steps:
483
- - name: 📊 Modular Release Summary
484
- run: |
485
- VERSION="${{ needs.ai-modular-version.outputs.version }}"
486
- MODULE="${{ inputs.module }}"
487
- CHANNEL="${{ needs.ai-modular-version.outputs.release_channel }}"
488
- IS_PRERELEASE="${{ needs.ai-modular-version.outputs.is_prerelease }}"
489
-
490
- echo "## 🎉 Modular Release Pipeline Complete!" >> $GITHUB_STEP_SUMMARY
491
- echo "- **Version**: $VERSION" >> $GITHUB_STEP_SUMMARY
492
- echo "- **Module(s)**: $MODULE" >> $GITHUB_STEP_SUMMARY
493
- echo "- **Channel**: $CHANNEL" >> $GITHUB_STEP_SUMMARY
494
- echo "- **Prerelease**: $IS_PRERELEASE" >> $GITHUB_STEP_SUMMARY
495
- echo "" >> $GITHUB_STEP_SUMMARY
496
-
497
- echo "### 📊 Pipeline Steps Results" >> $GITHUB_STEP_SUMMARY
498
- echo "1. **AI Version Analysis**: ✅ $VERSION" >> $GITHUB_STEP_SUMMARY
499
- echo "2. **Module Build**: ${{ needs.build-modular.result }}" >> $GITHUB_STEP_SUMMARY
500
- echo "3. **NPM Publishing**: ${{ needs.publish-modular.result }}" >> $GITHUB_STEP_SUMMARY
501
- echo "4. **GitHub Packages**: ${{ needs.publish-github-modular.result }}" >> $GITHUB_STEP_SUMMARY
502
- echo "5. **GitHub Release**: ${{ needs.create-modular-release.result }}" >> $GITHUB_STEP_SUMMARY
503
- echo "" >> $GITHUB_STEP_SUMMARY
504
-
505
- echo "### 📦 Module-Specific Installation" >> $GITHUB_STEP_SUMMARY
506
- echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
507
- if [ "$IS_PRERELEASE" = "true" ]; then
508
- echo "npm install @mks2508/better-logger@$CHANNEL # $MODULE module included" >> $GITHUB_STEP_SUMMARY
509
- else
510
- echo "npm install @mks2508/better-logger # $MODULE module included" >> $GITHUB_STEP_SUMMARY
511
- fi
512
- echo "\`\`\`" >> $GITHUB_STEP_SUMMARY