{ "name": "blogging-desktop-server", "productName": "Blogging Desktop Server", "version": "1.0.0", "description": "A desktop blogging application with offline-first capabilities and cloud sync", "main": "dist/main/main.js", "scripts": { "dev": "concurrently --kill-others \"npm run dev:main\" \"npm run dev:renderer\" \"npm run dev:electron\"", "dev:main": "node ./node_modules/typescript/bin/tsc -p tsconfig.main.json --watch", "dev:renderer": "node ./node_modules/vite/bin/vite.js", "dev:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .", "start": "concurrently --kill-others \"npm run dev:renderer\" \"npm run start:electron\"", "start:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .", "build": "npm run db:generate && npm run build:main && npm run build:renderer", "build:main": "node ./node_modules/typescript/bin/tsc -p tsconfig.main.json", "build:renderer": "node ./node_modules/vite/bin/vite.js build", "start:prod": "node ./node_modules/electron/cli.js .", "start:dev": "cross-env NODE_ENV=development node ./node_modules/electron/cli.js .", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:ui": "vitest --ui", "db:generate": "node ./node_modules/drizzle-kit/bin.cjs generate", "db:migrate": "node ./node_modules/tsx/dist/cli.mjs src/main/database/migrate.ts", "db:studio": "node ./node_modules/drizzle-kit/bin.cjs studio" }, "author": "", "license": "MIT", "devDependencies": { "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", "@types/chokidar": "^1.7.5", "@types/node": "^25.2.3", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/turndown": "^5.0.6", "@vitejs/plugin-react": "^5.1.4", "@vitest/coverage-v8": "^4.0.18", "@vitest/ui": "^4.0.18", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "drizzle-kit": "^0.31.9", "electron": "^40.4.0", "electron-builder": "^26.7.0", "electron-store": "^11.0.2", "jsdom": "^28.0.0", "memfs": "^4.6.0", "tsx": "^4.6.0", "typescript": "^5.3.0", "uuid": "^13.0.0", "vite": "^7.3.1", "vitest": "^4.0.18", "wait-on": "^9.0.3" }, "dependencies": { "@floating-ui/dom": "^1.7.5", "@libsql/client": "^0.17.0", "@milkdown/kit": "^7.18.0", "@milkdown/plugin-block": "^7.18.0", "@milkdown/plugin-clipboard": "^7.18.0", "@milkdown/plugin-cursor": "^7.18.0", "@milkdown/plugin-history": "^7.18.0", "@milkdown/plugin-indent": "^7.18.0", "@milkdown/plugin-listener": "^7.18.0", "@milkdown/plugin-trailing": "^7.18.0", "@milkdown/react": "^7.18.0", "@milkdown/theme-nord": "^7.18.0", "@monaco-editor/react": "^4.7.0", "@picocss/pico": "^2.1.1", "@xmldom/xmldom": "^0.8.11", "chokidar": "^5.0.0", "date-fns": "^4.1.0", "drizzle-orm": "^0.45.1", "dropbox": "^10.34.0", "gray-matter": "^4.0.3", "lightbox2": "^2.11.5", "marked-react": "^3.0.2", "monaco-editor": "^0.55.1", "react": "^19.2.4", "react-dom": "^19.2.4", "react-hot-toast": "^2.6.0", "sharp": "^0.34.5", "simple-git": "^3.31.1", "snowball-stemmers": "^0.6.0", "turndown": "^7.2.2", "zod": "^4.3.6", "zustand": "^5.0.11" }, "overrides": { "@esbuild-kit/core-utils": { "esbuild": "0.27.3" } }, "build": { "appId": "com.bds.blogging-desktop-server", "productName": "Blogging Desktop Server", "directories": { "output": "release" }, "files": [ "dist/**/*", "drizzle/**/*", "node_modules/**/*" ], "extraResources": [ { "from": "drizzle", "to": "drizzle" } ], "win": { "target": "nsis" }, "mac": { "target": "dmg" }, "linux": { "target": "AppImage" } } }