@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,404 @@
1
+ ---
2
+ name: Full Release Pipeline - Granular AI Steps
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ inputs:
7
+ version_type:
8
+ description: 'Tipo de versión'
9
+ required: false
10
+ default: 'auto'
11
+ type: choice
12
+ options:
13
+ - auto
14
+ - patch
15
+ - minor
16
+ - major
17
+ version_prefix:
18
+ description: 'Prefijo de versión'
19
+ required: false
20
+ default: 'stable'
21
+ type: choice
22
+ options:
23
+ - stable
24
+ - alpha
25
+ - beta
26
+ - rc
27
+ target_registry:
28
+ description: 'Registro objetivo'
29
+ required: false
30
+ default: 'both'
31
+ type: choice
32
+ options:
33
+ - npm
34
+ - github
35
+ - both
36
+ skip_tests:
37
+ description: 'Saltar tests (no recomendado)'
38
+ required: false
39
+ default: false
40
+ type: boolean
41
+ dry_run:
42
+ description: 'Solo mostrar qué haría (dry run)'
43
+ required: false
44
+ default: false
45
+ type: boolean
46
+ push:
47
+ branches: [main]
48
+ paths-ignore:
49
+ - 'docs/**'
50
+ - '*.md'
51
+ - '.github/workflows/docs-demo.yml'
52
+ - 'package.json'
53
+ - 'CHANGELOG.json'
54
+ - 'packages/*/package.json'
55
+
56
+ env:
57
+ NODE_VERSION: '20'
58
+
59
+ jobs:
60
+ # ===== STEP 1: AI VERSION ANALYSIS & GENERATION =====
61
+ ai-version-generation:
62
+ runs-on: ubuntu-latest
63
+ if: github.actor != 'github-actions[bot]'
64
+ permissions:
65
+ contents: write
66
+
67
+ outputs:
68
+ version: ${{ steps.version.outputs.version }}
69
+ tag: ${{ steps.version.outputs.tag }}
70
+ is_prerelease: ${{ steps.version.outputs.is_prerelease }}
71
+ release_channel: ${{ steps.version.outputs.release_channel }}
72
+ should_skip: ${{ steps.version.outputs.should_skip }}
73
+
74
+ steps:
75
+ - name: "📥 Checkout code"
76
+ uses: actions/checkout@v4
77
+ with:
78
+ fetch-depth: 0
79
+ token: ${{ secrets.GITHUB_TOKEN }}
80
+
81
+ - name: "📦 Setup Bun"
82
+ uses: oven-sh/setup-bun@v2
83
+ with:
84
+ bun-version: latest
85
+
86
+ - name: "🔧 Install dependencies"
87
+ run: bun install --frozen-lockfile
88
+
89
+ - name: "🤖 Setup Gemini CLI"
90
+ run: |
91
+ echo "🤖 Configurando Gemini CLI..."
92
+ # Install Gemini CLI
93
+ npm install -g @google/generative-ai
94
+ # Verificar instalación
95
+ echo "✅ Gemini CLI configurado"
96
+ env:
97
+ GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
98
+
99
+ - name: "🤖 Step 1: AI Version Analysis & Generation"
100
+ id: version
101
+ env:
102
+ VERSION_TYPE: ${{ inputs.version_type || 'auto' }}
103
+ VERSION_PREFIX: ${{ inputs.version_prefix || 'stable' }}
104
+ TARGET_REGISTRY: ${{ inputs.target_registry || 'npm' }}
105
+ DRY_RUN: ${{ inputs.dry_run || 'false' }}
106
+ run: |
107
+ echo "🤖 === PASO 1: ANÁLISIS Y GENERACIÓN DE VERSIÓN CON AI ==="
108
+
109
+ # Mostrar contexto de ejecución
110
+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
111
+ echo "📝 Ejecutando en modo manual con parámetros especificados"
112
+ else
113
+ echo "🔄 Ejecutando automáticamente desde push - usando defaults"
114
+ fi
115
+
116
+ # Preparar argumentos para version-manager usando variables de entorno
117
+ ARGS="--auto-approve"
118
+
119
+ if [ "$VERSION_TYPE" != "auto" ]; then
120
+ ARGS="$ARGS --type $VERSION_TYPE"
121
+ fi
122
+
123
+ if [ "$VERSION_PREFIX" != "stable" ]; then
124
+ ARGS="$ARGS --prefix $VERSION_PREFIX"
125
+ fi
126
+
127
+ # Mostrar comando que se ejecutará
128
+ echo "📋 Ejecutando: bun project-utils/version-manager.ts $ARGS"
129
+
130
+ if [ "$DRY_RUN" = "true" ]; then
131
+ echo "🔍 [DRY RUN] Se generaría nueva versión con: $ARGS"
132
+ echo "should_skip=true" >> $GITHUB_OUTPUT
133
+ echo "version=dry-run" >> $GITHUB_OUTPUT
134
+ echo "tag=dry-run" >> $GITHUB_OUTPUT
135
+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
136
+ echo "release_channel=dry-run" >> $GITHUB_OUTPUT
137
+ else
138
+ # Ejecutar version-manager con AI
139
+ echo "🚀 Ejecutando version-manager con análisis AI..."
140
+ bun project-utils/version-manager.ts $ARGS
141
+
142
+ # Obtener nueva versión del package.json
143
+ NEW_VERSION=$(node -p "require('./package.json').version")
144
+ echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
145
+ echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
146
+
147
+ # Determinar si es prerelease y canal
148
+ if [[ "$NEW_VERSION" == *"alpha"* ]]; then
149
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
150
+ echo "release_channel=alpha" >> $GITHUB_OUTPUT
151
+ elif [[ "$NEW_VERSION" == *"beta"* ]]; then
152
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
153
+ echo "release_channel=beta" >> $GITHUB_OUTPUT
154
+ elif [[ "$NEW_VERSION" == *"rc"* ]]; then
155
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
156
+ echo "release_channel=rc" >> $GITHUB_OUTPUT
157
+ else
158
+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
159
+ echo "release_channel=latest" >> $GITHUB_OUTPUT
160
+ fi
161
+
162
+ echo "should_skip=false" >> $GITHUB_OUTPUT
163
+ echo "✅ Nueva versión generada: $NEW_VERSION"
164
+ fi
165
+
166
+ - name: "🏷️ Commit and push version changes"
167
+ if: steps.version.outputs.should_skip != 'true'
168
+ run: |
169
+ echo "🏷️ Commiteando cambios de versión..."
170
+ git config user.name "github-actions[bot]"
171
+ git config user.email "github-actions[bot]@users.noreply.github.com"
172
+ git add package.json CHANGELOG.json packages/*/package.json
173
+ git commit -m "chore: release ${{ steps.version.outputs.version }} [skip ci]" || echo "No changes to commit"
174
+ git push origin main
175
+
176
+ - name: "📤 Upload version artifacts"
177
+ uses: actions/upload-artifact@v4
178
+ if: always()
179
+ with:
180
+ name: version-artifacts
181
+ path: |
182
+ project-utils/.temp/
183
+ CHANGELOG.json
184
+ package.json
185
+ retention-days: 7
186
+
187
+ # ===== STEP 2: BUILD & PREPARE =====
188
+ build-and-prepare:
189
+ runs-on: ubuntu-latest
190
+ needs: ai-version-generation
191
+ if: needs.ai-version-generation.outputs.should_skip != 'true'
192
+
193
+ steps:
194
+ - name: "📥 Checkout code with version changes"
195
+ uses: actions/checkout@v4
196
+ with:
197
+ fetch-depth: 0
198
+ token: ${{ secrets.GITHUB_TOKEN }}
199
+ ref: main
200
+
201
+ - name: "🔄 Pull latest changes"
202
+ run: git pull origin main
203
+
204
+ - name: "📦 Setup Bun"
205
+ uses: oven-sh/setup-bun@v2
206
+ with:
207
+ bun-version: latest
208
+
209
+ - name: "🔧 Install dependencies"
210
+ run: bun install --frozen-lockfile
211
+
212
+ - name: "🧪 Step 2: Run tests (unless skipped)"
213
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.skip_tests != 'true'
214
+ run: |
215
+ echo "🧪 === PASO 2: EJECUTANDO TESTS Y VALIDACIONES ==="
216
+ bun run type-check
217
+ bun run test
218
+ echo "✅ Tests completados exitosamente"
219
+
220
+ - name: "🏗️ Step 3: Build all modules"
221
+ run: |
222
+ echo "🏗️ === PASO 3: COMPILANDO TODOS LOS MÓDULOS ==="
223
+ bun run build:all
224
+ echo "✅ Build completado exitosamente"
225
+
226
+ # Mostrar archivos generados
227
+ echo "📊 Archivos generados:"
228
+ ls -la dist/
229
+
230
+ - name: "📤 Upload build artifacts"
231
+ uses: actions/upload-artifact@v4
232
+ with:
233
+ name: build-artifacts-${{ needs.ai-version-generation.outputs.version }}
234
+ path: dist/
235
+ retention-days: 30
236
+
237
+ # ===== STEP 3: NPM PUBLISHING =====
238
+ publish-npm:
239
+ runs-on: ubuntu-latest
240
+ needs: [ai-version-generation, build-and-prepare]
241
+ if: needs.ai-version-generation.outputs.should_skip != 'true' && (github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && (github.event.inputs.target_registry == 'npm' || github.event.inputs.target_registry == 'both')))
242
+
243
+ steps:
244
+ - name: "📥 Checkout code"
245
+ uses: actions/checkout@v4
246
+ with:
247
+ ref: main
248
+
249
+ - name: "📦 Setup Node.js with NPM registry"
250
+ uses: actions/setup-node@v4
251
+ with:
252
+ node-version: '20'
253
+ registry-url: 'https://registry.npmjs.org'
254
+
255
+ - name: "📥 Download build artifacts"
256
+ uses: actions/download-artifact@v4
257
+ with:
258
+ name: build-artifacts-${{ needs.ai-version-generation.outputs.version }}
259
+ path: dist/
260
+
261
+ - name: "🚀 Step 4: Publish to NPM Registry"
262
+ run: |
263
+ echo "🚀 === PASO 4: PUBLICANDO EN NPM REGISTRY ==="
264
+ if [ "${{ needs.ai-version-generation.outputs.is_prerelease }}" == "true" ]; then
265
+ echo "📦 Publishing prerelease to NPM with tag: ${{ needs.ai-version-generation.outputs.release_channel }}"
266
+ npm publish --access public --tag ${{ needs.ai-version-generation.outputs.release_channel }}
267
+ else
268
+ echo "📦 Publishing stable release to NPM"
269
+ npm publish --access public
270
+ fi
271
+ echo "✅ Publicación en NPM completada"
272
+ env:
273
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
274
+
275
+ # ===== STEP 4: GITHUB PACKAGES PUBLISHING =====
276
+ publish-github:
277
+ runs-on: ubuntu-latest
278
+ needs: [ai-version-generation, build-and-prepare]
279
+ if: needs.ai-version-generation.outputs.should_skip != 'true' && github.event_name == 'workflow_dispatch' && (github.event.inputs.target_registry == 'github' || github.event.inputs.target_registry == 'both')
280
+
281
+ steps:
282
+ - name: "📥 Checkout code"
283
+ uses: actions/checkout@v4
284
+ with:
285
+ ref: main
286
+
287
+ - name: "📦 Setup Node.js with GitHub registry"
288
+ uses: actions/setup-node@v4
289
+ with:
290
+ node-version: '20'
291
+ registry-url: 'https://npm.pkg.github.com'
292
+
293
+ - name: "📥 Download build artifacts"
294
+ uses: actions/download-artifact@v4
295
+ with:
296
+ name: build-artifacts-${{ needs.ai-version-generation.outputs.version }}
297
+ path: dist/
298
+
299
+ - name: "📦 Step 5: Publish to GitHub Packages"
300
+ run: |
301
+ echo "📦 === PASO 5: PUBLICANDO EN GITHUB PACKAGES ==="
302
+ if [ "${{ needs.ai-version-generation.outputs.is_prerelease }}" == "true" ]; then
303
+ echo "📦 Publishing prerelease to GitHub Packages with tag: ${{ needs.ai-version-generation.outputs.release_channel }}"
304
+ npm publish --access public --tag ${{ needs.ai-version-generation.outputs.release_channel }}
305
+ else
306
+ echo "📦 Publishing stable release to GitHub Packages"
307
+ npm publish --access public
308
+ fi
309
+ echo "✅ Publicación en GitHub Packages completada"
310
+ env:
311
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
312
+
313
+ # ===== STEP 5: GITHUB RELEASE WITH AI =====
314
+ create-github-release:
315
+ runs-on: ubuntu-latest
316
+ needs: [ai-version-generation, build-and-prepare, publish-npm, publish-github]
317
+ if: always() && needs.ai-version-generation.outputs.should_skip != 'true' && needs.build-and-prepare.result == 'success'
318
+
319
+ permissions:
320
+ contents: write
321
+
322
+ steps:
323
+ - name: "📥 Checkout code"
324
+ uses: actions/checkout@v4
325
+ with:
326
+ fetch-depth: 0
327
+ ref: main
328
+
329
+ - name: "📦 Setup Bun"
330
+ uses: oven-sh/setup-bun@v2
331
+ with:
332
+ bun-version: latest
333
+
334
+ - name: "🔧 Install dependencies"
335
+ run: bun install --frozen-lockfile
336
+
337
+ - name: "📥 Download build artifacts"
338
+ uses: actions/download-artifact@v4
339
+ with:
340
+ name: build-artifacts-${{ needs.ai-version-generation.outputs.version }}
341
+ path: dist/
342
+
343
+ - name: "🏷️ Create git tag"
344
+ run: |
345
+ echo "🏷️ Creando tag de git..."
346
+ git config user.name "github-actions[bot]"
347
+ git config user.email "github-actions[bot]@users.noreply.github.com"
348
+ git tag -a "${{ needs.ai-version-generation.outputs.tag }}" -m "Release ${{ needs.ai-version-generation.outputs.version }}"
349
+ git push origin --tags
350
+
351
+ - name: "🚀 Step 6: Create GitHub Release with AI"
352
+ run: |
353
+ echo "🚀 === PASO 6: CREANDO GITHUB RELEASE CON AI ==="
354
+ bun project-utils/github-release-manager.ts --auto-approve
355
+ echo "✅ GitHub Release creado exitosamente"
356
+ env:
357
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
358
+
359
+ # ===== RELEASE SUMMARY =====
360
+ release-summary:
361
+ runs-on: ubuntu-latest
362
+ needs: [ai-version-generation, build-and-prepare, publish-npm, publish-github, create-github-release]
363
+ if: always() && needs.ai-version-generation.outputs.should_skip != 'true'
364
+
365
+ steps:
366
+ - name: "📊 Comprehensive Release Summary"
367
+ run: |
368
+ VERSION="${{ needs.ai-version-generation.outputs.version }}"
369
+ TAG="${{ needs.ai-version-generation.outputs.tag }}"
370
+ CHANNEL="${{ needs.ai-version-generation.outputs.release_channel }}"
371
+ IS_PRERELEASE="${{ needs.ai-version-generation.outputs.is_prerelease }}"
372
+
373
+ echo "## 🎉 Full Release Pipeline Complete!" >> $GITHUB_STEP_SUMMARY
374
+ echo "- **Version**: $VERSION" >> $GITHUB_STEP_SUMMARY
375
+ echo "- **Channel**: $CHANNEL" >> $GITHUB_STEP_SUMMARY
376
+ echo "- **Prerelease**: $IS_PRERELEASE" >> $GITHUB_STEP_SUMMARY
377
+ echo "" >> $GITHUB_STEP_SUMMARY
378
+
379
+ echo "### 📊 Pipeline Steps Results" >> $GITHUB_STEP_SUMMARY
380
+ echo "1. **AI Version Generation**: ✅ $VERSION" >> $GITHUB_STEP_SUMMARY
381
+ echo "2. **Build & Prepare**: ${{ needs.build-and-prepare.result }}" >> $GITHUB_STEP_SUMMARY
382
+ echo "3. **NPM Publishing**: ${{ needs.publish-npm.result }}" >> $GITHUB_STEP_SUMMARY
383
+ echo "4. **GitHub Packages**: ${{ needs.publish-github.result }}" >> $GITHUB_STEP_SUMMARY
384
+ echo "5. **GitHub Release**: ${{ needs.create-github-release.result }}" >> $GITHUB_STEP_SUMMARY
385
+ echo "" >> $GITHUB_STEP_SUMMARY
386
+
387
+ echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
388
+ if [ "${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && (github.event.inputs.target_registry == 'npm' || github.event.inputs.target_registry == 'both')) }}" == "true" ]; then
389
+ echo "- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
390
+ fi
391
+ if [ "${{ github.event_name == 'workflow_dispatch' && (github.event.inputs.target_registry == 'github' || github.event.inputs.target_registry == 'both') }}" == "true" ]; then
392
+ echo "- **GitHub Packages**: https://github.com/MKS2508/advanced-logger/packages/" >> $GITHUB_STEP_SUMMARY
393
+ fi
394
+ echo "- **GitHub Release**: https://github.com/MKS2508/advanced-logger/releases/tag/$TAG" >> $GITHUB_STEP_SUMMARY
395
+ echo "" >> $GITHUB_STEP_SUMMARY
396
+
397
+ echo "### 📦 Installation" >> $GITHUB_STEP_SUMMARY
398
+ echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
399
+ if [ "$IS_PRERELEASE" == "true" ]; then
400
+ echo "npm install @mks2508/better-logger@$CHANNEL" >> $GITHUB_STEP_SUMMARY
401
+ else
402
+ echo "npm install @mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
403
+ fi
404
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
@@ -105,109 +105,6 @@ jobs:
105
105
  path: test-results/
106
106
  retention-days: 30
107
107
 
108
- # ===== NPM PUBLISH =====
109
- publish:
110
- runs-on: ubuntu-latest
111
- needs: [build-and-test, visual-tests]
112
- if: startsWith(github.ref, 'refs/tags/v')
113
- permissions:
114
- contents: read
115
- packages: write
116
- id-token: write
117
-
118
- steps:
119
- - name: 📥 Checkout code
120
- uses: actions/checkout@v4
121
-
122
- - name: 📦 Setup Node.js
123
- uses: actions/setup-node@v4
124
- with:
125
- node-version: ${{ env.NODE_VERSION }}
126
- cache: 'npm'
127
- registry-url: ${{ env.REGISTRY_URL }}
128
-
129
- - name: 🔧 Install dependencies
130
- run: npm run ci:install
131
-
132
- - name: 📥 Download build artifacts
133
- uses: actions/download-artifact@v4
134
- with:
135
- name: dist-files
136
- path: dist/
137
-
138
- - name: 🚀 Publish to NPM Registry
139
- run: npm run ci:publish
140
- env:
141
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
142
-
143
- - name: 📦 Setup GitHub Packages Registry
144
- run: |
145
- echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc
146
- echo "@mks2508:registry=https://npm.pkg.github.com" >> ~/.npmrc
147
-
148
- - name: 📦 Publish to GitHub Packages
149
- run: npm publish --registry=https://npm.pkg.github.com --access=public --ignore-scripts
150
-
151
- - name: 📝 Extract release notes
152
- id: extract_release
153
- run: |
154
- VERSION=${GITHUB_REF#refs/tags/v}
155
- echo "version=$VERSION" >> $GITHUB_OUTPUT
156
- echo "tag_name=v$VERSION" >> $GITHUB_OUTPUT
157
-
158
- # ===== GITHUB RELEASE =====
159
- github-release:
160
- runs-on: ubuntu-latest
161
- needs: publish
162
- if: startsWith(github.ref, 'refs/tags/v')
163
-
164
- steps:
165
- - name: 📥 Checkout code
166
- uses: actions/checkout@v4
167
-
168
- - name: 📥 Download build artifacts
169
- uses: actions/download-artifact@v4
170
- with:
171
- name: dist-files
172
- path: dist/
173
-
174
- - name: 📦 Create release archive
175
- run: |
176
- tar -czf better-logger-dist.tar.gz dist/
177
- zip -r better-logger-dist.zip dist/
178
-
179
- - name: 🏷️ Create GitHub Release
180
- uses: softprops/action-gh-release@v1
181
- with:
182
- name: Better Logger ${{ github.ref_name }}
183
- tag_name: ${{ github.ref_name }}
184
- body: |
185
- ## 🚀 Better Logger ${{ github.ref_name }}
186
-
187
- ### 📦 Installation
188
- ```bash
189
- npm install @mks2508/better-logger@${{ github.ref_name }}
190
- ```
191
-
192
- ### 📊 Bundle Sizes
193
- - **Full library**: ~64KB (13KB gzipped)
194
- - **Core module**: ~6KB (2KB gzipped)
195
- - **Styling module**: ~26KB (5KB gzipped)
196
- - **Exports module**: ~12KB (3KB gzipped)
197
-
198
- ### 🔗 Links
199
- - [📚 Documentation](https://mks2508.github.io/advanced-logger/)
200
- - [🧩 Examples](https://github.com/MKS2508/advanced-logger/tree/main/examples)
201
- - [📋 Changelog](https://github.com/MKS2508/advanced-logger/blob/main/CHANGELOG.md)
202
-
203
- ### 📁 Assets
204
- - `better-logger-dist.tar.gz` - Distribution files (tar.gz)
205
- - `better-logger-dist.zip` - Distribution files (zip)
206
- files: |
207
- better-logger-dist.tar.gz
208
- better-logger-dist.zip
209
- env:
210
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
211
108
 
212
109
  # ===== DEPLOY GITHUB PAGES =====
213
110
  deploy-docs:
@@ -243,13 +140,18 @@ jobs:
243
140
  name: dist-files
244
141
  path: dist/
245
142
 
246
- - name: 🏗️ Build documentation site
143
+ - name: 🏗️ Setup site structure
247
144
  run: |
248
- mkdir -p docs-site
249
- cp demo.html docs-site/index.html
250
- cp -r dist/ docs-site/dist/
251
- cp -r docs/ docs-site/docs/
252
- cp README.md docs-site/
145
+ mkdir -p _site/docs
146
+ # Copy demo as root
147
+ cp demo.html _site/index.html
148
+ cp -r dist/ _site/dist/
149
+
150
+ - name: 📤 Build Jekyll documentation
151
+ uses: actions/jekyll-build-pages@v1
152
+ with:
153
+ source: ./docs
154
+ destination: ./_site/docs
253
155
 
254
156
  - name: 📤 Setup Pages
255
157
  uses: actions/configure-pages@v4
@@ -257,7 +159,7 @@ jobs:
257
159
  - name: 📤 Upload to Pages
258
160
  uses: actions/upload-pages-artifact@v3
259
161
  with:
260
- path: docs-site/
162
+ path: ./_site
261
163
 
262
164
  - name: 🚀 Deploy to GitHub Pages
263
165
  id: deployment