Files
arasystem/frontend/src/main.ts
T
ttipo 468a4377ee feat(frontend): 전역 셸·로그인·세션 처리와 웹메일 화면
확정된 디자인(docs/design/webmail)을 기준으로 만든 웹메일 화면이다.

- 앞으로 붙일 사내 모듈(캘린더·파일·ERP 등)을 위한 전역 앱 레일과 셸,
  Pretendard 자체 호스팅, 바다 청록 브랜드 토큰과 콘텐츠 열 토큰
- 로그인과 세션 처리: 401 이면 한 번 갱신한 뒤 다시 보내고, 실패하면 세션 만료 대화상자를 띄운다.
  로그아웃은 다른 탭에도 알리고, 로그아웃 뒤에 늦게 온 갱신 결과는 버린다
- 메일함(분할·목록 보기), 읽기(외부 HTML 은 sandbox iframe 으로만 그린다),
  쓰기(발송 키 규칙, 첨부 형식·크기·합계·개수 사전 검사, 답장·전달 초안 길이 맞춤)
- 오류는 코드로만 분기하고, 문구는 생성된 에러 사전에서 가져온다

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 01:31:59 +09:00

20 lines
655 B
TypeScript

// 글꼴 — npm pretendard 패키지를 번들에 포함해 자체 호스팅한다 (외부 CDN 금지 · nginx CSP font-src 'self')
// 쓰는 글자 범위의 조각 파일만 내려받는 dynamic subset 판이다.
import 'pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css'
import '@/styles/tokens.css'
import '@/styles/base.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
const app = createApp(App)
// 라우터 가드가 스토어(세션 복원)를 쓰므로 Pinia 를 먼저 설치한다
app.use(createPinia())
app.use(router)
app.mount('#app')