{ "name": "serene-pub", "private": true, "version": "0.5.0-pr-16", "type": "module", "license": "AGPL-3.0", "bin": "build/index.js", "description": "Serene Pub is a modern, customizable chat application designed for immersive roleplay and creative conversations.", "author": { "name": "Jody Doolittle", "email": "jody@doolittle.me", "url": "https://github.com/doolijb" }, "repository": { "type": "git", "url": "https://github.com/doolijb/serene-pub.git" }, "homepage": "https://github.com/doolijb/serene-pub", "bugs": { "url": "https://github.com/doolijb/serene-pub/issues" }, "engines": { "node": ">=24" }, "scripts": { "dev": "vite dev", "dev:host": "vite dev --host", "build": "vite build && vite build --ssr && node scripts/customize-build.js", "start": "node build/index.js", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "test": "svelte-kit sync && vitest run", "test:watch": "svelte-kit sync && vitest", "format": "prettier --write .", "lint": "prettier --check .", "db:generate": "node scripts/check-db-lock.js drizzle-kit generate --config ./src/lib/server/db/drizzle.config.ts", "db:migrate": "node scripts/check-db-lock.js drizzle-kit migrate --config ./src/lib/server/db/drizzle.config.ts", "db:studio": "node scripts/check-db-lock.js drizzle-kit studio --config ./src/lib/server/db/drizzle.config.ts", "bundle": "node scripts/bundle-dist.js", "dist": "npm run build && npm run bundle", "create-executables": "node scripts/create-executables.js", "android:prepare": "node scripts/build-android.js", "android:build": "cd android && ./gradlew assembleRelease", "android:build:debug": "cd android && ./gradlew assembleDebug", "android:full": "npm run build && npm install --omit=dev && npm rebuild && npm run android:prepare && npm run android:build && npm install" }, "devDependencies": { "@enviro/metadata": "^1.5.1", "@fontsource/fira-mono": "^5.0.0", "@neoconfetti/svelte": "^2.0.0", "@skeletonlabs/skeleton": "^5.0.0", "@skeletonlabs/skeleton-svelte": "^5.0.0", "@sveltejs/adapter-node": "^5.2.12", "@sveltejs/kit": "^2.22.2", "@sveltejs/vite-plugin-svelte": "^5.1.0", "@tailwindcss/forms": "^0.5.10", "@tailwindcss/typography": "^0.5.15", "@tailwindcss/vite": "^4.0.0", "@types/js-yaml": "^4.0.9", "@types/lodash": "^4.17.17", "@types/node": "^20", "@types/pg": "^8.15.4", "@types/png-chunk-text": "^1.0.3", "@types/png-chunks-encode": "^1.0.2", "@types/png-chunks-extract": "^1.0.2", "@types/pngjs": "^6.0.5", "axios": "^1.9.0", "drizzle-kit": "^0.30.6", "env-paths": "^3.0.0", "js-yaml": "^4.1.0", "prettier": "^3.4.2", "prettier-plugin-svelte": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.11", "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", "svelte": "^5.35.4", "svelte-check": "^4.0.0", "tailwindcss": "^4.0.0", "tsx": "^4.20.3", "typescript": "^5.0.0", "vite": "^6.2.6", "vite-plugin-banner": "^0.8.1", "vitest": "^4.1.10" }, "dependencies": { "@ai-sdk/openai": "^2.0.64", "@anthropic-ai/sdk": "^0.105.0", "@codemirror/lang-css": "^6.3.1", "@codemirror/theme-one-dark": "^6.1.3", "@electric-sql/pglite": "^0.2.17", "@huggingface/transformers": "^4.2.0", "@lenml/char-card-reader": "^1.0.7", "@lenml/tokenizer-gemma": "^3.4.2", "@lmstudio/sdk": "^1.3.0", "@lucide/svelte": "^0.511.0", "@tiptap/core": "^2.22.3", "@tiptap/extension-placeholder": "^2.22.3", "@tiptap/starter-kit": "^2.22.3", "@types/diff": "^7.0.2", "ai": "^5.0.90", "codemirror": "^6.0.2", "diff": "^9.0.0", "dompurify": "^3.4.12", "dotenv": "^16.5.0", "drizzle-orm": "^0.40.0", "drizzle-zod": "^0.8.3", "file-type": "^21.0.0", "gpt-tokenizer": "^3.0.0", "handlebars": "^4.7.8", "intl": "^1.2.5", "llama-tokenizer-js": "^1.2.2", "llama3-tokenizer-js": "^1.2.0", "lodash": "^4.17.21", "marked": "^15.0.12", "mistral-tokenizer-js": "^1.0.0", "ollama": "^0.6.3", "open": "^10.1.2", "openai": "^5.3.0", "paseto": "^3.1.4", "pg": "^8.16.3", "png-chunk-text": "^1.0.0", "png-chunks-encode": "^1.0.0", "png-chunks-extract": "^1.0.0", "pngjs": "^7.0.0", "svelte-dnd-action": "^0.9.61", "sveltekit-io": "^1.0.13", "uuid": "^11.1.0", "zod": "^3.25.76", "zod-to-json-schema": "^3.24.6" } }