@mks2508/better-logger 0.0.2-alpha.2 → 0.8.1-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 (231) hide show
  1. package/.github/workflows/ci-quality.yml +356 -0
  2. package/.github/workflows/docs-demo.yml +123 -0
  3. package/.github/workflows/releases-core.yml +448 -0
  4. package/.github/workflows/releases-full.yml +404 -0
  5. package/.github/{workflows → workflows-backup}/ci.yml +12 -110
  6. package/.github/workflows-backup/nightly.yml +196 -0
  7. package/.github/workflows-backup/release-optimized.yml +373 -0
  8. package/.release-notes-0.2.0.md +129 -0
  9. package/CHANGELOG.json +658 -0
  10. package/README.md +110 -512
  11. package/demo.html +9 -2
  12. package/dist/Logger.d.ts +176 -0
  13. package/dist/Logger.d.ts.map +1 -0
  14. package/dist/Logger.js +498 -0
  15. package/dist/chunks/{Logger-BrFKFZcD.js → Logger-CbCUS5pQ.js} +987 -5
  16. package/dist/chunks/Logger-CbCUS5pQ.js.map +1 -0
  17. package/dist/chunks/Logger-PCfgYKTP.js +2 -0
  18. package/dist/chunks/Logger-PCfgYKTP.js.map +1 -0
  19. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  20. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  21. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  22. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  23. package/dist/chunks/StyleBuilder-BoJTmskd.js +361 -0
  24. package/dist/chunks/StyleBuilder-BoJTmskd.js.map +1 -0
  25. package/dist/chunks/StyleBuilder-LPLzsoHY.js +4 -0
  26. package/dist/chunks/StyleBuilder-LPLzsoHY.js.map +1 -0
  27. package/dist/cli/CommandProcessor.d.ts +40 -0
  28. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  29. package/dist/cli/CommandProcessor.js +57 -0
  30. package/dist/cli/commands/ConfigCommand.d.ts +17 -0
  31. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  32. package/dist/cli/commands/ConfigCommand.js +88 -0
  33. package/dist/cli/commands/ExportCommand.d.ts +51 -0
  34. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  35. package/dist/cli/commands/ExportCommand.js +243 -0
  36. package/dist/cli/commands/StatusCommand.d.ts +33 -0
  37. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  38. package/dist/cli/commands/StatusCommand.js +93 -0
  39. package/dist/cli/commands/ThemeCommand.d.ts +33 -0
  40. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  41. package/dist/cli/commands/ThemeCommand.js +79 -0
  42. package/dist/cli/help.d.ts +15 -0
  43. package/dist/cli/help.d.ts.map +1 -0
  44. package/dist/cli/help.js +118 -0
  45. package/dist/cli/index.d.ts +15 -0
  46. package/dist/cli/index.d.ts.map +1 -0
  47. package/dist/cli/index.js +40 -0
  48. package/dist/constants.d.ts +91 -0
  49. package/dist/constants.d.ts.map +1 -0
  50. package/dist/constants.js +80 -0
  51. package/dist/core.cjs +1 -1
  52. package/dist/core.cjs.map +1 -1
  53. package/dist/core.d.ts +130 -0
  54. package/dist/core.d.ts.map +1 -0
  55. package/dist/core.js +258 -242
  56. package/dist/core.js.map +1 -1
  57. package/dist/example.d.ts +18 -0
  58. package/dist/example.d.ts.map +1 -0
  59. package/dist/example.js +154 -0
  60. package/dist/exports-module.d.ts +203 -0
  61. package/dist/exports-module.d.ts.map +1 -0
  62. package/dist/exports-module.js +260 -0
  63. package/dist/exports.cjs +1 -1
  64. package/dist/exports.cjs.map +1 -1
  65. package/dist/exports.js +2 -2
  66. package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
  67. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  68. package/dist/handlers/AnalyticsLogHandler.js +19 -0
  69. package/dist/handlers/ExportLogHandler.d.ts +103 -0
  70. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  71. package/dist/handlers/ExportLogHandler.js +516 -0
  72. package/dist/handlers/FileLogHandler.d.ts +13 -0
  73. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  74. package/dist/handlers/FileLogHandler.js +24 -0
  75. package/dist/handlers/RemoteLogHandler.d.ts +14 -0
  76. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  77. package/dist/handlers/RemoteLogHandler.js +37 -0
  78. package/dist/handlers/index.d.ts +8 -0
  79. package/dist/handlers/index.d.ts.map +1 -0
  80. package/dist/handlers/index.js +7 -0
  81. package/dist/index.cjs +1 -1
  82. package/dist/index.cjs.map +1 -1
  83. package/dist/index.d.ts +86 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +89 -103
  86. package/dist/main.d.ts +2 -0
  87. package/dist/main.d.ts.map +1 -0
  88. package/dist/main.js +139 -0
  89. package/dist/styling/StyleBuilder.d.ts +132 -0
  90. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  91. package/dist/styling/StyleBuilder.js +268 -0
  92. package/dist/styling/banners.d.ts +45 -0
  93. package/dist/styling/banners.d.ts.map +1 -0
  94. package/dist/styling/banners.js +155 -0
  95. package/dist/styling/index.d.ts +7 -0
  96. package/dist/styling/index.d.ts.map +1 -0
  97. package/dist/styling/index.js +6 -0
  98. package/dist/styling/themes.d.ts +10 -0
  99. package/dist/styling/themes.d.ts.map +1 -0
  100. package/dist/styling/themes.js +231 -0
  101. package/dist/styling-module.d.ts +185 -0
  102. package/dist/styling-module.d.ts.map +1 -0
  103. package/dist/styling-module.js +199 -0
  104. package/dist/styling.cjs +1 -1
  105. package/dist/styling.cjs.map +1 -1
  106. package/dist/styling.js +4 -4
  107. package/dist/types/Logger.d.ts +172 -0
  108. package/dist/types/Logger.d.ts.map +1 -0
  109. package/dist/types/cli/CommandProcessor.d.ts +37 -0
  110. package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
  111. package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
  112. package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
  113. package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
  114. package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
  115. package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
  116. package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
  117. package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
  118. package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
  119. package/dist/types/cli/help.d.ts +12 -0
  120. package/dist/types/cli/help.d.ts.map +1 -0
  121. package/dist/types/cli/index.d.ts +15 -0
  122. package/dist/types/cli/index.d.ts.map +1 -0
  123. package/dist/types/constants.d.ts +88 -0
  124. package/dist/types/constants.d.ts.map +1 -0
  125. package/dist/types/core.d.ts +71 -211
  126. package/dist/types/core.d.ts.map +1 -0
  127. package/dist/types/core.js +13 -0
  128. package/dist/types/example.d.ts +18 -0
  129. package/dist/types/example.d.ts.map +1 -0
  130. package/dist/types/exports-module.d.ts +196 -0
  131. package/dist/types/exports-module.d.ts.map +1 -0
  132. package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
  133. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  134. package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
  135. package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
  136. package/dist/types/handlers/FileLogHandler.d.ts +10 -0
  137. package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
  138. package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
  139. package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
  140. package/dist/types/handlers/index.d.ts +8 -0
  141. package/dist/types/handlers/index.d.ts.map +1 -0
  142. package/dist/types/handlers.d.ts +88 -0
  143. package/dist/types/handlers.d.ts.map +1 -0
  144. package/dist/types/handlers.js +4 -0
  145. package/dist/types/index.d.ts +7 -675
  146. package/dist/types/index.d.ts.map +1 -0
  147. package/dist/types/index.js +4 -0
  148. package/dist/types/main.d.ts +2 -0
  149. package/dist/types/main.d.ts.map +1 -0
  150. package/dist/types/styling/StyleBuilder.d.ts +132 -0
  151. package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
  152. package/dist/types/styling/banners.d.ts +42 -0
  153. package/dist/types/styling/banners.d.ts.map +1 -0
  154. package/dist/types/styling/index.d.ts +7 -0
  155. package/dist/types/styling/index.d.ts.map +1 -0
  156. package/dist/types/styling/themes.d.ts +7 -0
  157. package/dist/types/styling/themes.d.ts.map +1 -0
  158. package/dist/types/styling-module.d.ts +178 -0
  159. package/dist/types/styling-module.d.ts.map +1 -0
  160. package/dist/types/types/core.d.ts +71 -0
  161. package/dist/types/types/core.d.ts.map +1 -0
  162. package/dist/types/types/handlers.d.ts +85 -0
  163. package/dist/types/types/handlers.d.ts.map +1 -0
  164. package/dist/types/types/index.d.ts +7 -0
  165. package/dist/types/types/index.d.ts.map +1 -0
  166. package/dist/types/utils/index.d.ts +7 -0
  167. package/dist/types/utils/index.d.ts.map +1 -0
  168. package/dist/types/utils/output.d.ts +29 -0
  169. package/dist/types/utils/output.d.ts.map +1 -0
  170. package/dist/types/utils/stackTrace.d.ts +6 -0
  171. package/dist/types/utils/stackTrace.d.ts.map +1 -0
  172. package/dist/types/utils/timestamps.d.ts +20 -0
  173. package/dist/types/utils/timestamps.d.ts.map +1 -0
  174. package/dist/utils/index.d.ts +7 -0
  175. package/dist/utils/index.d.ts.map +1 -0
  176. package/dist/utils/index.js +6 -0
  177. package/dist/utils/output.d.ts +32 -0
  178. package/dist/utils/output.d.ts.map +1 -0
  179. package/dist/utils/output.js +97 -0
  180. package/dist/utils/stackTrace.d.ts +9 -0
  181. package/dist/utils/stackTrace.d.ts.map +1 -0
  182. package/dist/utils/stackTrace.js +81 -0
  183. package/dist/utils/timestamps.d.ts +20 -0
  184. package/dist/utils/timestamps.d.ts.map +1 -0
  185. package/dist/utils/timestamps.js +71 -0
  186. package/docs/API.md +607 -0
  187. package/docs/DEVELOPMENT.md +731 -0
  188. package/docs/_config.yml +36 -0
  189. package/docs/index.md +179 -0
  190. package/examples/README.md +208 -0
  191. package/examples/basic-logging.js +75 -0
  192. package/examples/data-export.js +234 -0
  193. package/examples/package.json +16 -0
  194. package/examples/performance-timing.js +170 -0
  195. package/examples/styling-themes.js +207 -0
  196. package/package.json +24 -21
  197. package/packages/core/package.json +35 -0
  198. package/packages/exports/package.json +41 -0
  199. package/packages/styling/package.json +41 -0
  200. package/project-utils/README.md +172 -0
  201. package/project-utils/auto-release-gemini.ts +1193 -0
  202. package/project-utils/commit-generator.ts +1000 -0
  203. package/project-utils/commit-ui.ts +246 -0
  204. package/project-utils/git-utils.ts +199 -0
  205. package/project-utils/github-release-manager.ts +466 -0
  206. package/project-utils/prompt-templates.js +345 -0
  207. package/project-utils/prompt-templates.ts +422 -0
  208. package/project-utils/version-manager.ts +1078 -0
  209. package/src/Logger.ts +2 -1
  210. package/src/handlers/ExportLogHandler.ts +141 -0
  211. package/vite.config.ts +152 -50
  212. package/.claude/settings.local.json +0 -22
  213. package/.npmrc.bak +0 -1
  214. package/dist/chunks/Logger-BQhMKy_T.js +0 -2
  215. package/dist/chunks/Logger-BQhMKy_T.js.map +0 -1
  216. package/dist/chunks/Logger-BrFKFZcD.js.map +0 -1
  217. package/dist/chunks/core-2opW4Pi3.js +0 -194
  218. package/dist/chunks/core-2opW4Pi3.js.map +0 -1
  219. package/dist/chunks/core-DyugwSYZ.js +0 -4
  220. package/dist/chunks/core-DyugwSYZ.js.map +0 -1
  221. package/dist/chunks/exports-BNP3R7dp.js +0 -421
  222. package/dist/chunks/exports-BNP3R7dp.js.map +0 -1
  223. package/dist/chunks/exports-U1xLBXrY.js +0 -2
  224. package/dist/chunks/exports-U1xLBXrY.js.map +0 -1
  225. package/dist/chunks/styling-DhUDzwlE.js +0 -654
  226. package/dist/chunks/styling-DhUDzwlE.js.map +0 -1
  227. package/dist/chunks/styling-tmRDI28D.js +0 -2
  228. package/dist/chunks/styling-tmRDI28D.js.map +0 -1
  229. package/dist/types/exports.d.ts +0 -600
  230. package/dist/types/styling.d.ts +0 -751
  231. /package/.github/{workflows → workflows-backup}/release.yml +0 -0
