Add a Vite dev server middleware plugin that serves vault data over HTTP, allowing the browser version of the app to read real markdown files instead of hardcoded mock data. The mock layer now checks for API availability at load time and falls back to hardcoded data when the API is unavailable. - GET /api/vault/ping — health check - GET /api/vault/list?path=<dir> — scan dir, parse frontmatter → VaultEntry[] - GET /api/vault/content?path=<file> — raw file content - GET /api/vault/all-content?path=<dir> — all .md files content map - gray-matter added as dev dependency for frontmatter parsing - useVaultLoader now passes vaultPath to mock invoke calls Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
68 lines
1.9 KiB
JSON
68 lines
1.9 KiB
JSON
{
|
|
"name": "laputa-app",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "eslint .",
|
|
"preview": "vite preview",
|
|
"tauri": "tauri",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "playwright test",
|
|
"test:coverage": "vitest run --coverage"
|
|
},
|
|
"dependencies": {
|
|
"@blocknote/core": "^0.46.2",
|
|
"@blocknote/mantine": "^0.46.2",
|
|
"@blocknote/react": "^0.46.2",
|
|
"@mantine/core": "^8.3.14",
|
|
"@phosphor-icons/react": "^2.1.10",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
"@radix-ui/react-select": "^2.2.6",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@tailwindcss/vite": "^4.1.18",
|
|
"@tauri-apps/api": "^2.10.1",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"katex": "^0.16.28",
|
|
"lowlight": "^3.3.0",
|
|
"lucide-react": "^0.564.0",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.0",
|
|
"react-virtuoso": "^4.18.1",
|
|
"tailwind-merge": "^3.4.1",
|
|
"tailwindcss": "^4.1.18",
|
|
"tw-animate-css": "^1.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.39.1",
|
|
"@playwright/test": "^1.58.2",
|
|
"@tauri-apps/cli": "^2.10.0",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/node": "^24.10.1",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^5.1.1",
|
|
"@vitest/coverage-v8": "^4.0.18",
|
|
"eslint": "^9.39.1",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.4.24",
|
|
"globals": "^16.5.0",
|
|
"gray-matter": "^4.0.3",
|
|
"jsdom": "^28.0.0",
|
|
"typescript": "~5.9.3",
|
|
"typescript-eslint": "^8.48.0",
|
|
"vite": "^7.3.1",
|
|
"vitest": "^4.0.18"
|
|
}
|
|
}
|