{ "name": "ai-novel-writing-assistant-v2", "private": true, "license": "AGPL-3.0-only", "packageManager": "pnpm@10.6.0", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "pnpm": ">=10.6.0" }, "scripts": { "check:deps": "node scripts/check-deps.cjs", "dev": "node scripts/check-deps.cjs && node scripts/run-with-log.cjs --name dev -- pnpm dev:raw", "dev:raw": "concurrently \"pnpm dev:shared\" \"pnpm dev:server\" \"pnpm dev:client\"", "dev:log": "node scripts/check-deps.cjs && node scripts/run-with-log.cjs --name dev -- pnpm dev:raw", "dev:shared": "pnpm --filter @ai-novel/shared dev", "dev:server": "pnpm --filter @ai-novel/server dev", "dev:server:log": "node scripts/run-with-log.cjs --name server -- pnpm --filter @ai-novel/server dev", "dev:client": "pnpm --filter @ai-novel/client dev", "dev:site": "pnpm --filter @ai-novel/site dev", "dev:client:wait": "node scripts/wait-for-port.cjs --port 3000 && pnpm dev:client", "prepare:desktop-runtime": "pnpm --filter @ai-novel/desktop prepare:runtime", "dev:desktop:shell": "node scripts/wait-for-port.cjs --port 3000 && node scripts/wait-for-port.cjs --port 5173 && pnpm --filter @ai-novel/desktop dev", "dev:desktop": "node scripts/check-deps.cjs && node scripts/run-with-log.cjs --name desktop-dev -- pnpm dev:desktop:raw", "dev:desktop:raw": "concurrently \"pnpm dev:shared\" \"pnpm dev:server\" \"pnpm dev:client:wait\" \"pnpm dev:desktop:shell\"", "db:migrate": "pnpm --filter @ai-novel/server db:migrate", "db:restore": "pnpm --filter @ai-novel/server db:restore", "db:prune-snapshots": "pnpm --filter @ai-novel/server db:prune-snapshots", "db:seed": "pnpm --filter @ai-novel/server db:seed", "db:studio": "pnpm --filter @ai-novel/server db:studio", "build": "pnpm --filter @ai-novel/shared build && pnpm --filter @ai-novel/server build && pnpm --filter @ai-novel/client build", "build:site": "pnpm --filter @ai-novel/site build", "check:docs-manifest": "node scripts/check-docs-manifest.cjs", "build:desktop": "pnpm --filter @ai-novel/desktop build", "build:desktop:all": "pnpm --filter @ai-novel/shared build && pnpm --filter @ai-novel/server prisma:generate && pnpm --filter @ai-novel/server build && pnpm --filter @ai-novel/client build:desktop && pnpm --filter @ai-novel/desktop build", "stage:desktop": "pnpm run build:desktop:all && node desktop/scripts/stage-desktop.cjs", "dist:desktop:nsis": "pnpm run stage:desktop && node desktop/scripts/run-electron-builder.cjs --win nsis --x64", "dist:desktop:nsis:reuse-stage": "node desktop/scripts/run-electron-builder.cjs --win nsis --x64", "dist:desktop": "pnpm run stage:desktop && node desktop/scripts/run-electron-builder.cjs --win --x64", "dist:desktop:reuse-stage": "node desktop/scripts/run-electron-builder.cjs --win --x64", "dist:desktop:portable": "pnpm run stage:desktop && node desktop/scripts/run-electron-builder.cjs --win portable --x64", "dist:desktop:portable:reuse-stage": "node desktop/scripts/run-electron-builder.cjs --win portable --x64", "publish:desktop:beta": "pnpm run stage:desktop && node desktop/scripts/publish-desktop-beta.cjs", "publish:desktop:beta:reuse-stage": "node desktop/scripts/publish-desktop-beta.cjs", "publish:desktop:release": "pnpm run stage:desktop && node desktop/scripts/publish-desktop-release.cjs", "publish:desktop:release:reuse-stage": "node desktop/scripts/publish-desktop-release.cjs", "release:desktop:bump": "node scripts/bump-desktop-version.cjs", "release:desktop:github": "node scripts/trigger-desktop-release.cjs", "verify:desktop-package": "pnpm run stage:desktop && node desktop/scripts/run-electron-builder.cjs --dir --win --x64 && node desktop/scripts/verify-desktop-package.cjs", "verify:desktop-package:reuse-stage": "node desktop/scripts/run-electron-builder.cjs --dir --win --x64 && node desktop/scripts/verify-desktop-package.cjs", "verify:desktop:installer": "pnpm run dist:desktop:nsis && node desktop/scripts/verify-desktop-installer.cjs", "typecheck": "pnpm --filter @ai-novel/shared build && pnpm --filter @ai-novel/server typecheck && pnpm --filter @ai-novel/client typecheck && pnpm --filter @ai-novel/desktop typecheck", "test": "pnpm --filter @ai-novel/server test", "test:client": "pnpm --filter @ai-novel/client test", "test:all": "pnpm --filter @ai-novel/server test:all && pnpm --filter @ai-novel/client test", "lint": "pnpm --filter @ai-novel/shared lint && pnpm --filter @ai-novel/server lint && pnpm --filter @ai-novel/client lint" }, "pnpm": { "onlyBuiltDependencies": [ "@prisma/engines", "better-sqlite3", "esbuild", "prisma" ], "ignoredBuiltDependencies": [ "electron", "electron-winstaller" ] }, "devDependencies": { "concurrently": "^9.2.1", "typescript": "^5.9.3" } }