@@ -0,0 +1,448 @@
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
+ env:
54
+ NODE_VERSION: '20'
55
+
56
+ jobs:
57
+ # ===== STEP 1: AI VERSION ANALYSIS FOR MODULAR RELEASE =====
58
+ ai-modular-version:
59
+ runs-on: ubuntu-latest
60
+ permissions:
61
+ contents: write
62
+
63
+ outputs:
64
+ version: ${{ steps.version.outputs.version }}
65
+ tag: ${{ steps.version.outputs.tag }}
66
+ is_prerelease: ${{ steps.version.outputs.is_prerelease }}
67
+ release_channel: ${{ steps.version.outputs.release_channel }}
68
+ modules_to_build: ${{ steps.modules.outputs.modules }}
69
+
70
+ steps:
71
+ - name: 📥 Checkout code
72
+ uses: actions/checkout@v4
73
+ with:
74
+ fetch-depth: 0
75
+ token: ${{ secrets.GITHUB_TOKEN }}
76
+
77
+ - name: 📦 Setup Bun
78
+ uses: oven-sh/setup-bun@v2
79
+ with:
80
+ bun-version: latest
81
+
82
+ - name: 🔧 Install dependencies
83
+ run: bun install --frozen-lockfile
84
+
85
+ - name: 🤖 Setup Gemini CLI
86
+ run: |
87
+ echo "🤖 Configurando Gemini CLI para release modular..."
88
+ # Install Gemini CLI
89
+ npm install -g @google/generative-ai
90
+ # Verificar instalación
91
+ echo "✅ Gemini CLI configurado para módulos"
92
+ env:
93
+ GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
94
+
95
+ - name: 🤖 Step 1: AI Version Analysis for Modular Release
96
+ id: version
97
+ run: |
98
+ echo "🤖 === PASO 1: ANÁLISIS AI PARA RELEASE MODULAR ==="
99
+
100
+ # Configurar contexto específico para release modular
101
+ WORK_TYPE="modular-release"
102
+ AFFECTED_COMPONENTS="${{ inputs.module }}"
103
+ CONTEXT="Modular release for ${{ inputs.module }} module(s)"
104
+
105
+ VERSION_TYPE="${{ inputs.version_type }}"
106
+ VERSION_PREFIX="${{ inputs.version_prefix }}"
107
+
108
+ # Preparar argumentos para version-manager con contexto de módulos
109
+ ARGS="--auto-approve"
110
+
111
+ if [ "$VERSION_TYPE" != "auto" ]; then
112
+ ARGS="$ARGS --type $VERSION_TYPE"
113
+ fi
114
+
115
+ if [ "$VERSION_PREFIX" != "stable" ]; then
116
+ ARGS="$ARGS --prefix $VERSION_PREFIX"
117
+ fi
118
+
119
+ echo "📋 Ejecutando version-manager con contexto modular: $AFFECTED_COMPONENTS"
120
+ echo "🚀 Comando: bun project-utils/version-manager.ts $ARGS"
121
+
122
+ # Ejecutar version-manager con análisis AI
123
+ bun project-utils/version-manager.ts $ARGS
124
+
125
+ # Obtener nueva versión
126
+ NEW_VERSION=$(node -p "require('./package.json').version")
127
+ echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
128
+ echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
129
+
130
+ # Determinar si es prerelease y canal
131
+ if [[ "$NEW_VERSION" == *"alpha"* ]]; then
132
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
133
+ echo "release_channel=alpha" >> $GITHUB_OUTPUT
134
+ elif [[ "$NEW_VERSION" == *"beta"* ]]; then
135
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
136
+ echo "release_channel=beta" >> $GITHUB_OUTPUT
137
+ elif [[ "$NEW_VERSION" == *"rc"* ]]; then
138
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
139
+ echo "release_channel=rc" >> $GITHUB_OUTPUT
140
+ else
141
+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
142
+ echo "release_channel=latest" >> $GITHUB_OUTPUT
143
+ fi
144
+
145
+ echo "✅ Versión generada para release modular: $NEW_VERSION"
146
+
147
+ - name: 📋 Step 2: Determine modules to build
148
+ id: modules
149
+ run: |
150
+ echo "📋 === PASO 2: DETERMINANDO MÓDULOS A CONSTRUIR ==="
151
+ MODULE_INPUT="${{ inputs.module }}"
152
+
153
+ case "$MODULE_INPUT" in
154
+ "all")
155
+ MODULES="core,styling,exports,full"
156
+ ;;
157
+ "full")
158
+ MODULES="full"
159
+ ;;
160
+ *)
161
+ MODULES="$MODULE_INPUT"
162
+ ;;
163
+ esac
164
+
165
+ echo "modules=$MODULES" >> $GITHUB_OUTPUT
166
+ echo "✅ Módulos a construir: $MODULES"
167
+
168
+ - name: 🏷️ Commit version changes
169
+ run: |
170
+ echo "🏷️ Commiteando cambios de versión modular..."
171
+ git config user.name "github-actions[bot]"
172
+ git config user.email "github-actions[bot]@users.noreply.github.com"
173
+ git add package.json CHANGELOG.json packages/*/package.json
174
+ git commit -m "chore: modular release ${{ steps.version.outputs.version }} (${{ inputs.module }}) [skip ci]" || echo "No changes to commit"
175
+ git push origin main
176
+
177
+ - name: 📤 Upload version artifacts
178
+ uses: actions/upload-artifact@v4
179
+ with:
180
+ name: modular-version-artifacts
181
+ path: |
182
+ project-utils/.temp/
183
+ CHANGELOG.json
184
+ package.json
185
+ retention-days: 7
186
+
187
+ # ===== STEP 2: BUILD SPECIFIED MODULES =====
188
+ build-modular:
189
+ runs-on: ubuntu-latest
190
+ needs: ai-modular-version
191
+
192
+ strategy:
193
+ matrix:
194
+ module: ${{ fromJson(format('["{0}"]', needs.ai-modular-version.outputs.modules_to_build)) }}
195
+
196
+ steps:
197
+ - name: 📥 Checkout code with version changes
198
+ uses: actions/checkout@v4
199
+ with:
200
+ fetch-depth: 0
201
+ token: ${{ secrets.GITHUB_TOKEN }}
202
+ ref: main
203
+
204
+ - name: 🔄 Pull latest changes
205
+ run: git pull origin main
206
+
207
+ - name: 📦 Setup Bun
208
+ uses: oven-sh/setup-bun@v2
209
+ with:
210
+ bun-version: latest
211
+
212
+ - name: 🔧 Install dependencies
213
+ run: bun install --frozen-lockfile
214
+
215
+ - name: 🧪 Run tests for module (unless skipped)
216
+ if: ${{ !inputs.skip_tests }}
217
+ run: |
218
+ echo "🧪 === EJECUTANDO TESTS PARA MÓDULO: ${{ matrix.module }} ==="
219
+ bun run type-check
220
+ bun run test
221
+ echo "✅ Tests completados para ${{ matrix.module }}"
222
+
223
+ - name: 🏗️ Step 3: Build specific module
224
+ run: |
225
+ echo "🏗️ === PASO 3: CONSTRUYENDO MÓDULO: ${{ matrix.module }} ==="
226
+
227
+ case "${{ matrix.module }}" in
228
+ "core")
229
+ bun run build:core
230
+ echo "✅ Módulo core construido"
231
+ ;;
232
+ "styling")
233
+ bun run build:styling
234
+ echo "✅ Módulo styling construido"
235
+ ;;
236
+ "exports")
237
+ bun run build:exports
238
+ echo "✅ Módulo exports construido"
239
+ ;;
240
+ "full")
241
+ bun run build:full
242
+ echo "✅ Build completo realizado"
243
+ ;;
244
+ *)
245
+ echo "🏗️ Construyendo todos los módulos..."
246
+ bun run build:all
247
+ echo "✅ Todos los módulos construidos"
248
+ ;;
249
+ esac
250
+
251
+ # Mostrar archivos generados
252
+ echo "📊 Archivos generados para ${{ matrix.module }}:"
253
+ if [ "${{ matrix.module }}" == "full" ] || [ "${{ matrix.module }}" == "all" ]; then
254
+ ls -la dist/
255
+ else
256
+ ls -la dist/modular/${{ matrix.module }}/ || ls -la dist/
257
+ fi
258
+
259
+ - name: 📤 Upload build artifacts for module
260
+ uses: actions/upload-artifact@v4
261
+ with:
262
+ name: build-${{ matrix.module }}-${{ needs.ai-modular-version.outputs.version }}
263
+ path: |
264
+ dist/
265
+ retention-days: 30
266
+
267
+ # ===== STEP 3: PUBLISH MODULAR RELEASES =====
268
+ publish-modular:
269
+ runs-on: ubuntu-latest
270
+ needs: [ai-modular-version, build-modular]
271
+ if: inputs.target_registry == 'npm' || inputs.target_registry == 'both'
272
+
273
+ steps:
274
+ - name: 📥 Checkout code
275
+ uses: actions/checkout@v4
276
+ with:
277
+ ref: main
278
+
279
+ - name: 📦 Setup Bun with NPM registry
280
+ uses: oven-sh/setup-bun@v2
281
+ with:
282
+ bun-version: latest
283
+ registry-url: 'https://registry.npmjs.org'
284
+
285
+ - name: 📥 Download all build artifacts
286
+ uses: actions/download-artifact@v4
287
+ with:
288
+ pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
289
+ path: builds/
290
+ merge-multiple: true
291
+
292
+ - name: 🚀 Step 4: Publish modular releases to NPM
293
+ run: |
294
+ echo "🚀 === PASO 4: PUBLICANDO RELEASES MODULARES EN NPM ==="
295
+
296
+ # Determinar tag de publicación
297
+ if [ "${{ needs.ai-modular-version.outputs.is_prerelease }}" == "true" ]; then
298
+ PUBLISH_TAG="${{ needs.ai-modular-version.outputs.release_channel }}"
299
+ echo "📦 Publicando como prerelease con tag: $PUBLISH_TAG"
300
+ else
301
+ PUBLISH_TAG="latest"
302
+ echo "📦 Publicando como release estable"
303
+ fi
304
+
305
+ # Publicar dependiendo del módulo seleccionado
306
+ if [ "${{ inputs.module }}" == "all" ] || [ "${{ inputs.module }}" == "full" ]; then
307
+ echo "📦 Publicando paquete completo..."
308
+ npm publish --access public --tag $PUBLISH_TAG
309
+ else
310
+ echo "📦 Publicando módulo específico: ${{ inputs.module }}"
311
+ # Para releases modulares específicos, publicar como paquete scoped
312
+ npm publish --access public --tag $PUBLISH_TAG
313
+ fi
314
+
315
+ echo "✅ Publicación modular completada en NPM"
316
+ env:
317
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
318
+
319
+ # ===== STEP 4: GITHUB PACKAGES (if selected) =====
320
+ publish-github-modular:
321
+ runs-on: ubuntu-latest
322
+ needs: [ai-modular-version, build-modular]
323
+ if: inputs.target_registry == 'github' || inputs.target_registry == 'both'
324
+
325
+ steps:
326
+ - name: 📥 Checkout code
327
+ uses: actions/checkout@v4
328
+ with:
329
+ ref: main
330
+
331
+ - name: 📦 Setup Bun with GitHub registry
332
+ uses: oven-sh/setup-bun@v2
333
+ with:
334
+ bun-version: latest
335
+ registry-url: 'https://npm.pkg.github.com'
336
+
337
+ - name: 📥 Download all build artifacts
338
+ uses: actions/download-artifact@v4
339
+ with:
340
+ pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
341
+ path: builds/
342
+ merge-multiple: true
343
+
344
+ - name: 📦 Step 5: Publish to GitHub Packages
345
+ run: |
346
+ echo "📦 === PASO 5: PUBLICANDO EN GITHUB PACKAGES ==="
347
+
348
+ if [ "${{ needs.ai-modular-version.outputs.is_prerelease }}" == "true" ]; then
349
+ echo "📦 Publishing prerelease to GitHub Packages with tag: ${{ needs.ai-modular-version.outputs.release_channel }}"
350
+ npm publish --access public --tag ${{ needs.ai-modular-version.outputs.release_channel }}
351
+ else
352
+ echo "📦 Publishing stable release to GitHub Packages"
353
+ npm publish --access public
354
+ fi
355
+ echo "✅ Publicación modular completada en GitHub Packages"
356
+ env:
357
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
358
+
359
+ # ===== STEP 5: CREATE MODULAR GITHUB RELEASE =====
360
+ create-modular-release:
361
+ runs-on: ubuntu-latest
362
+ needs: [ai-modular-version, build-modular, publish-modular, publish-github-modular]
363
+ if: always() && needs.build-modular.result == 'success'
364
+
365
+ permissions:
366
+ contents: write
367
+
368
+ steps:
369
+ - name: 📥 Checkout code
370
+ uses: actions/checkout@v4
371
+ with:
372
+ fetch-depth: 0
373
+ ref: main
374
+
375
+ - name: 📦 Setup Bun
376
+ uses: oven-sh/setup-bun@v2
377
+ with:
378
+ bun-version: latest
379
+
380
+ - name: 🔧 Install dependencies
381
+ run: bun install --frozen-lockfile
382
+
383
+ - name: 📥 Download build artifacts
384
+ uses: actions/download-artifact@v4
385
+ with:
386
+ pattern: build-*-${{ needs.ai-modular-version.outputs.version }}
387
+ path: builds/
388
+ merge-multiple: true
389
+
390
+ - name: 🏷️ Create git tag for modular release
391
+ run: |
392
+ echo "🏷️ Creando tag para release modular..."
393
+ git config user.name "github-actions[bot]"
394
+ git config user.email "github-actions[bot]@users.noreply.github.com"
395
+ TAG_NAME="${{ needs.ai-modular-version.outputs.tag }}-${{ inputs.module }}"
396
+ git tag -a "$TAG_NAME" -m "Modular release ${{ needs.ai-modular-version.outputs.version }} (${{ inputs.module }})"
397
+ git push origin --tags
398
+
399
+ - name: 🚀 Step 6: Create Modular GitHub Release with AI
400
+ run: |
401
+ echo "🚀 === PASO 6: CREANDO GITHUB RELEASE MODULAR CON AI ==="
402
+
403
+ # Agregar contexto de módulo al release
404
+ export RELEASE_CONTEXT="Modular release for ${{ inputs.module }} module(s)"
405
+ export RELEASE_MODULE="${{ inputs.module }}"
406
+
407
+ bun project-utils/github-release-manager.ts --auto-approve
408
+ echo "✅ GitHub Release modular creado exitosamente"
409
+ env:
410
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
411
+
412
+ # ===== MODULAR RELEASE SUMMARY =====
413
+ modular-summary:
414
+ runs-on: ubuntu-latest
415
+ needs: [ai-modular-version, build-modular, publish-modular, publish-github-modular, create-modular-release]
416
+ if: always()
417
+
418
+ steps:
419
+ - name: 📊 Modular Release Summary
420
+ run: |
421
+ VERSION="${{ needs.ai-modular-version.outputs.version }}"
422
+ MODULE="${{ inputs.module }}"
423
+ CHANNEL="${{ needs.ai-modular-version.outputs.release_channel }}"
424
+ IS_PRERELEASE="${{ needs.ai-modular-version.outputs.is_prerelease }}"
425
+
426
+ echo "## 🎉 Modular Release Pipeline Complete!" >> $GITHUB_STEP_SUMMARY
427
+ echo "- **Version**: $VERSION" >> $GITHUB_STEP_SUMMARY
428
+ echo "- **Module(s)**: $MODULE" >> $GITHUB_STEP_SUMMARY
429
+ echo "- **Channel**: $CHANNEL" >> $GITHUB_STEP_SUMMARY
430
+ echo "- **Prerelease**: $IS_PRERELEASE" >> $GITHUB_STEP_SUMMARY
431
+ echo "" >> $GITHUB_STEP_SUMMARY
432
+
433
+ echo "### 📊 Pipeline Steps Results" >> $GITHUB_STEP_SUMMARY
434
+ echo "1. **AI Version Analysis**: ✅ $VERSION" >> $GITHUB_STEP_SUMMARY
435
+ echo "2. **Module Build**: ${{ needs.build-modular.result }}" >> $GITHUB_STEP_SUMMARY
436
+ echo "3. **NPM Publishing**: ${{ needs.publish-modular.result }}" >> $GITHUB_STEP_SUMMARY
437
+ echo "4. **GitHub Packages**: ${{ needs.publish-github-modular.result }}" >> $GITHUB_STEP_SUMMARY
438
+ echo "5. **GitHub Release**: ${{ needs.create-modular-release.result }}" >> $GITHUB_STEP_SUMMARY
439
+ echo "" >> $GITHUB_STEP_SUMMARY
440
+
441
+ echo "### 📦 Module-Specific Installation" >> $GITHUB_STEP_SUMMARY
442
+ echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
443
+ if [ "$IS_PRERELEASE" == "true" ]; then
444
+ echo "npm install @mks2508/better-logger@$CHANNEL # $MODULE module included" >> $GITHUB_STEP_SUMMARY
445
+ else
446
+ echo "npm install @mks2508/better-logger # $MODULE module included" >> $GITHUB_STEP_SUMMARY
447
+ fi
448
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY