@mks2508/better-logger 0.0.2-alpha.0 → 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 (230) 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 +14 -100
  6. package/.github/workflows-backup/nightly.yml +196 -0
  7. package/.github/workflows-backup/release-optimized.yml +373 -0
  8. package/.github/{workflows → workflows-backup}/release.yml +22 -1
  9. package/.release-notes-0.2.0.md +129 -0
  10. package/CHANGELOG.json +658 -0
  11. package/README.md +110 -512
  12. package/demo.html +9 -2
  13. package/dist/Logger.d.ts +176 -0
  14. package/dist/Logger.d.ts.map +1 -0
  15. package/dist/Logger.js +498 -0
  16. package/dist/chunks/{Logger-BrFKFZcD.js → Logger-CbCUS5pQ.js} +987 -5
  17. package/dist/chunks/Logger-CbCUS5pQ.js.map +1 -0
  18. package/dist/chunks/Logger-PCfgYKTP.js +2 -0
  19. package/dist/chunks/Logger-PCfgYKTP.js.map +1 -0
  20. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  21. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  22. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  23. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  24. package/dist/chunks/StyleBuilder-BoJTmskd.js +361 -0
  25. package/dist/chunks/StyleBuilder-BoJTmskd.js.map +1 -0
  26. package/dist/chunks/StyleBuilder-LPLzsoHY.js +4 -0
  27. package/dist/chunks/StyleBuilder-LPLzsoHY.js.map +1 -0
  28. package/dist/cli/CommandProcessor.d.ts +40 -0
  29. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  30. package/dist/cli/CommandProcessor.js +57 -0
  31. package/dist/cli/commands/ConfigCommand.d.ts +17 -0
  32. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  33. package/dist/cli/commands/ConfigCommand.js +88 -0
  34. package/dist/cli/commands/ExportCommand.d.ts +51 -0
  35. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  36. package/dist/cli/commands/ExportCommand.js +243 -0
  37. package/dist/cli/commands/StatusCommand.d.ts +33 -0
  38. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  39. package/dist/cli/commands/StatusCommand.js +93 -0
  40. package/dist/cli/commands/ThemeCommand.d.ts +33 -0
  41. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  42. package/dist/cli/commands/ThemeCommand.js +79 -0
  43. package/dist/cli/help.d.ts +15 -0
  44. package/dist/cli/help.d.ts.map +1 -0
  45. package/dist/cli/help.js +118 -0
  46. package/dist/cli/index.d.ts +15 -0
  47. package/dist/cli/index.d.ts.map +1 -0
  48. package/dist/cli/index.js +40 -0
  49. package/dist/constants.d.ts +91 -0
  50. package/dist/constants.d.ts.map +1 -0
  51. package/dist/constants.js +80 -0
  52. package/dist/core.cjs +1 -1
  53. package/dist/core.cjs.map +1 -1
  54. package/dist/core.d.ts +130 -0
  55. package/dist/core.d.ts.map +1 -0
  56. package/dist/core.js +258 -242
  57. package/dist/core.js.map +1 -1
  58. package/dist/example.d.ts +18 -0
  59. package/dist/example.d.ts.map +1 -0
  60. package/dist/example.js +154 -0
  61. package/dist/exports-module.d.ts +203 -0
  62. package/dist/exports-module.d.ts.map +1 -0
  63. package/dist/exports-module.js +260 -0
  64. package/dist/exports.cjs +1 -1
  65. package/dist/exports.cjs.map +1 -1
  66. package/dist/exports.js +2 -2
  67. package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
  68. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  69. package/dist/handlers/AnalyticsLogHandler.js +19 -0
  70. package/dist/handlers/ExportLogHandler.d.ts +103 -0
  71. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  72. package/dist/handlers/ExportLogHandler.js +516 -0
  73. package/dist/handlers/FileLogHandler.d.ts +13 -0
  74. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  75. package/dist/handlers/FileLogHandler.js +24 -0
  76. package/dist/handlers/RemoteLogHandler.d.ts +14 -0
  77. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  78. package/dist/handlers/RemoteLogHandler.js +37 -0
  79. package/dist/handlers/index.d.ts +8 -0
  80. package/dist/handlers/index.d.ts.map +1 -0
  81. package/dist/handlers/index.js +7 -0
  82. package/dist/index.cjs +1 -1
  83. package/dist/index.cjs.map +1 -1
  84. package/dist/index.d.ts +86 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +89 -103
  87. package/dist/main.d.ts +2 -0
  88. package/dist/main.d.ts.map +1 -0
  89. package/dist/main.js +139 -0
  90. package/dist/styling/StyleBuilder.d.ts +132 -0
  91. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  92. package/dist/styling/StyleBuilder.js +268 -0
  93. package/dist/styling/banners.d.ts +45 -0
  94. package/dist/styling/banners.d.ts.map +1 -0
  95. package/dist/styling/banners.js +155 -0
  96. package/dist/styling/index.d.ts +7 -0
  97. package/dist/styling/index.d.ts.map +1 -0
  98. package/dist/styling/index.js +6 -0
  99. package/dist/styling/themes.d.ts +10 -0
  100. package/dist/styling/themes.d.ts.map +1 -0
  101. package/dist/styling/themes.js +231 -0
  102. package/dist/styling-module.d.ts +185 -0
  103. package/dist/styling-module.d.ts.map +1 -0
  104. package/dist/styling-module.js +199 -0
  105. package/dist/styling.cjs +1 -1
  106. package/dist/styling.cjs.map +1 -1
  107. package/dist/styling.js +4 -4
  108. package/dist/types/Logger.d.ts +172 -0
  109. package/dist/types/Logger.d.ts.map +1 -0
  110. package/dist/types/cli/CommandProcessor.d.ts +37 -0
  111. package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
  112. package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
  113. package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
  114. package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
  115. package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
  116. package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
  117. package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
  118. package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
  119. package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
  120. package/dist/types/cli/help.d.ts +12 -0
  121. package/dist/types/cli/help.d.ts.map +1 -0
  122. package/dist/types/cli/index.d.ts +15 -0
  123. package/dist/types/cli/index.d.ts.map +1 -0
  124. package/dist/types/constants.d.ts +88 -0
  125. package/dist/types/constants.d.ts.map +1 -0
  126. package/dist/types/core.d.ts +71 -211
  127. package/dist/types/core.d.ts.map +1 -0
  128. package/dist/types/core.js +13 -0
  129. package/dist/types/example.d.ts +18 -0
  130. package/dist/types/example.d.ts.map +1 -0
  131. package/dist/types/exports-module.d.ts +196 -0
  132. package/dist/types/exports-module.d.ts.map +1 -0
  133. package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
  134. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  135. package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
  136. package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
  137. package/dist/types/handlers/FileLogHandler.d.ts +10 -0
  138. package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
  139. package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
  140. package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
  141. package/dist/types/handlers/index.d.ts +8 -0
  142. package/dist/types/handlers/index.d.ts.map +1 -0
  143. package/dist/types/handlers.d.ts +88 -0
  144. package/dist/types/handlers.d.ts.map +1 -0
  145. package/dist/types/handlers.js +4 -0
  146. package/dist/types/index.d.ts +7 -675
  147. package/dist/types/index.d.ts.map +1 -0
  148. package/dist/types/index.js +4 -0
  149. package/dist/types/main.d.ts +2 -0
  150. package/dist/types/main.d.ts.map +1 -0
  151. package/dist/types/styling/StyleBuilder.d.ts +132 -0
  152. package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
  153. package/dist/types/styling/banners.d.ts +42 -0
  154. package/dist/types/styling/banners.d.ts.map +1 -0
  155. package/dist/types/styling/index.d.ts +7 -0
  156. package/dist/types/styling/index.d.ts.map +1 -0
  157. package/dist/types/styling/themes.d.ts +7 -0
  158. package/dist/types/styling/themes.d.ts.map +1 -0
  159. package/dist/types/styling-module.d.ts +178 -0
  160. package/dist/types/styling-module.d.ts.map +1 -0
  161. package/dist/types/types/core.d.ts +71 -0
  162. package/dist/types/types/core.d.ts.map +1 -0
  163. package/dist/types/types/handlers.d.ts +85 -0
  164. package/dist/types/types/handlers.d.ts.map +1 -0
  165. package/dist/types/types/index.d.ts +7 -0
  166. package/dist/types/types/index.d.ts.map +1 -0
  167. package/dist/types/utils/index.d.ts +7 -0
  168. package/dist/types/utils/index.d.ts.map +1 -0
  169. package/dist/types/utils/output.d.ts +29 -0
  170. package/dist/types/utils/output.d.ts.map +1 -0
  171. package/dist/types/utils/stackTrace.d.ts +6 -0
  172. package/dist/types/utils/stackTrace.d.ts.map +1 -0
  173. package/dist/types/utils/timestamps.d.ts +20 -0
  174. package/dist/types/utils/timestamps.d.ts.map +1 -0
  175. package/dist/utils/index.d.ts +7 -0
  176. package/dist/utils/index.d.ts.map +1 -0
  177. package/dist/utils/index.js +6 -0
  178. package/dist/utils/output.d.ts +32 -0
  179. package/dist/utils/output.d.ts.map +1 -0
  180. package/dist/utils/output.js +97 -0
  181. package/dist/utils/stackTrace.d.ts +9 -0
  182. package/dist/utils/stackTrace.d.ts.map +1 -0
  183. package/dist/utils/stackTrace.js +81 -0
  184. package/dist/utils/timestamps.d.ts +20 -0
  185. package/dist/utils/timestamps.d.ts.map +1 -0
  186. package/dist/utils/timestamps.js +71 -0
  187. package/docs/API.md +607 -0
  188. package/docs/DEVELOPMENT.md +731 -0
  189. package/docs/_config.yml +36 -0
  190. package/docs/index.md +179 -0
  191. package/examples/README.md +208 -0
  192. package/examples/basic-logging.js +75 -0
  193. package/examples/data-export.js +234 -0
  194. package/examples/package.json +16 -0
  195. package/examples/performance-timing.js +170 -0
  196. package/examples/styling-themes.js +207 -0
  197. package/package.json +32 -19
  198. package/packages/core/package.json +35 -0
  199. package/packages/exports/package.json +41 -0
  200. package/packages/styling/package.json +41 -0
  201. package/project-utils/README.md +172 -0
  202. package/project-utils/auto-release-gemini.ts +1193 -0
  203. package/project-utils/commit-generator.ts +1000 -0
  204. package/project-utils/commit-ui.ts +246 -0
  205. package/project-utils/git-utils.ts +199 -0
  206. package/project-utils/github-release-manager.ts +466 -0
  207. package/project-utils/prompt-templates.js +345 -0
  208. package/project-utils/prompt-templates.ts +422 -0
  209. package/project-utils/version-manager.ts +1078 -0
  210. package/src/Logger.ts +2 -1
  211. package/src/handlers/ExportLogHandler.ts +141 -0
  212. package/vite.config.ts +152 -50
  213. package/.claude/settings.local.json +0 -16
  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
