@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,196 @@
1
+ name: Nightly Builds
2
+
3
+ on:
4
+ schedule:
5
+ # Ejecutar cada día a las 3:00 AM UTC
6
+ - cron: '0 3 * * *'
7
+ workflow_dispatch:
8
+ inputs:
9
+ force_build:
10
+ description: 'Forzar build aunque no haya cambios'
11
+ required: false
12
+ default: false
13
+ type: boolean
14
+
15
+ env:
16
+ NODE_VERSION: '20'
17
+ REGISTRY_URL: 'https://registry.npmjs.org'
18
+
19
+ jobs:
20
+ check-changes:
21
+ runs-on: ubuntu-latest
22
+ outputs:
23
+ has_changes: ${{ steps.changes.outputs.has_changes }}
24
+ last_commit: ${{ steps.changes.outputs.last_commit }}
25
+ commit_count: ${{ steps.changes.outputs.commit_count }}
26
+
27
+ steps:
28
+ - name: 📥 Checkout code
29
+ uses: actions/checkout@v4
30
+ with:
31
+ fetch-depth: 0
32
+
33
+ - name: 🔍 Check for changes since last nightly
34
+ id: changes
35
+ run: |
36
+ # Buscar último tag nightly
37
+ LAST_NIGHTLY=$(git tag -l "nightly-*" | sort -V | tail -1 || echo "")
38
+
39
+ if [ -z "$LAST_NIGHTLY" ]; then
40
+ # No hay nightlies previos, verificar desde hace 24 horas
41
+ SINCE_DATE=$(date -d '24 hours ago' --iso-8601)
42
+ COMMITS_COUNT=$(git log --since="$SINCE_DATE" --oneline | wc -l)
43
+ else
44
+ # Verificar desde último nightly
45
+ COMMITS_COUNT=$(git log $LAST_NIGHTLY..HEAD --oneline | wc -l)
46
+ fi
47
+
48
+ LAST_COMMIT=$(git rev-parse --short HEAD)
49
+
50
+ echo "commit_count=$COMMITS_COUNT" >> $GITHUB_OUTPUT
51
+ echo "last_commit=$LAST_COMMIT" >> $GITHUB_OUTPUT
52
+
53
+ if [ "$COMMITS_COUNT" -gt 0 ] || [ "${{ inputs.force_build }}" == "true" ]; then
54
+ echo "has_changes=true" >> $GITHUB_OUTPUT
55
+ echo "✅ Cambios detectados: $COMMITS_COUNT commits"
56
+ else
57
+ echo "has_changes=false" >> $GITHUB_OUTPUT
58
+ echo "ℹ️ No hay cambios desde último nightly"
59
+ fi
60
+
61
+ nightly-build:
62
+ runs-on: ubuntu-latest
63
+ needs: check-changes
64
+ if: needs.check-changes.outputs.has_changes == 'true'
65
+
66
+ permissions:
67
+ contents: write
68
+ packages: write
69
+ id-token: write
70
+
71
+ steps:
72
+ - name: 📥 Checkout code
73
+ uses: actions/checkout@v4
74
+ with:
75
+ fetch-depth: 0
76
+ token: ${{ secrets.GITHUB_TOKEN }}
77
+
78
+ - name: 📦 Setup Node.js
79
+ uses: actions/setup-node@v4
80
+ with:
81
+ node-version: ${{ env.NODE_VERSION }}
82
+ cache: 'npm'
83
+ registry-url: ${{ env.REGISTRY_URL }}
84
+
85
+ - name: 🔧 Install dependencies
86
+ run: npm ci
87
+
88
+ - name: 🏗️ Build library
89
+ run: npm run build
90
+
91
+ - name: 🧪 Run tests
92
+ run: |
93
+ npm run type-check
94
+ npm run test
95
+ npm run size-limit
96
+
97
+ - name: 🏷️ Generate nightly version
98
+ id: version
99
+ run: |
100
+ # Generar versión nightly usando commit y fecha
101
+ DATE=$(date +%Y%m%d)
102
+ SHORT_SHA="${{ needs.check-changes.outputs.last_commit }}"
103
+ BASE_VERSION=$(node -p "require('./package.json').version")
104
+
105
+ # Remover cualquier sufijo existente del base version
106
+ CLEAN_VERSION=$(echo $BASE_VERSION | sed 's/-.*//')
107
+ NIGHTLY_VERSION="${CLEAN_VERSION}-nightly.${DATE}.${SHORT_SHA}"
108
+
109
+ echo "version=$NIGHTLY_VERSION" >> $GITHUB_OUTPUT
110
+ echo "tag=nightly-$DATE-$SHORT_SHA" >> $GITHUB_OUTPUT
111
+ echo "🌙 Nightly version: $NIGHTLY_VERSION"
112
+
113
+ - name: 📝 Update package.json for nightly
114
+ run: |
115
+ npm version ${{ steps.version.outputs.version }} --no-git-tag-version
116
+
117
+ - name: 📦 Create nightly archives
118
+ run: |
119
+ mkdir -p nightly-dist
120
+
121
+ # Crear archivos de distribución nightly
122
+ tar -czf nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.tar.gz dist/ README.md package.json
123
+ zip -r nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.zip dist/ README.md package.json
124
+
125
+ - name: 🚀 Publish nightly to NPM
126
+ run: |
127
+ npm publish --tag nightly --access public
128
+ env:
129
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
130
+
131
+ - name: 📦 Publish nightly to GitHub Packages
132
+ run: |
133
+ echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc
134
+ echo "@mks2508:registry=https://npm.pkg.github.com" >> ~/.npmrc
135
+ npm publish --registry=https://npm.pkg.github.com --tag nightly --access public
136
+
137
+ - name: 🏷️ Create nightly tag
138
+ run: |
139
+ git config user.name "github-actions[bot]"
140
+ git config user.email "github-actions[bot]@users.noreply.github.com"
141
+ git tag -a "${{ steps.version.outputs.tag }}" -m "Nightly build ${{ steps.version.outputs.version }}"
142
+ git push origin "${{ steps.version.outputs.tag }}"
143
+
144
+ - name: 🌙 Create nightly release
145
+ uses: softprops/action-gh-release@v1
146
+ with:
147
+ tag_name: ${{ steps.version.outputs.tag }}
148
+ name: "Nightly Build ${{ steps.version.outputs.version }}"
149
+ body: |
150
+ 🌙 **Nightly Build** - Experimental version for testing
151
+
152
+ **⚠️ This is a development build - not recommended for production use**
153
+
154
+ ## 📋 Changes since last nightly
155
+ ${{ needs.check-changes.outputs.commit_count }} commits included in this build.
156
+
157
+ ## 📦 Installation
158
+ ```bash
159
+ npm install @mks2508/better-logger@nightly
160
+ ```
161
+
162
+ ## 🔗 Links
163
+ - **Commit**: https://github.com/MKS2508/advanced-logger/commit/${{ needs.check-changes.outputs.last_commit }}
164
+ - **NPM**: https://www.npmjs.com/package/@mks2508/better-logger/v/${{ steps.version.outputs.version }}
165
+ draft: false
166
+ prerelease: true
167
+ files: |
168
+ nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.tar.gz
169
+ nightly-dist/better-logger-nightly-${{ steps.version.outputs.tag }}.zip
170
+ env:
171
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
172
+
173
+ - name: 📊 Nightly build summary
174
+ run: |
175
+ echo "## 🌙 Nightly Build Complete!" >> $GITHUB_STEP_SUMMARY
176
+ echo "- **Version**: ${{ steps.version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
177
+ echo "- **Commits**: ${{ needs.check-changes.outputs.commit_count }}" >> $GITHUB_STEP_SUMMARY
178
+ echo "- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger/v/${{ steps.version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
179
+ echo "- **GitHub**: https://github.com/MKS2508/advanced-logger/releases/tag/${{ steps.version.outputs.tag }}" >> $GITHUB_STEP_SUMMARY
180
+ echo "" >> $GITHUB_STEP_SUMMARY
181
+ echo "### 📦 Installation" >> $GITHUB_STEP_SUMMARY
182
+ echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
183
+ echo "npm install @mks2508/better-logger@nightly" >> $GITHUB_STEP_SUMMARY
184
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
185
+
186
+ no-changes:
187
+ runs-on: ubuntu-latest
188
+ needs: check-changes
189
+ if: needs.check-changes.outputs.has_changes == 'false'
190
+
191
+ steps:
192
+ - name: ℹ️ No changes detected
193
+ run: |
194
+ echo "## ℹ️ No Nightly Build Required" >> $GITHUB_STEP_SUMMARY
195
+ echo "No changes detected since last nightly build." >> $GITHUB_STEP_SUMMARY
196
+ echo "Use \`workflow_dispatch\` with \`force_build: true\` to force a build." >> $GITHUB_STEP_SUMMARY
@@ -0,0 +1,373 @@
1
+ name: Optimized Release Pipeline
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ release_type:
7
+ description: 'Tipo de release'
8
+ required: true
9
+ default: 'auto'
10
+ type: choice
11
+ options:
12
+ - auto
13
+ - patch
14
+ - minor
15
+ - major
16
+ - alpha
17
+ - beta
18
+ - stable
19
+ use_gemini:
20
+ description: 'Usar Gemini AI para versionado'
21
+ required: false
22
+ default: true
23
+ type: boolean
24
+ skip_tests:
25
+ description: 'Saltar tests (no recomendado)'
26
+ required: false
27
+ default: false
28
+ type: boolean
29
+ target_registry:
30
+ description: 'Registro objetivo'
31
+ required: false
32
+ default: 'both'
33
+ type: choice
34
+ options:
35
+ - npm
36
+ - github
37
+ - both
38
+
39
+ env:
40
+ NODE_VERSION: '20'
41
+
42
+ jobs:
43
+ # ===== VALIDATION & VERSIONING =====
44
+ prepare-release:
45
+ runs-on: ubuntu-latest
46
+
47
+ outputs:
48
+ version: ${{ steps.version.outputs.version }}
49
+ tag: ${{ steps.version.outputs.tag }}
50
+ is_prerelease: ${{ steps.version.outputs.is_prerelease }}
51
+ changelog: ${{ steps.version.outputs.changelog }}
52
+ release_channel: ${{ steps.version.outputs.release_channel }}
53
+
54
+ steps:
55
+ - name: 📥 Checkout code
56
+ uses: actions/checkout@v4
57
+ with:
58
+ fetch-depth: 0
59
+ token: ${{ secrets.GITHUB_TOKEN }}
60
+
61
+ - name: 📦 Setup Node.js
62
+ uses: actions/setup-node@v4
63
+ with:
64
+ node-version: ${{ env.NODE_VERSION }}
65
+ cache: 'npm'
66
+
67
+ - name: 🔧 Install dependencies
68
+ run: npm ci
69
+
70
+ - name: 🧪 Run tests (unless skipped)
71
+ if: ${{ !inputs.skip_tests }}
72
+ run: |
73
+ npm run type-check
74
+ npm run lint
75
+ npm run test
76
+ npm run build
77
+
78
+ - name: 🏷️ Generate version with project-utils
79
+ id: version
80
+ run: |
81
+ if [ "${{ inputs.use_gemini }}" == "true" ] && [ "${{ inputs.release_type }}" == "auto" ]; then
82
+ # Usar auto-release con Gemini para detección inteligente
83
+ echo "🤖 Usando Gemini AI para versionado automático..."
84
+ npm run version:auto
85
+ elif [ "${{ inputs.release_type }}" == "auto" ]; then
86
+ # Auto-detección sin Gemini
87
+ echo "🔍 Auto-detectando tipo de versión..."
88
+ npm run version:auto
89
+ else
90
+ # Tipo específico forzado
91
+ echo "🎯 Usando tipo de versión forzado: ${{ inputs.release_type }}"
92
+ case "${{ inputs.release_type }}" in
93
+ "patch") npm run version:patch ;;
94
+ "minor") npm run version:minor ;;
95
+ "major") npm run version:major ;;
96
+ "alpha") npm run version:alpha ;;
97
+ "beta") npm run version:beta ;;
98
+ "stable") npm run version:stable ;;
99
+ esac
100
+ fi
101
+
102
+ # Obtener nueva versión del package.json
103
+ NEW_VERSION=$(node -p "require('./package.json').version")
104
+ echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
105
+ echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
106
+
107
+ # Determinar si es prerelease y canal
108
+ if [[ "$NEW_VERSION" == *"alpha"* ]]; then
109
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
110
+ echo "release_channel=alpha" >> $GITHUB_OUTPUT
111
+ elif [[ "$NEW_VERSION" == *"beta"* ]]; then
112
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
113
+ echo "release_channel=beta" >> $GITHUB_OUTPUT
114
+ else
115
+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
116
+ echo "release_channel=latest" >> $GITHUB_OUTPUT
117
+ fi
118
+
119
+ echo "📦 Nueva versión: $NEW_VERSION"
120
+
121
+ - name: 📝 Generate changelog
122
+ id: changelog
123
+ run: |
124
+ # Usar project-utils para generar changelog si existe
125
+ if [ -f "project-utils/.temp/commit-proposal"*".md" ]; then
126
+ echo "📋 Usando changelog de project-utils..."
127
+ CHANGELOG=$(cat project-utils/.temp/commit-proposal*.md | head -n 20)
128
+ else
129
+ # Fallback a changelog tradicional
130
+ LAST_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "")
131
+ if [ -n "$LAST_TAG" ]; then
132
+ echo "📋 Generando changelog desde $LAST_TAG..."
133
+ CHANGELOG=$(git log $LAST_TAG..HEAD --pretty=format:"- %s (%h)")
134
+ else
135
+ echo "📋 Changelog de release inicial..."
136
+ CHANGELOG="- Initial release with complete Better Logger functionality"
137
+ fi
138
+ fi
139
+
140
+ # Guardar changelog en archivo para uso posterior
141
+ echo "$CHANGELOG" > RELEASE_CHANGELOG.md
142
+ echo "changelog=$(echo "$CHANGELOG" | base64 -w 0)" >> $GITHUB_OUTPUT
143
+
144
+ - name: 🏗️ Build optimized
145
+ run: |
146
+ npm run build
147
+
148
+ # Verificar que todos los archivos esperados existen
149
+ echo "📊 Verificando build outputs..."
150
+ ls -la dist/
151
+
152
+ # Guardar información de bundle sizes
153
+ echo "## 📦 Bundle Sizes" > BUNDLE_SIZES.md
154
+ echo "\`\`\`" >> BUNDLE_SIZES.md
155
+ ls -lh dist/*.js dist/*.cjs | grep -E '\.(js|cjs)$' >> BUNDLE_SIZES.md
156
+ echo "\`\`\`" >> BUNDLE_SIZES.md
157
+
158
+ - name: 📤 Upload build artifacts
159
+ uses: actions/upload-artifact@v4
160
+ with:
161
+ name: release-build-${{ steps.version.outputs.version }}
162
+ path: |
163
+ dist/
164
+ RELEASE_CHANGELOG.md
165
+ BUNDLE_SIZES.md
166
+ retention-days: 30
167
+
168
+ # ===== SMART PUBLISHING =====
169
+ publish-packages:
170
+ runs-on: ubuntu-latest
171
+ needs: prepare-release
172
+ if: ${{ inputs.target_registry == 'npm' || inputs.target_registry == 'both' }}
173
+
174
+ steps:
175
+ - name: 📥 Checkout code
176
+ uses: actions/checkout@v4
177
+
178
+ - name: 📦 Setup Node.js for NPM
179
+ uses: actions/setup-node@v4
180
+ with:
181
+ node-version: ${{ env.NODE_VERSION }}
182
+ cache: 'npm'
183
+ registry-url: 'https://registry.npmjs.org'
184
+
185
+ - name: 📥 Download build artifacts
186
+ uses: actions/download-artifact@v4
187
+ with:
188
+ name: release-build-${{ needs.prepare-release.outputs.version }}
189
+
190
+ - name: 🔄 Update package version
191
+ run: npm version ${{ needs.prepare-release.outputs.version }} --no-git-tag-version
192
+
193
+ - name: 🚀 Publish to NPM
194
+ run: |
195
+ if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
196
+ echo "📦 Publishing prerelease to NPM with tag: ${{ needs.prepare-release.outputs.release_channel }}"
197
+ npm publish --access public --tag ${{ needs.prepare-release.outputs.release_channel }}
198
+ else
199
+ echo "📦 Publishing stable release to NPM"
200
+ npm publish --access public
201
+ fi
202
+ env:
203
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
204
+
205
+ publish-github:
206
+ runs-on: ubuntu-latest
207
+ needs: prepare-release
208
+ if: ${{ inputs.target_registry == 'github' || inputs.target_registry == 'both' }}
209
+
210
+ steps:
211
+ - name: 📥 Checkout code
212
+ uses: actions/checkout@v4
213
+
214
+ - name: 📦 Setup Node.js for GitHub Packages
215
+ uses: actions/setup-node@v4
216
+ with:
217
+ node-version: ${{ env.NODE_VERSION }}
218
+ cache: 'npm'
219
+ registry-url: 'https://npm.pkg.github.com'
220
+
221
+ - name: 📥 Download build artifacts
222
+ uses: actions/download-artifact@v4
223
+ with:
224
+ name: release-build-${{ needs.prepare-release.outputs.version }}
225
+
226
+ - name: 🔄 Update package version
227
+ run: npm version ${{ needs.prepare-release.outputs.version }} --no-git-tag-version
228
+
229
+ - name: 📦 Publish to GitHub Packages
230
+ run: |
231
+ if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
232
+ echo "📦 Publishing prerelease to GitHub Packages with tag: ${{ needs.prepare-release.outputs.release_channel }}"
233
+ npm publish --access public --tag ${{ needs.prepare-release.outputs.release_channel }}
234
+ else
235
+ echo "📦 Publishing stable release to GitHub Packages"
236
+ npm publish --access public
237
+ fi
238
+ env:
239
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
240
+
241
+ # ===== GITHUB RELEASE =====
242
+ create-github-release:
243
+ runs-on: ubuntu-latest
244
+ needs: [prepare-release, publish-packages, publish-github]
245
+ if: always() && needs.prepare-release.result == 'success'
246
+
247
+ permissions:
248
+ contents: write
249
+ id-token: write
250
+
251
+ steps:
252
+ - name: 📥 Checkout code
253
+ uses: actions/checkout@v4
254
+ with:
255
+ fetch-depth: 0
256
+ token: ${{ secrets.GITHUB_TOKEN }}
257
+
258
+ - name: 📥 Download build artifacts
259
+ uses: actions/download-artifact@v4
260
+ with:
261
+ name: release-build-${{ needs.prepare-release.outputs.version }}
262
+
263
+ - name: 📦 Create release archives
264
+ run: |
265
+ VERSION=${{ needs.prepare-release.outputs.version }}
266
+
267
+ # Crear archivos de distribución
268
+ tar -czf better-logger-${VERSION}.tar.gz dist/ docs/ README.md package.json
269
+ zip -r better-logger-${VERSION}.zip dist/ docs/ README.md package.json
270
+
271
+ # Crear paquetes modulares
272
+ cd dist
273
+ tar -czf ../better-logger-core-${VERSION}.tar.gz core.* types/core.d.ts 2>/dev/null || true
274
+ tar -czf ../better-logger-styling-${VERSION}.tar.gz styling.* types/styling.d.ts 2>/dev/null || true
275
+ tar -czf ../better-logger-exports-${VERSION}.tar.gz exports.* types/exports.d.ts 2>/dev/null || true
276
+ cd ..
277
+
278
+ - name: 🏷️ Commit and tag
279
+ run: |
280
+ git config user.name "github-actions[bot]"
281
+ git config user.email "github-actions[bot]@users.noreply.github.com"
282
+ git add package.json
283
+ git commit -m "chore: release ${{ needs.prepare-release.outputs.version }}" || true
284
+ git tag -a "${{ needs.prepare-release.outputs.tag }}" -m "Release ${{ needs.prepare-release.outputs.version }}"
285
+ git push origin main --tags
286
+
287
+ - name: 📝 Prepare release notes
288
+ run: |
289
+ VERSION=${{ needs.prepare-release.outputs.version }}
290
+ CHANGELOG=$(echo "${{ needs.prepare-release.outputs.changelog }}" | base64 -d)
291
+
292
+ echo "# Better Logger ${VERSION}" > FINAL_RELEASE_NOTES.md
293
+ echo "" >> FINAL_RELEASE_NOTES.md
294
+
295
+ if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
296
+ echo "⚠️ **This is a pre-release version** - Not recommended for production use." >> FINAL_RELEASE_NOTES.md
297
+ echo "" >> FINAL_RELEASE_NOTES.md
298
+ fi
299
+
300
+ echo "## 🔄 Changes" >> FINAL_RELEASE_NOTES.md
301
+ echo "$CHANGELOG" >> FINAL_RELEASE_NOTES.md
302
+ echo "" >> FINAL_RELEASE_NOTES.md
303
+
304
+ cat BUNDLE_SIZES.md >> FINAL_RELEASE_NOTES.md
305
+ echo "" >> FINAL_RELEASE_NOTES.md
306
+
307
+ echo "## 📦 Installation" >> FINAL_RELEASE_NOTES.md
308
+ if [ "${{ needs.prepare-release.outputs.is_prerelease }}" == "true" ]; then
309
+ echo "\`\`\`bash" >> FINAL_RELEASE_NOTES.md
310
+ echo "npm install @mks2508/better-logger@${{ needs.prepare-release.outputs.release_channel }}" >> FINAL_RELEASE_NOTES.md
311
+ echo "\`\`\`" >> FINAL_RELEASE_NOTES.md
312
+ else
313
+ echo "\`\`\`bash" >> FINAL_RELEASE_NOTES.md
314
+ echo "npm install @mks2508/better-logger" >> FINAL_RELEASE_NOTES.md
315
+ echo "\`\`\`" >> FINAL_RELEASE_NOTES.md
316
+ fi
317
+
318
+ - name: 🚀 Create GitHub Release
319
+ uses: softprops/action-gh-release@v1
320
+ with:
321
+ tag_name: ${{ needs.prepare-release.outputs.tag }}
322
+ name: Better Logger ${{ needs.prepare-release.outputs.version }}
323
+ body_path: FINAL_RELEASE_NOTES.md
324
+ draft: false
325
+ prerelease: ${{ needs.prepare-release.outputs.is_prerelease == 'true' }}
326
+ files: |
327
+ better-logger-${{ needs.prepare-release.outputs.version }}.tar.gz
328
+ better-logger-${{ needs.prepare-release.outputs.version }}.zip
329
+ better-logger-core-${{ needs.prepare-release.outputs.version }}.tar.gz
330
+ better-logger-styling-${{ needs.prepare-release.outputs.version }}.tar.gz
331
+ better-logger-exports-${{ needs.prepare-release.outputs.version }}.tar.gz
332
+ env:
333
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
334
+
335
+ # ===== POST-RELEASE SUMMARY =====
336
+ release-summary:
337
+ runs-on: ubuntu-latest
338
+ needs: [prepare-release, publish-packages, publish-github, create-github-release]
339
+ if: always() && needs.prepare-release.result == 'success'
340
+
341
+ steps:
342
+ - name: 📊 Release Summary
343
+ run: |
344
+ VERSION="${{ needs.prepare-release.outputs.version }}"
345
+ TAG="${{ needs.prepare-release.outputs.tag }}"
346
+ CHANNEL="${{ needs.prepare-release.outputs.release_channel }}"
347
+ IS_PRERELEASE="${{ needs.prepare-release.outputs.is_prerelease }}"
348
+
349
+ echo "## 🎉 Release Complete!" >> $GITHUB_STEP_SUMMARY
350
+ echo "- **Version**: $VERSION" >> $GITHUB_STEP_SUMMARY
351
+ echo "- **Channel**: $CHANNEL" >> $GITHUB_STEP_SUMMARY
352
+ echo "- **Prerelease**: $IS_PRERELEASE" >> $GITHUB_STEP_SUMMARY
353
+ echo "" >> $GITHUB_STEP_SUMMARY
354
+
355
+ echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
356
+ if [ "${{ inputs.target_registry == 'npm' || inputs.target_registry == 'both' }}" ]; then
357
+ echo "- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
358
+ fi
359
+ if [ "${{ inputs.target_registry == 'github' || inputs.target_registry == 'both' }}" ]; then
360
+ echo "- **GitHub Packages**: https://github.com/MKS2508/advanced-logger/packages/" >> $GITHUB_STEP_SUMMARY
361
+ fi
362
+ echo "- **GitHub Release**: https://github.com/MKS2508/advanced-logger/releases/tag/$TAG" >> $GITHUB_STEP_SUMMARY
363
+ echo "- **Documentation**: https://mks2508.github.io/advanced-logger/" >> $GITHUB_STEP_SUMMARY
364
+ echo "" >> $GITHUB_STEP_SUMMARY
365
+
366
+ echo "### 📦 Installation" >> $GITHUB_STEP_SUMMARY
367
+ echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
368
+ if [ "$IS_PRERELEASE" == "true" ]; then
369
+ echo "npm install @mks2508/better-logger@$CHANNEL" >> $GITHUB_STEP_SUMMARY
370
+ else
371
+ echo "npm install @mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
372
+ fi
373
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
@@ -0,0 +1,129 @@
1
+ # Better Logger - 0.2.0
2
+
3
+ ## 📋 Resumen
4
+ Nuevas funcionalidades incluyendo feat(package): update to v4.0.0-alpha.1 pre-release version y 4 más
5
+
6
+ ## ✨ Nuevas Funcionalidades
7
+ - feat(package): update to v4.0.0-alpha.1 pre-release version
8
+ - feat(package): publish as @mks2508/better-logger@0.0.1
9
+ - Demo profesional interactivo con CDN imports
10
+ - Showcase completo de todas las funcionalidades del logger
11
+ - Ejemplos visuales de temas y animaciones CSS
12
+
13
+ ## 🐛 Correcciones
14
+ - fix(ci): correct script names in performance and visual test jobs
15
+ - ✅ CSS assets Jekyll cargando correctamente
16
+ - ✅ CORS error demo solucionado con jsDelivr
17
+ - ✅ Navegación funcionando entre demo y docs
18
+ - ✅ NPM registry configurado para package linking
19
+ - ✅ Preparado para release con token
20
+
21
+ ## 🚀 Mejoras
22
+ - 🎨 **Sistema de Banner Inteligente** - 5 tipos diferentes con auto-detección
23
+ - 🚀 **CLI Avanzado** - Comandos completos para configuración y demostración
24
+ - 🎯 **Detección Browser** - Optimización automática según capacidades
25
+ - 📱 **Soporte SVG** - Logos vectoriales con animaciones embebidas
26
+ - ✨ **CSS Animations** - Gradientes animados y efectos visuales
27
+ - 🌈 **Sistema de Temas** - 4 esquemas visuales con banners únicos
28
+ - 🔧 **Progressive Enhancement** - Fallbacks para máxima compatibilidad
29
+ - 🎪 **Modo Demo** - Demostración interactiva de todas las capacidades
30
+ - Chrome: Todas las features (SVG + animaciones + gradientes)
31
+ - Firefox: SVG y gradientes avanzados
32
+ - Safari: ASCII art y colores básicos
33
+ - Edge/Otros: Banner simple con estilos CSS
34
+ - Optimización de pipelines CI/CD con scripts npm predefinidos
35
+ - Consistencia en comandos de build y deploy
36
+ - Mejor organización de procesos de release
37
+ - Diseño responsive para la demo
38
+ - Efectos visuales modernos con CSS Grid y gradientes
39
+ - Navegación intuitiva por categorías de features
40
+ - 0.0.2-alpha.0
41
+ - Añadidos scripts placeholder para tests de performance y visuales
42
+ - Pipeline CI/CD ahora completa exitosamente durante desarrollo
43
+ - Preparación para implementación de sistema de testing comprehensivo
44
+ - Publicación dual automática a npmjs
45
+ - Configuración
46
+ - Pipeline de release completamente automatizado
47
+ - Corrección de permisos en workflows de GitHub Actions
48
+ - Autenticación dual para ambos registries NPM
49
+ - Scripts CI optimizados para publicación en paralelo
50
+ - Scope @mks2508 configurado para prevenir publicaciones accidentales
51
+ - Autenticación segura usando GITHUB_TOKEN y NPM_TOKEN
52
+ - chore: release v0.0.2-alpha.1
53
+ - Fixed publishing pipeline failures por hooks prepublishOnly
54
+ - Optimización de publish usando artifacts pre-generados
55
+ - chore: release v0.0.2-alpha.2
56
+ - Added bugs URL para better issue tracking
57
+ - Added homepage URL pointing to GitHub Pages demo
58
+ - Improved repository URL format for better GitHub integration
59
+ - 0.0.2-alpha.2
60
+ - ✅ Documentación completa en GitHub Pages con Jekyll
61
+ - ✅ API reference con todos los métodos, tipos e interfaces
62
+ - ✅ Development guide con casos de uso y patrones
63
+ - ✅ 4 ejemplos prácticos ejecutables (basic, performance, styling, export)
64
+ - ✅ Configuración Jekyll para navegación y SEO
65
+ - ✅ Estructura docs/ organizada sin duplicaciones
66
+ - ✅ Jekyll configurado correctamente desde /docs/
67
+ - ✅ Workflow GitHub Actions optimizado para Jekyll
68
+ - ✅ Demo accesible desde documentación
69
+ - ✅ Navegación completa API + Development + Demo
70
+ - ✅ Estructura GitHub docs estándar
71
+ - ✅ Demo en raíz (/) del sitio GitHub Pages
72
+ - ✅ Documentación Jekyll en /docs/ del sitio
73
+ - ✅ Navegación correcta entre demo y documentación
74
+ - ✅ Enlaces actualizados en toda la documentación
75
+ - ✅ Estructura GitHub Pages estándar optimizada
76
+ - 0.0.2
77
+ - ✅ GitHub Pages CSS assets funcionando
78
+ - ✅ Demo CORS error resuelto con jsDelivr
79
+ - ✅ NPM token configurado para auto-publish
80
+ - ✅ Package se vinculará automáticamente al repo
81
+ - ✅ Documentación completa accesible
82
+ - 0.0.3-alpha.0
83
+
84
+ ## 📦 Instalación
85
+
86
+
87
+ ```bash
88
+ npm install @mks2508/better-logger@0.2.0
89
+ ```
90
+
91
+ ## Uso
92
+
93
+ ```javascript
94
+ import { Logger } from '@mks2508/better-logger';
95
+
96
+ const logger = new Logger();
97
+ logger.info('¡Hola mundo!');
98
+ ```
99
+
100
+ ---
101
+
102
+ *Release generada automáticamente el 2025-08-29*
103
+
104
+ ## 📁 Archivos de la Release
105
+
106
+ - **styling.cjs.map** (0.0 MB)
107
+ - **types** (0.0 MB)
108
+ - **exports.js.map** (0.0 MB)
109
+ - **core.js** (0.0 MB)
110
+ - **styling.js** (0.0 MB)
111
+ - **styling.cjs** (0.0 MB)
112
+ - **exports.js** (0.0 MB)
113
+ - **index.js** (0.0 MB)
114
+ - **core.cjs** (0.0 MB)
115
+ - **core.js.map** (0.0 MB)
116
+ - **vite.svg** (0.0 MB)
117
+ - **chunks** (0.0 MB)
118
+ - **index.cjs.map** (0.0 MB)
119
+ - **exports.cjs.map** (0.0 MB)
120
+ - **index.cjs** (0.0 MB)
121
+ - **exports.cjs** (0.0 MB)
122
+ - **index.js.map** (0.0 MB)
123
+ - **styling.js.map** (0.0 MB)
124
+ - **core.cjs.map** (0.0 MB)
125
+
126
+ ---
127
+
128
+ 🏗️ **Plataforma objetivo**: Universal (Browser/Node.js)
129
+ 🗓️ **Fecha**: 2025-08-29