mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 08:21:39 -06:00
515f7b89e9
Rework the app shell around a customizable sidebar: reorderable sections, sidebar zones, entity popovers, and per-user preference persistence, backed by a dedicated browse counts endpoint so entity totals stay cheap on large libraries. Redesign the file naming settings with pattern fields, a token helper sheet, and a debounced live preview. Rebuild the admin users table with server-side pagination, search, and filter DTOs, status pills, confirmation dialogs, and magic link actions. Group notification preferences by category and refine the account and privacy settings layouts. Update theme tokens, icon references, and template event handler bindings across client features for consistency, extend all locale catalogs, and add unit coverage for the new composables, components, and server modules.
130 lines
4.3 KiB
JSON
130 lines
4.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 validate:locales validate:styles 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",
|
|
"validate:locales": "node ./scripts/validate-locales.mjs",
|
|
"validate:styles": "node ./scripts/validate-styles.mjs",
|
|
"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/core": "2.14.4",
|
|
"@embedpdf/engines": "2.14.4",
|
|
"@embedpdf/models": "2.14.4",
|
|
"@embedpdf/pdfium": "2.14.4",
|
|
"@embedpdf/plugin-annotation": "2.14.4",
|
|
"@embedpdf/plugin-bookmark": "2.14.4",
|
|
"@embedpdf/plugin-document-manager": "2.14.4",
|
|
"@embedpdf/plugin-history": "2.14.4",
|
|
"@embedpdf/plugin-interaction-manager": "2.14.4",
|
|
"@embedpdf/plugin-pan": "2.14.4",
|
|
"@embedpdf/plugin-render": "2.14.4",
|
|
"@embedpdf/plugin-rotate": "2.14.4",
|
|
"@embedpdf/plugin-scroll": "2.14.4",
|
|
"@embedpdf/plugin-search": "2.14.4",
|
|
"@embedpdf/plugin-selection": "2.14.4",
|
|
"@embedpdf/plugin-spread": "2.14.4",
|
|
"@embedpdf/plugin-thumbnail": "2.14.4",
|
|
"@embedpdf/plugin-tiling": "2.14.4",
|
|
"@embedpdf/plugin-viewport": "2.14.4",
|
|
"@embedpdf/plugin-zoom": "2.14.4",
|
|
"@fontsource-variable/fraunces": "^5.3.0",
|
|
"@fontsource-variable/inter": "^5.3.0",
|
|
"@formatjs/icu-messageformat-parser": "^3.5.15",
|
|
"@lucide/vue": "1.24.0",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@tanstack/vue-table": "^8.21.3",
|
|
"@tanstack/vue-virtual": "^3.13.34",
|
|
"@tiptap/extension-link": "^3.29.0",
|
|
"@tiptap/pm": "^3.29.0",
|
|
"@tiptap/starter-kit": "^3.29.0",
|
|
"@tiptap/vue-3": "^3.29.0",
|
|
"@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.24.0",
|
|
"dompurify": "^3.4.12",
|
|
"driver.js": "^1.8.0",
|
|
"echarts": "^6.1.0",
|
|
"howler": "^2.2.4",
|
|
"intl-messageformat": "^11.2.12",
|
|
"pinia": "^3.0.4",
|
|
"reka-ui": "^2.10.1",
|
|
"socket.io-client": "^4.8.3",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"vite-plugin-pwa": "^1.3.0",
|
|
"vue": "^3.5.40",
|
|
"vue-draggable-plus": "^0.6.1",
|
|
"vue-echarts": "8.1.0-beta.2",
|
|
"vue-i18n": "^11.4.8",
|
|
"vue-router": "^5.2.0",
|
|
"vue-sonner": "^2.0.9",
|
|
"vue-virtual-scroller": "^3.0.4"
|
|
},
|
|
"devDependencies": {
|
|
"@intlify/message-compiler": "^11.4.8",
|
|
"@tsconfig/node24": "^24.0.4",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/jsdom": "^28.0.3",
|
|
"@types/node": "^26.1.1",
|
|
"@vite-pwa/assets-generator": "^1.0.2",
|
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"@vitest/eslint-plugin": "^1.6.24",
|
|
"@vue/eslint-config-typescript": "^14.9.0",
|
|
"@vue/test-utils": "^2.4.11",
|
|
"@vue/tsconfig": "^0.9.1",
|
|
"eslint": "^10.8.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-oxlint": "~1.73.0",
|
|
"eslint-plugin-vue": "~10.9.2",
|
|
"jiti": "^2.7.0",
|
|
"jsdom": "^29.1.1",
|
|
"npm-run-all2": "^9.0.2",
|
|
"oxlint": "~1.73.0",
|
|
"prettier": "3.9.5",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "~6.0.3",
|
|
"vite": "^8.1.5",
|
|
"vite-plugin-vue-devtools": "^8.2.1",
|
|
"vitest": "^4.1.10",
|
|
"vue-tsc": "^3.3.8"
|
|
},
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
}
|
|
}
|