@@ -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
@@ -87,7 +87,7 @@ jobs:
87
87
  run: npx playwright install --with-deps chromium
88
88
 
89
89
  - name: 🖼️ Run visual tests
90
- run: npm run ci:test:visual
90
+ run: npm run test:visual
91
91
 
92
92
  - name: 📤 Upload test results
93
93
  uses: actions/upload-artifact@v4
@@ -105,97 +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
-
114
- steps:
115
- - name: 📥 Checkout code
116
- uses: actions/checkout@v4
117
-
118
- - name: 📦 Setup Node.js
119
- uses: actions/setup-node@v4
120
- with:
121
- node-version: ${{ env.NODE_VERSION }}
122
- cache: 'npm'
123
- registry-url: ${{ env.REGISTRY_URL }}
124
-
125
- - name: 🔧 Install dependencies
126
- run: npm run ci:install
127
-
128
- - name: 📥 Download build artifacts
129
- uses: actions/download-artifact@v4
130
- with:
131
- name: dist-files
132
- path: dist/
133
-
134
- - name: 🚀 Publish to NPM
135
- run: npm run ci:publish
136
- env:
137
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
138
-
139
- - name: 📝 Extract release notes
140
- id: extract_release
141
- run: |
142
- VERSION=${GITHUB_REF#refs/tags/v}
143
- echo "version=$VERSION" >> $GITHUB_OUTPUT
144
- echo "tag_name=v$VERSION" >> $GITHUB_OUTPUT
145
-
146
- # ===== GITHUB RELEASE =====
147
- github-release:
148
- runs-on: ubuntu-latest
149
- needs: publish
150
- if: startsWith(github.ref, 'refs/tags/v')
151
-
152
- steps:
153
- - name: 📥 Checkout code
154
- uses: actions/checkout@v4
155
-
156
- - name: 📥 Download build artifacts
157
- uses: actions/download-artifact@v4
158
- with:
159
- name: dist-files
160
- path: dist/
161
-
162
- - name: 📦 Create release archive
163
- run: |
164
- tar -czf better-logger-dist.tar.gz dist/
165
- zip -r better-logger-dist.zip dist/
166
-
167
- - name: 🏷️ Create GitHub Release
168
- uses: softprops/action-gh-release@v1
169
- with:
170
- name: Better Logger ${{ github.ref_name }}
171
- tag_name: ${{ github.ref_name }}
172
- body: |
173
- ## 🚀 Better Logger ${{ github.ref_name }}
174
-
175
- ### 📦 Installation
176
- ```bash
177
- npm install @mks2508/better-logger@${{ github.ref_name }}
178
- ```
179
-
180
- ### 📊 Bundle Sizes
181
- - **Full library**: ~64KB (13KB gzipped)
182
- - **Core module**: ~6KB (2KB gzipped)
183
- - **Styling module**: ~26KB (5KB gzipped)
184
- - **Exports module**: ~12KB (3KB gzipped)
185
-
186
- ### 🔗 Links
187
- - [📚 Documentation](https://mks2508.github.io/advanced-logger/)
188
- - [🧩 Examples](https://github.com/MKS2508/advanced-logger/tree/main/examples)
189
- - [📋 Changelog](https://github.com/MKS2508/advanced-logger/blob/main/CHANGELOG.md)
190
-
191
- ### 📁 Assets
192
- - `better-logger-dist.tar.gz` - Distribution files (tar.gz)
193
- - `better-logger-dist.zip` - Distribution files (zip)
194
- files: |
195
- better-logger-dist.tar.gz
196
- better-logger-dist.zip
197
- env:
198
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
199
108
 
200
109
  # ===== DEPLOY GITHUB PAGES =====
201
110
  deploy-docs:
@@ -231,13 +140,18 @@ jobs:
231
140
  name: dist-files
232
141
  path: dist/
233
142
 
234
- - name: 🏗️ Build documentation site
143
+ - name: 🏗️ Setup site structure
235
144
  run: |
236
- mkdir -p docs-site
237
- cp demo.html docs-site/index.html
238
- cp -r dist/ docs-site/dist/
239
- cp -r docs/ docs-site/docs/
240
- 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
241
155
 
242
156
  - name: 📤 Setup Pages
243
157
  uses: actions/configure-pages@v4
@@ -245,7 +159,7 @@ jobs:
245
159
  - name: 📤 Upload to Pages
246
160
  uses: actions/upload-pages-artifact@v3
247
161
  with:
248
- path: docs-site/
162
+ path: ./_site
249
163
 
250
164
  - name: 🚀 Deploy to GitHub Pages
251
165
  id: deployment
@@ -296,7 +210,7 @@ jobs:
296
210
  path: dist/
297
211
 
298
212
  - name: ⚡ Performance benchmarks
299
- run: npm run ci:test:performance
213
+ run: npm run test:performance
300
214
 
301
215
  - name: 📊 Bundle analysis
302
216
  run: |