6 Commits

Author SHA1 Message Date
7889f8eb96 chore: 2.0.2 버전 범프
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 14:30:30 +09:00
8db9e64302 chore(deps): vite 5→6, electron-vite 2→3, vitest 1→4 업그레이드 — 나머지 보안 취약점 해결
Vite path traversal(CVE) 및 esbuild dev-server SSRF 취약점을 Vite 6.4.2,
esbuild 0.25 업그레이드로 해결한다. @vitejs/plugin-react 5.x, vitest 4.x 동반 업그레이드.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 11:41:00 +09:00
2d7d586be7 chore(deps): electron 35 → 39 업그레이드 — Dependabot 보안 취약점 17개 해결
use-after-free, AppleScript injection, IPC spoofing 등 high/medium/low
Electron 취약점을 모두 39.8.x 패치 버전으로 해결한다.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 11:22:40 +09:00
17a7a617fd fix(web): custom domain 대응 — base '/' 변경 및 CNAME 추가
Vite base를 '/NFD2NFC/'에서 '/'로 변경하고 web/public/CNAME을 추가해
nfd2nfc.pieroot.xyz에서 자산 404 및 배포 후 custom domain 초기화 문제를 수정한다.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 18:49:48 +09:00
6f44af3e4f fix(web): 드롭존 label에 display:block 추가 — 테두리 잘림 수정
label 요소는 기본 display:inline이라 content 너비만큼만 테두리가 그려짐.
display:block + width:100% 로 full-width 드롭존으로 수정.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 15:38:24 +09:00
51f99856cf fix(ci): configure-pages enablement: true 추가 — Pages 미활성화 시 자동 활성화
첫 배포 시 'Get Pages site failed. Not Found' 오류 수정.
actions/configure-pages@v5 의 enablement: true 옵션으로 repo Pages 설정이
없을 때 자동으로 GitHub Actions source 로 활성화.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 15:17:03 +09:00
6 changed files with 516 additions and 689 deletions

View File

@@ -32,6 +32,8 @@ jobs:
- run: npm ci - run: npm ci
- run: npm run web:build - run: npm run web:build
- uses: actions/configure-pages@v5 - uses: actions/configure-pages@v5
with:
enablement: true
- uses: actions/upload-pages-artifact@v3 - uses: actions/upload-pages-artifact@v3
with: with:
path: dist-web path: dist-web

1188
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "@pieroot/nfd2nfc", "name": "@pieroot/nfd2nfc",
"version": "2.0.1", "version": "2.0.2",
"description": "macOS 한글 파일명 NFD→NFC 실시간 변환 트레이 앱 + CLI + 라이브러리", "description": "macOS 한글 파일명 NFD→NFC 실시간 변환 트레이 앱 + CLI + 라이브러리",
"main": "out/lib/index.js", "main": "out/lib/index.js",
"types": "out/lib/index.d.ts", "types": "out/lib/index.d.ts",
@@ -49,17 +49,17 @@
"@types/yargs": "^17.0.32", "@types/yargs": "^17.0.32",
"@typescript-eslint/eslint-plugin": "^7.7.0", "@typescript-eslint/eslint-plugin": "^7.7.0",
"@typescript-eslint/parser": "^7.7.0", "@typescript-eslint/parser": "^7.7.0",
"@vitejs/plugin-react": "^4.3.4", "@vitejs/plugin-react": "^5.1.4",
"electron": "^39.8.5", "electron": "^39.8.5",
"electron-builder": "^26.0.12", "electron-builder": "^26.0.12",
"electron-vite": "^2.3.0", "electron-vite": "^3.1.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"react": "^19.2.6", "react": "^19.2.6",
"react-dom": "^19.2.6", "react-dom": "^19.2.6",
"typescript": "^5.4.0", "typescript": "^5.4.0",
"vite": "^5.2.0", "vite": "^6.4.2",
"vitest": "^1.6.1" "vitest": "^4.1.6"
}, },
"author": "jung-geun <pieroot.02@gmail.com>", "author": "jung-geun <pieroot.02@gmail.com>",
"license": "MIT", "license": "MIT",

1
web/public/CNAME Normal file
View File

@@ -0,0 +1 @@
nfd2nfc.pieroot.xyz

View File

@@ -82,6 +82,8 @@ main {
} }
.dropzone { .dropzone {
display: block;
width: 100%;
border: 2px dashed var(--border); border: 2px dashed var(--border);
border-radius: 16px; border-radius: 16px;
padding: 64px 24px; padding: 64px 24px;

View File

@@ -4,7 +4,7 @@ import { resolve } from 'path';
export default defineConfig({ export default defineConfig({
root: __dirname, root: __dirname,
base: '/NFD2NFC/', base: '/',
plugins: [react()], plugins: [react()],
build: { build: {
outDir: resolve(__dirname, '../dist-web'), outDir: resolve(__dirname, '../dist-web'),