Public Source Viewer

비나래아카이브 개발자 포털

실제 서비스 구조를 살펴볼 수 있는 공개용 코드 뷰어입니다. 인증, 세션, 외부 연동, 토큰, 관리자 식별 등 보안상 민감한 구현은 파일 단위 또는 줄 단위로 검열됩니다.

Redacted View
src/routes/index.ts
공개 가능
1 import { Application } from 'express';
2 import express from 'express';
3 import path from 'path';
4 import { setupSessionMiddleware, setupCsrfMiddleware, themeMiddleware, csrfErrorHandler } from '../middleware';
5 import { UPLOAD_DIR, PUBLIC_DIR } from '../utils/paths';
6
7 // Import all route modules
8 import aiRoutes from './ai.routes';
9 import blogRoutes from './blog.routes';
10 import authRoutes from './auth.routes';
11 import userRoutes from './user.routes';
12 import uploadRoutes from './upload.routes';
13 import adminRoutes from './admin.routes';
14 import gameRoutes from './game.routes';
15 import communityRoutes from './community.routes';
16 import trainRoutes from './train.routes';
17 import discordRoutes from './discord.routes';
18 import personaRoutes from './persona.routes';
19 import kivotosRoutes from './kivotos.routes';
20 import mainRoutes from './main.routes';
21 import legacyRoutes from './legacy.routes';
22 import pushRoutes from './push.routes';
23 import endRoutes from './end.routes';
24 import personalNoteRoutes from './personal-note.routes';
25 import monitoringRoutes from './monitoring.routes';
26 import developerPortalRoutes from './developer-portal.routes';
27
28 export default function setupRoutes(app: Application): void {
29 // Setup middleware
30 setupSessionMiddleware(app);
31 app.use(themeMiddleware);
32 setupCsrfMiddleware(app);
33
34 // Setup static file serving for uploads
35 app.use('/uploads', express.static(path.join(PUBLIC_DIR, 'uploads')));
36
37 // Register all routes
38 app.use(endRoutes); // end.hinana.moe routes (subdomain)
39 app.use(authRoutes); // Auth routes (login, logout, signup)
40 app.use(userRoutes); // User/settings routes
41 app.use(aiRoutes); // AI chat routes
42 app.use(personalNoteRoutes); // Personal notes routes
43 app.use(blogRoutes); // Blog routes
44 app.use(uploadRoutes); // Upload routes
45 app.use(adminRoutes); // Admin routes
46 app.use(monitoringRoutes); // Monitoring/admin feature flags
47 app.use(developerPortalRoutes); // Public redacted source viewer
48 app.use(gameRoutes); // Game routes (tetris)
49 app.use(communityRoutes); // Community routes (lounge, plaza)
50 app.use(trainRoutes); // Train route
51 app.use(discordRoutes); // Discord share route
52 app.use(personaRoutes); // Persona routes
53 app.use(kivotosRoutes); // Kivotos Express Railway
54 app.use(mainRoutes); // Main page routes
55 app.use(pushRoutes); // Web Push subscription routes
56 app.use(legacyRoutes); // Legacy routes
57
58 // CSRF error handler (must be after routes)
59 app.use(csrfErrorHandler);
60 }
61