From bd792eb560778ea3682ebb8a360b9492420e55eb Mon Sep 17 00:00:00 2001 From: Loganathan G P <106108501+logusivam@users.noreply.github.com> Date: Sat, 1 Aug 2026 13:07:40 +0530 Subject: [PATCH] fix(release): expose swagger doc on production and include npm plugin for version bumps --- CHANGELOG.md | 3 --- apps/api/src/server.ts | 10 ++++------ apps/web/vercel.json | 3 ++- apps/web/vite.config.ts | 1 + package-lock.json | 1 + package.json | 1 + release.config.cjs | 6 ++++++ vercel.json | 9 +++++++++ 8 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 vercel.json diff --git a/CHANGELOG.md b/CHANGELOG.md index e092d9e..71809a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,9 +10,6 @@ Versioning: [Semantic Versioning](https://semver.org/) ## [Unreleased] -- Initial release: JWT auth, refresh token rotation, OAuth2 PKCE - (Google/GitHub), RBAC - --- ## Types of Changes diff --git a/apps/api/src/server.ts b/apps/api/src/server.ts index 897952c..edd8bf3 100644 --- a/apps/api/src/server.ts +++ b/apps/api/src/server.ts @@ -29,6 +29,7 @@ import { usersRouter } from '@/modules/users/user.routes' import { adminRouter } from '@/modules/admin/admin.routes' import { supportRouter } from '@/modules/support/support.routes' import { seedRbac } from '@/modules/rbac/rbac.seed' +import { setupSwagger } from '@/config/swagger' // ── Sentry (must init before express) ────────────────────────────── if (env.SENTRY_DSN) { @@ -125,6 +126,9 @@ app.use('/api/v1/users', usersRouter) app.use('/api/v1/admin', adminRouter) app.use('/api/v1/support', supportRouter) +// Swagger UI Docs (Available in all environments for reference) +setupSwagger(app) + // ── 404 handler ────────────────────────────────────────────────────── app.use((_req, res) => { res.status(404).json({ status: 'error', statusCode: 404, message: 'Route not found' }) @@ -140,12 +144,6 @@ async function bootstrap(): Promise { const redis = await connectRedis() app.set('redis', redis) // Attach to app for health check + middleware access - // Swagger UI (development + staging only) - if (env.NODE_ENV !== 'production') { - const { setupSwagger } = await import('./config/swagger.js') - setupSwagger(app) - } - const server = app.listen(env.PORT, () => { logger.info(`TokenForge API running on port ${env.PORT}`, { env: env.NODE_ENV, diff --git a/apps/web/vercel.json b/apps/web/vercel.json index 1dcf377..0156eeb 100644 --- a/apps/web/vercel.json +++ b/apps/web/vercel.json @@ -1,7 +1,8 @@ { + "cleanUrls": true, "rewrites": [ { - "source": "/((?!.*\\.).*)", + "source": "/((?!assets/|robots\\.txt|sitemap\\.xml|\\.well-known/|.*\\.(?:png|jpg|jpeg|gif|svg|ico|txt|js|css)$).*)", "destination": "/index.html" } ] diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index 6cc0865..e630a51 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -48,5 +48,6 @@ export default defineConfig({ globals: true, environment: 'jsdom', setupFiles: ['./tests/setup.ts'], + pool: 'vmThreads', }, }) diff --git a/package-lock.json b/package-lock.json index f178c2c..adc83b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^12.0.9", + "@semantic-release/npm": "13.1.5", "@semantic-release/release-notes-generator": "^14.1.1", "@typescript-eslint/eslint-plugin": "^8.63.0", "@typescript-eslint/parser": "^8.63.0", diff --git a/package.json b/package.json index 4217823..88c69f7 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^12.0.9", + "@semantic-release/npm": "13.1.5", "@semantic-release/release-notes-generator": "^14.1.1", "@typescript-eslint/eslint-plugin": "^8.63.0", "@typescript-eslint/parser": "^8.63.0", diff --git a/release.config.cjs b/release.config.cjs index 48d7cc0..cf32677 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -28,6 +28,12 @@ module.exports = { changelogFile: 'CHANGELOG.md', }, ], + [ + '@semantic-release/npm', + { + npmPublish: false, + }, + ], [ '@semantic-release/git', { diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..0156eeb --- /dev/null +++ b/vercel.json @@ -0,0 +1,9 @@ +{ + "cleanUrls": true, + "rewrites": [ + { + "source": "/((?!assets/|robots\\.txt|sitemap\\.xml|\\.well-known/|.*\\.(?:png|jpg|jpeg|gif|svg|ico|txt|js|css)$).*)", + "destination": "/index.html" + } + ] +}