Files
bookorbit/client/package.json
T
neon cb2ea1e898 build: serialize test runs so concurrent agents cannot saturate the machine
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.
2026-08-24 04:49:55 +00:00

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"
}
}