mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
6f2fe8612e
Replace the plain textarea for book descriptions with a Tiptap-based rich text editor in the metadata edit tab. Include HTML sanitization utilities to ensure safe rendering of user-provided descriptions. Closes #460
105 lines
3.3 KiB
JSON
105 lines
3.3 KiB
JSON
{
|
|
"name": "client",
|
|
"version": "0.0.0",
|
|
"description": "BookOrbit client - self-hosted library management and reading platform",
|
|
"author": "neonsolstice",
|
|
"private": true,
|
|
"license": "AGPL-3.0",
|
|
"homepage": "https://bookorbit.app",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/bookorbit/bookorbit"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/bookorbit/bookorbit/issues"
|
|
},
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "run-p type-check \"build-only {@}\" --",
|
|
"preview": "vite preview",
|
|
"test:unit": "vitest",
|
|
"test:cov": "vitest --coverage",
|
|
"build-only": "vite build",
|
|
"pretype-check": "pnpm --filter @bookorbit/types build",
|
|
"type-check": "vue-tsc --build",
|
|
"lint": "pnpm run lint:check",
|
|
"lint:check": "run-s lint:oxlint:check lint:eslint:check",
|
|
"lint:fix": "run-s lint:oxlint:fix lint:eslint:fix",
|
|
"lint:oxlint:check": "oxlint src",
|
|
"lint:oxlint:fix": "oxlint src --fix",
|
|
"lint:eslint:check": "eslint src --cache",
|
|
"lint:eslint:fix": "eslint src --fix --cache",
|
|
"format": "prettier --write --experimental-cli src/",
|
|
"format:check": "prettier --check src/",
|
|
"generate-pwa-icons": "pwa-assets-generator --config pwa-assets.config.ts"
|
|
},
|
|
"dependencies": {
|
|
"@bookorbit/types": "workspace:*",
|
|
"@embedpdf/vue-pdf-viewer": "^2.14.4",
|
|
"@fontsource-variable/fraunces": "^5.2.9",
|
|
"@fontsource-variable/inter": "^5.2.8",
|
|
"@lucide/vue": "1.21.0",
|
|
"@tailwindcss/vite": "^4.3.1",
|
|
"@tanstack/vue-table": "^8.21.3",
|
|
"@tanstack/vue-virtual": "^3.13.29",
|
|
"@tiptap/extension-link": "^3.27.1",
|
|
"@tiptap/pm": "^3.27.1",
|
|
"@tiptap/starter-kit": "^3.27.1",
|
|
"@tiptap/vue-3": "^3.27.1",
|
|
"@types/howler": "^2.2.13",
|
|
"@vueuse/core": "^14.3.0",
|
|
"canvas-confetti": "^1.9.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cronstrue": "^3.20.0",
|
|
"dompurify": "^3.4.11",
|
|
"driver.js": "^1.4.0",
|
|
"echarts": "^6.1.0",
|
|
"howler": "^2.2.4",
|
|
"pinia": "^3.0.4",
|
|
"reka-ui": "^2.10.0",
|
|
"socket.io-client": "^4.8.3",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tailwindcss": "^4.3.1",
|
|
"vite-plugin-pwa": "^1.3.0",
|
|
"vue": "^3.5.38",
|
|
"vue-draggable-plus": "^0.6.1",
|
|
"vue-echarts": "8.1.0-beta.2",
|
|
"vue-router": "^5.1.0",
|
|
"vue-sonner": "^2.0.9",
|
|
"vue-virtual-scroller": "^3.0.4"
|
|
},
|
|
"devDependencies": {
|
|
"@tsconfig/node24": "^24.0.4",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/jsdom": "^28.0.3",
|
|
"@types/node": "^26.0.0",
|
|
"@vite-pwa/assets-generator": "^1.0.2",
|
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
"@vitest/coverage-v8": "^4.1.9",
|
|
"@vitest/eslint-plugin": "^1.6.20",
|
|
"@vue/eslint-config-typescript": "^14.8.0",
|
|
"@vue/test-utils": "^2.4.11",
|
|
"@vue/tsconfig": "^0.9.1",
|
|
"eslint": "^10.5.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-oxlint": "~1.70.0",
|
|
"eslint-plugin-vue": "~10.9.2",
|
|
"jiti": "^2.7.0",
|
|
"jsdom": "^29.1.1",
|
|
"npm-run-all2": "^9.0.2",
|
|
"oxlint": "~1.70.0",
|
|
"prettier": "3.8.4",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "~6.0.3",
|
|
"vite": "^8.0.16",
|
|
"vite-plugin-vue-devtools": "^8.1.3",
|
|
"vitest": "^4.1.9",
|
|
"vue-tsc": "^3.3.5"
|
|
},
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
}
|
|
}
|