Commit Graph
16 Commits
Author SHA1 Message Date
adrianbonpin 0450946107 feat: add admin analytics API endpoint with time-series data 2026-05-16 17:14:53 +08:00
adrianbonpin 33f5aa8ec6 feat: add GET /api/mobile/game/:gameId consolidated endpoint 2026-05-16 15:55:22 +08:00
adrianbonpin 1ad216b9ff fix(api): fix Response.clone body consumed error on /api/openapi
Add embedSpec: true to openapi config to prevent cached Response
body from being consumed on subsequent requests. Also add
games-performance routes export and mobile-callback route.
2026-05-16 05:33:20 +08:00
adrianbonpin 45d4570665 chore: bump version to 2026.0.101, update changelog and update news 2026-05-15 01:07:42 +08:00
adrianbonpin 1ba6335ea1 feat(steamdb): register steamdb-version route in app.ts read group 2026-05-15 00:57:10 +08:00
adrianbonpin b895e8714d feat(security): apply tiered rate limits with scoped .group() blocks in app.ts 2026-05-15 00:45:12 +08:00
adrianbonpin e908880834 feat(security): extend rateLimit to support named categories with 5 tiers 2026-05-15 00:39:35 +08:00
adrianbonpin fbfc43832e feat: add OpenAPI support and in-process cron scheduler
- Install @elysia/openapi to auto-generate API docs at /api/openapi
- Install @elysia/cron for in-process scheduled jobs (orphan detection at 2am, storage cleanup at 3am)
- Add Scalar UI docs with 14 tag groups and Bearer JWT security scheme
- Add route-level detail annotations (tags, summaries) to all 30+ route files
- Upgrade crud-builder to accept optional tags config
- Keep HTTP cron endpoint as manual/admin fallback
2026-05-14 21:43:33 +08:00
adrianbonpin 814a5c3d7c feat(api): register admin storage routes and export from index 2026-05-10 01:22:33 +08:00
adrianbonpin 3cbb3538da feat: add screenshot upload/list/delete API routes 2026-05-09 22:40:05 +08:00
adrianbonpin 32386ce170 fix: resolve all ESLint errors and warnings
- Replace  types with  and proper type casting
- Remove unused imports and variables across multiple files
- Fix React set-state-in-effect by suppressing with eslint-disable
- Wrap handleFile in useCallback to stabilize hook dependencies
- Remove dead MetaItem component from game-page-client
- Add public/sw.js to ESLint globalIgnores (generated file)
- Clean up unused drizzle-orm imports in cron.ts, dashboard-public.ts
- Remove unused _configured flag from r2-client.ts
2026-05-09 16:38:29 +08:00
adrianbonpin 03428bdd0b feat: add admin sitemap regeneration endpoint and cron task 2026-05-09 13:30:38 +08:00
adrianbonpin 2f4f0250df feat: add public dashboard API routes for trending, best new, most tested, most reported 2026-05-09 13:07:52 +08:00
adrianbonpin 20f1d33751 feat: add profile photo upload/delete API routes with R2 storage 2026-05-09 12:54:12 +08:00
adrianbonpin 6009366fb4 feat: add modular daily cron system with storage cleanup and orphan detection 2026-05-09 12:50:16 +08:00
adrianbonpin 863358a8fd fix: resolve Next.js 16 build errors
- Extract Elysia app from route.ts into lib/api/app.ts to avoid
  Next.js 16 invalid export validation ('app' is not a valid route
  export field)
- Remove runtime='nodejs' from opengraph-image.tsx (invalid segment
  config in Next.js 16)
- Replace computed revalidate expression in sitemap.ts with literal
  (Next.js cannot statically evaluate BinaryExpression for segment
  configs)
- Update eden.ts imports to match new app.ts location
2026-05-05 00:36:17 +08:00