{ "name": "devpush", "version": "1.1.0", "type": "module", "imports": { "#devpush/*": { "types": [ "./src/*.ts", "./src/*.tsx", "./src/*/index.ts" ], "default": "./src/*" }, "#devpush/plugins/registered-server": "./src/plugins/default.server.ts", "#devpush/plugins/registered-client": "./src/plugins/default.ui.ts" }, "scripts": { "dev": "pnpm db:migrate && node -r ./scripts/fs-watch-error-guard.cjs ./node_modules/vite/bin/vite.js dev --host 0.0.0.0 --port 7429 --strictPort", "generate-routes": "tsr generate", "build": "vite build", "build:cloudflare": "DEVPUSH_DEPLOY_TARGET=cloudflare vite build", "deploy:cloudflare:worker": "pnpm validate:cloudflare:config && pnpm build:cloudflare && wrangler deploy --config dist/server/wrangler.json --secrets-file \"${DEVPUSH_CLOUDFLARE_SECRETS_FILE:-.cloudflare-secrets.json}\"", "validate:cloudflare": "pnpm validate:cloudflare:config && pnpm build:cloudflare && wrangler deploy --config dist/server/wrangler.json --dry-run --secrets-file \"${DEVPUSH_CLOUDFLARE_SECRETS_FILE:-.cloudflare-secrets.json}\"", "validate:cloudflare:config": "tsx scripts/validate-cloudflare-config.mjs", "cf-typegen": "wrangler types --config wrangler.template.jsonc --env-file=cloudflare-types.env --include-runtime=false --strict-vars=false", "db:generate": "drizzle-kit generate", "db:migrate": "tsx --env-file-if-exists=.env scripts/migrate.ts", "db:migrate:cloudflare": "tsx scripts/migrate-cloudflare.mjs", "db:push": "drizzle-kit push", "db:studio": "drizzle-kit studio", "preview": "vite preview", "cleanup:invites": "tsx scripts/cleanup-expired-invites.ts", "cleanup:users": "tsx scripts/cleanup-deleted-users.ts", "smoke:deploy": "DEVPUSH_SMOKE_GITHUB_TOKEN=${DEVPUSH_SMOKE_GITHUB_TOKEN:-smoke-github-token} tsx scripts/smoke-deploy-lifecycle.ts", "test": "vitest run", "test:integration": "vitest run --config vitest.integration.config.ts", "typecheck": "tsc --noEmit", "lint": "eslint", "format": "prettier --write . && eslint --fix", "check": "prettier --check .", "db:generate:logs": "drizzle-kit generate --config drizzle.logs.config.ts", "test:integration:libsql": "DEVPUSH_TEST_LIBSQL=1 vitest run --config vitest.integration.config.ts", "smoke:worker": "node scripts/smoke-worker.mjs", "smoke:node": "node scripts/smoke-node.mjs", "smoke:dev": "DEVPUSH_SMOKE_DEVELOPMENT=1 node scripts/smoke-node.mjs", "cleanup:recover": "tsx --env-file-if-exists=.env scripts/deletion-recovery.ts", "build:package": "node scripts/build-package.mjs", "prepack": "pnpm build:package", "test:package": "node scripts/package-proof.mjs" }, "dependencies": { "@aws-sdk/client-s3": "3.1105.0", "@base-ui/react": "1.9.0", "@better-auth/cimd": "1.7.7", "@better-auth/core": "1.7.7", "@better-auth/drizzle-adapter": "1.7.7", "@better-auth/oauth-provider": "1.7.7", "@better-auth/utils": "0.4.2", "@clack/prompts": "1.7.0", "@cloudflare/vite-plugin": "1.62.4", "@fontsource-variable/inter": "5.2.8", "@fontsource/ibm-plex-mono": "5.3.0", "@libsql/client": "0.18.0", "@modelcontextprotocol/server": "2.3.1", "@react-email/components": "1.0.12", "@react-email/render": "2.0.8", "@tailwindcss/vite": "4.3.1", "@vitejs/plugin-react": "6.0.2", "better-auth": "1.7.7", "better-call": "1.4.0", "better-sqlite3": "12.11.1", "class-variance-authority": "0.7.1", "clsx": "2.1.1", "input-otp": "1.4.2", "jose": "6.2.3", "jsonc-parser": "3.3.1", "lucide-react": "0.545.0", "next-themes": "0.4.6", "nitro": "npm:nitro-nightly@3.0.1-20260821-005124-e36e7a60", "radix-ui": "1.5.0", "recharts": "3.8.0", "safe-regex2": "5.1.1", "sonner": "2.0.7", "tailwind-merge": "3.6.0", "tailwindcss": "4.3.1", "tslib": "2.8.1", "tw-animate-css": "1.4.0", "yaml": "2.9.0", "zod": "4.6.7" }, "devDependencies": { "@apidevtools/swagger-parser": "^13.1.0", "@cloudflare/workers-types": "^5.20261001.1", "@modelcontextprotocol/client": "2.3.1", "@tanstack/eslint-config": "0.4.0", "@tanstack/react-query": "5.102.8", "@tanstack/react-router": "1.170.41", "@tanstack/react-router-ssr-query": "1.167.2", "@tanstack/react-start": "1.168.60", "@tanstack/router-cli": "^1.132.0", "@types/better-sqlite3": "^9.6.0", "@types/node": "^22.10.2", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "drizzle-kit": "^0.31.10", "drizzle-orm": "0.45.2", "esbuild": "0.28.1", "eslint": "^10.9.1", "jsdom": "28.1.0", "miniflare": "5.20261001.0-alpha", "prettier": "^3.8.1", "react": "19.2.7", "react-dom": "19.2.7", "tsx": "^4.22.4", "typescript": "^6.0.2", "vite": "8.1.6", "vitest": "4.1.12", "wrangler": "^4.146.0" }, "exports": { "./vite": { "types": "./src/package/vite-api.d.ts", "import": "./dist/package/vite.mjs" }, "./styles.css": "./src/styles.css", "./package.json": "./package.json", "./migrate": { "types": "./src/package/migrate-api.d.ts", "import": "./dist/package/migrate.mjs" }, "./sqlite": "./src/package/sqlite.mjs", "./plugins": { "types": "./src/package/plugins.ts", "import": "./dist/package/plugins.mjs" }, "./plugins/server": "./src/plugins/server.ts", "./plugins/client": "./src/plugins/client.ts", "./ui/*": "./src/components/ui/*.tsx", "./env": "./src/package/env.mjs", "./dev/watch-guard": "./src/package/watch-guard.cjs", "./resource-avatar": "./src/components/resource-avatar.tsx" }, "files": [ "dist/package", "agent-release.json", "src", "public", "wrangler.template.jsonc", "!src/**/*.test.*", "!src/test", "!public/uploads", "!src/cli" ], "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/hunvreus/devpush.git", "directory": "app" }, "engines": { "node": ">=22.12.0" }, "peerDependencies": { "@tanstack/react-query": "5.102.8", "@tanstack/react-router": "1.170.41", "@tanstack/react-router-ssr-query": "1.167.2", "@tanstack/react-start": "1.168.60", "drizzle-orm": "0.45.2", "react": "^19.2.7", "react-dom": "^19.2.7", "vite": "8.1.6" }, "description": "Deploy Docker Compose applications to your own servers with a git push.", "homepage": "https://devpu.sh", "bin": { "devpush": "dist/package/cli.mjs" }, "keywords": [ "docker-compose", "deployment", "self-hosted", "cli" ] }