mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 08:21:39 -06:00
cb2ea1e898
Each run sized its worker pool to the whole machine, so simultaneous runs drove the box into swap until no suite finished and tests began failing on the 5s default timeout. Serialize runs behind a lock, cap worker counts, and raise testTimeout. See scripts/dev/with-test-lock.mjs.
130 lines
4.4 KiB
JSON
130 lines
4.4 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": "node ../scripts/dev/with-test-lock.mjs -- vitest",
|
|
"test:cov": "node ../scripts/dev/with-test-lock.mjs -- 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",
|
|
"sync:crowdin": "node ./scripts/sync-crowdin-translations.mjs",
|
|
"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.15.0",
|
|
"@embedpdf/engines": "2.15.0",
|
|
"@embedpdf/models": "2.15.0",
|
|
"@embedpdf/pdfium": "2.15.0",
|
|
"@embedpdf/plugin-annotation": "2.15.0",
|
|
"@embedpdf/plugin-bookmark": "2.15.0",
|
|
"@embedpdf/plugin-document-manager": "2.15.0",
|
|
"@embedpdf/plugin-history": "2.15.0",
|
|
"@embedpdf/plugin-interaction-manager": "2.15.0",
|
|
"@embedpdf/plugin-pan": "2.15.0",
|
|
"@embedpdf/plugin-render": "2.15.0",
|
|
"@embedpdf/plugin-rotate": "2.15.0",
|
|
"@embedpdf/plugin-scroll": "2.15.0",
|
|
"@embedpdf/plugin-search": "2.15.0",
|
|
"@embedpdf/plugin-selection": "2.15.0",
|
|
"@embedpdf/plugin-spread": "2.15.0",
|
|
"@embedpdf/plugin-thumbnail": "2.15.0",
|
|
"@embedpdf/plugin-tiling": "2.15.0",
|
|
"@embedpdf/plugin-viewport": "2.15.0",
|
|
"@embedpdf/plugin-zoom": "2.15.0",
|
|
"@fontsource-variable/fraunces": "^5.3.0",
|
|
"@fontsource-variable/inter": "^5.3.0",
|
|
"@formatjs/icu-messageformat-parser": "^3.5.16",
|
|
"@lucide/vue": "1.31.0",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@tanstack/vue-virtual": "^3.13.35",
|
|
"@tiptap/extension-link": "^3.30.1",
|
|
"@tiptap/pm": "^3.30.1",
|
|
"@tiptap/starter-kit": "^3.30.1",
|
|
"@tiptap/vue-3": "^3.30.1",
|
|
"@types/howler": "^2.2.13",
|
|
"@vueuse/core": "^14.4.0",
|
|
"canvas-confetti": "^1.9.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cronstrue": "^3.24.0",
|
|
"dompurify": "^3.4.13",
|
|
"driver.js": "^1.8.0",
|
|
"echarts": "^6.1.0",
|
|
"howler": "^2.2.4",
|
|
"intl-messageformat": "^11.2.13",
|
|
"pinia": "^4.0.3",
|
|
"reka-ui": "^2.10.3",
|
|
"socket.io-client": "^4.8.3",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"vite-plugin-pwa": "^1.3.0",
|
|
"vue": "^3.5.41",
|
|
"vue-draggable-plus": "^0.6.1",
|
|
"vue-echarts": "8.1.0",
|
|
"vue-i18n": "^11.4.8",
|
|
"vue-router": "^5.2.0",
|
|
"vue-sonner": "^2.0.9",
|
|
"vue-virtual-scroller": "^3.0.5"
|
|
},
|
|
"devDependencies": {
|
|
"@intlify/message-compiler": "^11.4.8",
|
|
"@tsconfig/node24": "^24.0.5",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/jsdom": "^30.0.0",
|
|
"@types/node": "^26.2.0",
|
|
"@vite-pwa/assets-generator": "^1.0.2",
|
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
"@vue/eslint-config-typescript": "^14.9.0",
|
|
"@vue/test-utils": "^2.4.11",
|
|
"@vue/tsconfig": "^0.9.1",
|
|
"eslint": "^10.8.1",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-oxlint": "~1.78.0",
|
|
"eslint-plugin-vue": "~10.10.0",
|
|
"jiti": "^2.7.0",
|
|
"jsdom": "^30.0.1",
|
|
"npm-run-all2": "^9.0.3",
|
|
"oxlint": "~1.78.0",
|
|
"prettier": "3.9.6",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "~6.0.3",
|
|
"vite": "^8.2.1",
|
|
"vite-plugin-vue-devtools": "^8.2.1",
|
|
"vitest": "^4.1.10",
|
|
"vue-tsc": "^3.3.10"
|
|
},
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
}
|
|
}
|