mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2026-01-27 12:50:54 +03:00
- Add parseErrorMessage() utility to parse JSON error responses - Add showErrorToast() helper for consistent error display - Update all toast.error calls to use structured error parsing - Support multiple error formats: error+troubleshooting, title+description, message+details - Enhance apiRequest() to support both 'body' and 'data' properties - Add comprehensive unit tests for error parsing functionality - Improve user experience with clear, actionable error messages Fixes structured error messages from Gitea API responses that were showing as raw JSON
90 lines
3.0 KiB
JSON
90 lines
3.0 KiB
JSON
{
|
|
"name": "gitea-mirror",
|
|
"type": "module",
|
|
"version": "2.9.3",
|
|
"engines": {
|
|
"bun": ">=1.2.9"
|
|
},
|
|
"scripts": {
|
|
"setup": "bun install && bun run manage-db init",
|
|
"dev": "bunx --bun astro dev",
|
|
"dev:clean": "bun run cleanup-db && bun run manage-db init && bunx --bun astro dev",
|
|
"build": "bunx --bun astro build",
|
|
"cleanup-db": "rm -f gitea-mirror.db data/gitea-mirror.db",
|
|
"manage-db": "bun scripts/manage-db.ts",
|
|
"init-db": "bun scripts/manage-db.ts init",
|
|
"check-db": "bun scripts/manage-db.ts check",
|
|
"fix-db": "bun scripts/manage-db.ts fix",
|
|
"reset-users": "bun scripts/manage-db.ts reset-users",
|
|
|
|
"startup-recovery": "bun scripts/startup-recovery.ts",
|
|
"startup-recovery-force": "bun scripts/startup-recovery.ts --force",
|
|
"test-recovery": "bun scripts/test-recovery.ts",
|
|
"test-recovery-cleanup": "bun scripts/test-recovery.ts --cleanup",
|
|
"test-shutdown": "bun scripts/test-graceful-shutdown.ts",
|
|
"test-shutdown-cleanup": "bun scripts/test-graceful-shutdown.ts --cleanup",
|
|
"preview": "bunx --bun astro preview",
|
|
"start": "bun dist/server/entry.mjs",
|
|
"start:fresh": "bun run cleanup-db && bun run manage-db init && bun dist/server/entry.mjs",
|
|
"test": "bun test",
|
|
"test:watch": "bun test --watch",
|
|
"test:coverage": "bun test --coverage",
|
|
"astro": "bunx --bun astro"
|
|
},
|
|
"dependencies": {
|
|
"@astrojs/mdx": "^4.2.6",
|
|
"@astrojs/node": "^9.2.1",
|
|
"@astrojs/react": "^4.2.7",
|
|
"@octokit/rest": "^21.1.1",
|
|
"@radix-ui/react-avatar": "^1.1.9",
|
|
"@radix-ui/react-checkbox": "^1.3.1",
|
|
"@radix-ui/react-dialog": "^1.1.13",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.14",
|
|
"@radix-ui/react-label": "^2.1.6",
|
|
"@radix-ui/react-popover": "^1.1.13",
|
|
"@radix-ui/react-radio-group": "^1.3.6",
|
|
"@radix-ui/react-select": "^2.2.4",
|
|
"@radix-ui/react-slot": "^1.2.2",
|
|
"@radix-ui/react-switch": "^1.2.5",
|
|
"@radix-ui/react-tabs": "^1.1.11",
|
|
"@radix-ui/react-tooltip": "^1.2.6",
|
|
"@tailwindcss/vite": "^4.1.7",
|
|
"@tanstack/react-virtual": "^3.13.8",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/react": "^19.1.4",
|
|
"@types/react-dom": "^19.1.5",
|
|
"astro": "^5.7.13",
|
|
"bcryptjs": "^3.0.2",
|
|
"canvas-confetti": "^1.9.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"drizzle-orm": "^0.43.1",
|
|
"fuse.js": "^7.1.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"lucide-react": "^0.511.0",
|
|
"next-themes": "^0.4.6",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0",
|
|
"react-icons": "^5.5.0",
|
|
"sonner": "^2.0.3",
|
|
"tailwind-merge": "^3.3.0",
|
|
"tailwindcss": "^4.1.7",
|
|
"tw-animate-css": "^1.3.0",
|
|
"uuid": "^11.1.0",
|
|
"zod": "^3.25.7"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@types/bcryptjs": "^3.0.0",
|
|
"@types/jsonwebtoken": "^9.0.9",
|
|
"@types/uuid": "^10.0.0",
|
|
"@vitejs/plugin-react": "^4.4.1",
|
|
"jsdom": "^26.1.0",
|
|
"tsx": "^4.19.4",
|
|
"vitest": "^3.1.4"
|
|
},
|
|
"packageManager": "bun@1.2.9"
|
|
}
|