@mks2508/better-logger 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{Logger-Cbi1f10o.js → Logger-CKqzXDh3.js} +2 -2
- package/dist/chunks/{Logger-Cbi1f10o.js.map → Logger-CKqzXDh3.js.map} +1 -1
- package/dist/chunks/{Logger-BZ7B7OXE.js → Logger-D_vuKP4l.js} +2 -2
- package/dist/chunks/{Logger-BZ7B7OXE.js.map → Logger-D_vuKP4l.js.map} +1 -1
- package/dist/chunks/cli-module-B-njrTWb.js +2 -0
- package/dist/chunks/cli-module-B-njrTWb.js.map +1 -0
- package/dist/chunks/{cli-module-ClIJmaT8.js → cli-module-Cx7qotPY.js} +16 -9
- package/dist/chunks/cli-module-Cx7qotPY.js.map +1 -0
- package/dist/cli.cjs +1 -1
- package/dist/cli.js +1 -1
- package/dist/exports.cjs +1 -1
- package/dist/exports.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/styling.cjs +1 -1
- package/dist/styling.js +2 -2
- package/dist/terminal/formatter.d.ts.map +1 -1
- package/package.json +5 -1
- package/.claude/settings.local.json +0 -48
- package/.github/workflows/ci-quality.yml +0 -357
- package/.github/workflows/docs-demo.yml +0 -119
- package/.github/workflows/releases-core.yml +0 -512
- package/.github/workflows/releases-full.yml +0 -582
- package/.github/workflows-backup/ci.yml +0 -221
- package/.github/workflows-backup/nightly.yml +0 -196
- package/.github/workflows-backup/release-optimized.yml +0 -373
- package/.github/workflows-backup/release.yml +0 -269
- package/.release-notes-0.2.0.md +0 -129
- package/.yamllint +0 -28
- package/CHANGELOG.json +0 -1076
- package/CHANGELOG.md +0 -209
- package/CLAUDE.md +0 -217
- package/bun.lock +0 -333
- package/demo.html +0 -847
- package/dist/chunks/cli-module-CadqgZ1Z.js +0 -2
- package/dist/chunks/cli-module-CadqgZ1Z.js.map +0 -1
- package/dist/chunks/cli-module-ClIJmaT8.js.map +0 -1
- package/docs/API.md +0 -918
- package/docs/CORE.md +0 -264
- package/docs/DEVELOPMENT.md +0 -731
- package/docs/EXPORTS.md +0 -467
- package/docs/PACKAGES.md +0 -244
- package/docs/STYLING.md +0 -405
- package/docs/_config.yml +0 -36
- package/docs/index.md +0 -179
- package/examples/README.md +0 -208
- package/examples/basic-logging.js +0 -75
- package/examples/data-export.js +0 -234
- package/examples/package.json +0 -16
- package/examples/performance-timing.js +0 -170
- package/examples/simplified-api.js +0 -124
- package/examples/styling-themes.js +0 -207
- package/index.html +0 -358
- package/packages/core/package.json +0 -57
- package/packages/exports/package.json +0 -41
- package/packages/nodejs-opentui/README.md +0 -232
- package/packages/nodejs-opentui/package.json +0 -72
- package/packages/nodejs-opentui/src/LogRenderer.ts +0 -171
- package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +0 -178
- package/packages/nodejs-opentui/src/components/LogBadge.tsx +0 -131
- package/packages/nodejs-opentui/src/index.ts +0 -133
- package/packages/nodejs-opentui/src/types.ts +0 -158
- package/packages/nodejs-opentui/tsconfig.json +0 -20
- package/packages/styling/package.json +0 -41
- package/playground/demo-all.ts +0 -95
- package/playground/demo-box.ts +0 -85
- package/playground/demo-levels.ts +0 -56
- package/playground/demo-real-world.ts +0 -98
- package/playground/demo-spinner.ts +0 -77
- package/playground/demo-steps.ts +0 -72
- package/playground/demo-table.ts +0 -83
- package/project-utils/README.md +0 -172
- package/project-utils/auto-release-gemini.ts +0 -1193
- package/project-utils/auto-release-ui.ts +0 -1329
- package/project-utils/commit-generator.ts +0 -1385
- package/project-utils/commit-ui.ts +0 -264
- package/project-utils/git-utils.ts +0 -199
- package/project-utils/github-release-manager.ts +0 -466
- package/project-utils/project-config.ts +0 -260
- package/project-utils/prompt-templates.js +0 -345
- package/project-utils/prompt-templates.ts +0 -422
- package/project-utils/version-manager.ts +0 -1078
- package/public/vite.svg +0 -1
- package/src/Logger.ts +0 -1858
- package/src/ScopedLogger.ts +0 -256
- package/src/cli/CommandProcessor.ts +0 -248
- package/src/cli/commands/ConfigCommand.ts +0 -93
- package/src/cli/commands/ExportCommand.ts +0 -276
- package/src/cli/commands/HistoryCommand.ts +0 -117
- package/src/cli/commands/StatusCommand.ts +0 -112
- package/src/cli/commands/ThemeCommand.ts +0 -88
- package/src/cli/help.ts +0 -127
- package/src/cli/index.ts +0 -71
- package/src/cli-module.ts +0 -21
- package/src/cli-primitives/box.ts +0 -86
- package/src/cli-primitives/cli-table.ts +0 -62
- package/src/cli-primitives/divider.ts +0 -17
- package/src/cli-primitives/header.ts +0 -18
- package/src/cli-primitives/index.ts +0 -13
- package/src/cli-primitives/server-fallback.ts +0 -54
- package/src/cli-primitives/spinner.ts +0 -133
- package/src/cli-primitives/step.ts +0 -22
- package/src/constants.ts +0 -313
- package/src/core.ts +0 -397
- package/src/example.ts +0 -210
- package/src/exports-module.ts +0 -311
- package/src/handlers/AnalyticsLogHandler.ts +0 -22
- package/src/handlers/ExportLogHandler.ts +0 -610
- package/src/handlers/FileLogHandler.ts +0 -169
- package/src/handlers/RemoteLogHandler.ts +0 -42
- package/src/handlers/index.ts +0 -8
- package/src/hooks/HookManager.ts +0 -177
- package/src/hooks/index.ts +0 -1
- package/src/index.ts +0 -395
- package/src/main.ts +0 -196
- package/src/serializers/SerializerRegistry.ts +0 -173
- package/src/serializers/index.ts +0 -1
- package/src/style.css +0 -96
- package/src/styling/LogStyleBuilder.ts +0 -355
- package/src/styling/SemanticStyles.ts +0 -380
- package/src/styling/SmartPresets.ts +0 -288
- package/src/styling/StyleBuilder.ts +0 -319
- package/src/styling/StyleCache.ts +0 -131
- package/src/styling/banners.ts +0 -168
- package/src/styling/index.ts +0 -27
- package/src/styling/themes.ts +0 -235
- package/src/styling-module.ts +0 -244
- package/src/terminal/color-converter.ts +0 -315
- package/src/terminal/formatter.ts +0 -236
- package/src/terminal/terminal-renderer.ts +0 -342
- package/src/transports/ConsoleTransport.ts +0 -28
- package/src/transports/FileTransport.ts +0 -53
- package/src/transports/HttpTransport.ts +0 -56
- package/src/transports/TransportManager.ts +0 -130
- package/src/transports/index.ts +0 -4
- package/src/types/core.ts +0 -417
- package/src/types/handlers.ts +0 -95
- package/src/types/hooks.ts +0 -45
- package/src/types/index.ts +0 -83
- package/src/types/serializers.ts +0 -30
- package/src/types/transports.ts +0 -52
- package/src/typescript.svg +0 -1
- package/src/utils/adapter.ts +0 -291
- package/src/utils/ansi-colors.ts +0 -333
- package/src/utils/environment-detector.ts +0 -170
- package/src/utils/environment.ts +0 -94
- package/src/utils/formatting.ts +0 -332
- package/src/utils/index.ts +0 -33
- package/src/utils/opentui-detection.ts +0 -138
- package/src/utils/output.ts +0 -227
- package/src/utils/stackTrace.ts +0 -144
- package/src/utils/timestamps.ts +0 -80
- package/src/vite-env.d.ts +0 -1
- package/src/writers/BufferWriter.ts +0 -157
- package/src/writers/index.ts +0 -6
- package/test-core-browser.html +0 -237
- package/test-core-node.js +0 -63
- package/tests/test-conflict-resolution.ts +0 -391
- package/tests/validate-workflows.sh +0 -131
- package/tests/yaml-autofix.sh +0 -146
- package/tsconfig.json +0 -50
- package/vite.config.ts +0 -256
|
@@ -1,373 +0,0 @@
|
|
|
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
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
name: Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_dispatch:
|
|
5
|
-
inputs:
|
|
6
|
-
release_type:
|
|
7
|
-
description: 'Release type'
|
|
8
|
-
required: true
|
|
9
|
-
default: 'patch'
|
|
10
|
-
type: choice
|
|
11
|
-
options:
|
|
12
|
-
- patch
|
|
13
|
-
- minor
|
|
14
|
-
- major
|
|
15
|
-
- alpha
|
|
16
|
-
- beta
|
|
17
|
-
skip_tests:
|
|
18
|
-
description: 'Skip tests (not recommended)'
|
|
19
|
-
required: false
|
|
20
|
-
default: false
|
|
21
|
-
type: boolean
|
|
22
|
-
|
|
23
|
-
env:
|
|
24
|
-
NODE_VERSION: '20'
|
|
25
|
-
REGISTRY_URL: 'https://registry.npmjs.org'
|
|
26
|
-
|
|
27
|
-
jobs:
|
|
28
|
-
# ===== PRE-RELEASE VALIDATION =====
|
|
29
|
-
pre-release:
|
|
30
|
-
runs-on: ubuntu-latest
|
|
31
|
-
|
|
32
|
-
outputs:
|
|
33
|
-
version: ${{ steps.version.outputs.version }}
|
|
34
|
-
tag: ${{ steps.version.outputs.tag }}
|
|
35
|
-
|
|
36
|
-
steps:
|
|
37
|
-
- name: 📥 Checkout code
|
|
38
|
-
uses: actions/checkout@v4
|
|
39
|
-
with:
|
|
40
|
-
fetch-depth: 0
|
|
41
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
|
|
43
|
-
- name: 📦 Setup Node.js
|
|
44
|
-
uses: actions/setup-node@v4
|
|
45
|
-
with:
|
|
46
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
47
|
-
cache: 'npm'
|
|
48
|
-
registry-url: ${{ env.REGISTRY_URL }}
|
|
49
|
-
|
|
50
|
-
- name: 🔧 Install dependencies
|
|
51
|
-
run: npm ci
|
|
52
|
-
|
|
53
|
-
- name: 🧪 Run tests (unless skipped)
|
|
54
|
-
if: ${{ !inputs.skip_tests }}
|
|
55
|
-
run: |
|
|
56
|
-
npm run type-check
|
|
57
|
-
npm run lint
|
|
58
|
-
npm run test
|
|
59
|
-
npm run build
|
|
60
|
-
|
|
61
|
-
- name: 🏷️ Determine version
|
|
62
|
-
id: version
|
|
63
|
-
run: |
|
|
64
|
-
case "${{ inputs.release_type }}" in
|
|
65
|
-
"patch")
|
|
66
|
-
NEW_VERSION=$(npm version patch --no-git-tag-version)
|
|
67
|
-
;;
|
|
68
|
-
"minor")
|
|
69
|
-
NEW_VERSION=$(npm version minor --no-git-tag-version)
|
|
70
|
-
;;
|
|
71
|
-
"major")
|
|
72
|
-
NEW_VERSION=$(npm version major --no-git-tag-version)
|
|
73
|
-
;;
|
|
74
|
-
"alpha")
|
|
75
|
-
NEW_VERSION=$(npm version prerelease --preid=alpha --no-git-tag-version)
|
|
76
|
-
;;
|
|
77
|
-
"beta")
|
|
78
|
-
NEW_VERSION=$(npm version prerelease --preid=beta --no-git-tag-version)
|
|
79
|
-
;;
|
|
80
|
-
esac
|
|
81
|
-
|
|
82
|
-
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
83
|
-
echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
84
|
-
echo "📦 New version: $NEW_VERSION"
|
|
85
|
-
|
|
86
|
-
- name: 🏗️ Build for release
|
|
87
|
-
run: npm run build
|
|
88
|
-
|
|
89
|
-
- name: 📤 Upload build artifacts
|
|
90
|
-
uses: actions/upload-artifact@v4
|
|
91
|
-
with:
|
|
92
|
-
name: release-dist
|
|
93
|
-
path: dist/
|
|
94
|
-
retention-days: 7
|
|
95
|
-
|
|
96
|
-
# ===== CREATE RELEASE =====
|
|
97
|
-
create-release:
|
|
98
|
-
runs-on: ubuntu-latest
|
|
99
|
-
needs: pre-release
|
|
100
|
-
permissions:
|
|
101
|
-
contents: write
|
|
102
|
-
packages: write
|
|
103
|
-
id-token: write
|
|
104
|
-
|
|
105
|
-
steps:
|
|
106
|
-
- name: 📥 Checkout code
|
|
107
|
-
uses: actions/checkout@v4
|
|
108
|
-
with:
|
|
109
|
-
fetch-depth: 0
|
|
110
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
111
|
-
|
|
112
|
-
- name: 📦 Setup Node.js
|
|
113
|
-
uses: actions/setup-node@v4
|
|
114
|
-
with:
|
|
115
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
116
|
-
cache: 'npm'
|
|
117
|
-
registry-url: ${{ env.REGISTRY_URL }}
|
|
118
|
-
|
|
119
|
-
- name: 📥 Download build artifacts
|
|
120
|
-
uses: actions/download-artifact@v4
|
|
121
|
-
with:
|
|
122
|
-
name: release-dist
|
|
123
|
-
path: dist/
|
|
124
|
-
|
|
125
|
-
- name: 🔄 Update package version
|
|
126
|
-
run: npm version ${{ needs.pre-release.outputs.version }} --no-git-tag-version
|
|
127
|
-
|
|
128
|
-
- name: 📦 Create release archives
|
|
129
|
-
run: |
|
|
130
|
-
# Create distribution archives
|
|
131
|
-
tar -czf better-logger-${{ needs.pre-release.outputs.version }}.tar.gz dist/ docs/ README.md package.json
|
|
132
|
-
zip -r better-logger-${{ needs.pre-release.outputs.version }}.zip dist/ docs/ README.md package.json
|
|
133
|
-
|
|
134
|
-
# Create individual module packages
|
|
135
|
-
cd dist
|
|
136
|
-
tar -czf ../better-logger-core-${{ needs.pre-release.outputs.version }}.tar.gz core.js core.cjs types/core.d.ts
|
|
137
|
-
tar -czf ../better-logger-styling-${{ needs.pre-release.outputs.version }}.tar.gz styling.js styling.cjs types/styling.d.ts
|
|
138
|
-
tar -czf ../better-logger-exports-${{ needs.pre-release.outputs.version }}.tar.gz exports.js exports.cjs types/exports.d.ts
|
|
139
|
-
cd ..
|
|
140
|
-
|
|
141
|
-
- name: 📝 Generate changelog
|
|
142
|
-
id: changelog
|
|
143
|
-
run: |
|
|
144
|
-
# Get commits since last tag
|
|
145
|
-
LAST_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "")
|
|
146
|
-
if [ -n "$LAST_TAG" ]; then
|
|
147
|
-
echo "## Changes since $LAST_TAG" > RELEASE_NOTES.md
|
|
148
|
-
git log $LAST_TAG..HEAD --pretty=format:"- %s (%h)" >> RELEASE_NOTES.md
|
|
149
|
-
else
|
|
150
|
-
echo "## Initial Release" > RELEASE_NOTES.md
|
|
151
|
-
echo "- Complete Better Logger implementation with all features" >> RELEASE_NOTES.md
|
|
152
|
-
fi
|
|
153
|
-
|
|
154
|
-
# Add bundle size info
|
|
155
|
-
echo "" >> RELEASE_NOTES.md
|
|
156
|
-
echo "## 📦 Bundle Sizes" >> RELEASE_NOTES.md
|
|
157
|
-
echo "\`\`\`" >> RELEASE_NOTES.md
|
|
158
|
-
ls -lh dist/*.js dist/*.cjs | grep -E '\.(js|cjs)$' >> RELEASE_NOTES.md
|
|
159
|
-
echo "\`\`\`" >> RELEASE_NOTES.md
|
|
160
|
-
|
|
161
|
-
- name: 🏷️ Create and push tag
|
|
162
|
-
run: |
|
|
163
|
-
git config user.name "github-actions[bot]"
|
|
164
|
-
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
165
|
-
git add package.json
|
|
166
|
-
git commit -m "chore: release ${{ needs.pre-release.outputs.version }}"
|
|
167
|
-
git tag -a "${{ needs.pre-release.outputs.tag }}" -m "Release ${{ needs.pre-release.outputs.version }}"
|
|
168
|
-
git push origin main --tags
|
|
169
|
-
|
|
170
|
-
- name: 🚀 Publish to NPM Registry
|
|
171
|
-
run: |
|
|
172
|
-
if [[ "${{ inputs.release_type }}" == "alpha" || "${{ inputs.release_type }}" == "beta" ]]; then
|
|
173
|
-
npm run ci:publish -- --tag ${{ inputs.release_type }}
|
|
174
|
-
else
|
|
175
|
-
npm run ci:publish
|
|
176
|
-
fi
|
|
177
|
-
env:
|
|
178
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
179
|
-
|
|
180
|
-
- name: 📦 Setup GitHub Packages Registry
|
|
181
|
-
run: |
|
|
182
|
-
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc
|
|
183
|
-
echo "@mks2508:registry=https://npm.pkg.github.com" >> ~/.npmrc
|
|
184
|
-
|
|
185
|
-
- name: 📦 Publish to GitHub Packages
|
|
186
|
-
run: |
|
|
187
|
-
if [[ "${{ inputs.release_type }}" == "alpha" || "${{ inputs.release_type }}" == "beta" ]]; then
|
|
188
|
-
npm publish --registry=https://npm.pkg.github.com --access=public --tag ${{ inputs.release_type }} --ignore-scripts
|
|
189
|
-
else
|
|
190
|
-
npm publish --registry=https://npm.pkg.github.com --access=public --ignore-scripts
|
|
191
|
-
fi
|
|
192
|
-
|
|
193
|
-
- name: 🏷️ Create GitHub Release
|
|
194
|
-
uses: softprops/action-gh-release@v1
|
|
195
|
-
with:
|
|
196
|
-
tag_name: ${{ needs.pre-release.outputs.tag }}
|
|
197
|
-
name: Better Logger ${{ needs.pre-release.outputs.version }}
|
|
198
|
-
body_path: RELEASE_NOTES.md
|
|
199
|
-
draft: false
|
|
200
|
-
prerelease: ${{ contains(inputs.release_type, 'alpha') || contains(inputs.release_type, 'beta') }}
|
|
201
|
-
files: |
|
|
202
|
-
better-logger-${{ needs.pre-release.outputs.version }}.tar.gz
|
|
203
|
-
better-logger-${{ needs.pre-release.outputs.version }}.zip
|
|
204
|
-
better-logger-core-${{ needs.pre-release.outputs.version }}.tar.gz
|
|
205
|
-
better-logger-styling-${{ needs.pre-release.outputs.version }}.tar.gz
|
|
206
|
-
better-logger-exports-${{ needs.pre-release.outputs.version }}.tar.gz
|
|
207
|
-
env:
|
|
208
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
209
|
-
|
|
210
|
-
# ===== POST-RELEASE TASKS =====
|
|
211
|
-
post-release:
|
|
212
|
-
runs-on: ubuntu-latest
|
|
213
|
-
needs: [pre-release, create-release]
|
|
214
|
-
permissions:
|
|
215
|
-
contents: read
|
|
216
|
-
pages: write
|
|
217
|
-
id-token: write
|
|
218
|
-
|
|
219
|
-
steps:
|
|
220
|
-
- name: 📥 Checkout code
|
|
221
|
-
uses: actions/checkout@v4
|
|
222
|
-
with:
|
|
223
|
-
ref: main
|
|
224
|
-
fetch-depth: 0
|
|
225
|
-
|
|
226
|
-
- name: 📦 Setup Node.js
|
|
227
|
-
uses: actions/setup-node@v4
|
|
228
|
-
with:
|
|
229
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
230
|
-
cache: 'npm'
|
|
231
|
-
|
|
232
|
-
- name: 🔧 Install dependencies
|
|
233
|
-
run: npm ci
|
|
234
|
-
|
|
235
|
-
- name: 📥 Download build artifacts
|
|
236
|
-
uses: actions/download-artifact@v4
|
|
237
|
-
with:
|
|
238
|
-
name: release-dist
|
|
239
|
-
path: dist/
|
|
240
|
-
|
|
241
|
-
- name: 🚀 Deploy documentation
|
|
242
|
-
run: |
|
|
243
|
-
# Build documentation site
|
|
244
|
-
mkdir -p docs-site
|
|
245
|
-
cp demo.html docs-site/index.html
|
|
246
|
-
cp -r dist/ docs-site/dist/
|
|
247
|
-
cp -r docs/ docs-site/docs/
|
|
248
|
-
cp README.md docs-site/
|
|
249
|
-
|
|
250
|
-
- name: 📤 Deploy to GitHub Pages
|
|
251
|
-
uses: peaceiris/actions-gh-pages@v3
|
|
252
|
-
with:
|
|
253
|
-
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
254
|
-
publish_dir: ./docs-site
|
|
255
|
-
publish_branch: gh-pages
|
|
256
|
-
commit_message: 'docs: update documentation for ${{ needs.pre-release.outputs.version }}'
|
|
257
|
-
|
|
258
|
-
- name: 📊 Release summary
|
|
259
|
-
run: |
|
|
260
|
-
echo "## 🎉 Release Complete!" >> $GITHUB_STEP_SUMMARY
|
|
261
|
-
echo "- **Version**: ${{ needs.pre-release.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
|
262
|
-
echo "- **NPM**: https://www.npmjs.com/package/@mks2508/better-logger" >> $GITHUB_STEP_SUMMARY
|
|
263
|
-
echo "- **GitHub**: https://github.com/MKS2508/advanced-logger/releases/tag/${{ needs.pre-release.outputs.tag }}" >> $GITHUB_STEP_SUMMARY
|
|
264
|
-
echo "- **Docs**: https://mks2508.github.io/advanced-logger/" >> $GITHUB_STEP_SUMMARY
|
|
265
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
266
|
-
echo "### 📦 Installation" >> $GITHUB_STEP_SUMMARY
|
|
267
|
-
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
|
268
|
-
echo "npm install @mks2508/better-logger@${{ needs.pre-release.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
|
269
|
-
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|