{ "name": "space.tab", "private": true, "version": "2.0.0", "type": "module", "scripts": { "dev": "nodemon -w src/server -x tsx src/server/main.ts", "start": "cross-env NODE_ENV=production tsx src/server/main.ts", "build": "vite build", "build:extension": "node scripts/build-extension.js", "docker": "docker-compose --env-file .env.production up -d --build" }, "dependencies": { "@barba/core": "^2.10.3", "@supabase/supabase-js": "^2.53.0", "@tailwindcss/vite": "^4.1.10", "@tanstack/vue-table": "^8.21.3", "@types/swagger-jsdoc": "^6.0.4", "@types/swagger-ui-express": "^4.1.8", "@vueuse/core": "^13.6.0", "@waline/client": "^3.5.7", "bcryptjs": "^3.0.2", "blueimp-md5": "^2.19.0", "canvas-confetti": "^1.9.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cors": "^2.8.5", "cross-env": "^7.0.3", "dayjs": "^1.11.13", "dotenv": "^16.5.0", "echarts": "^5.6.0", "express": "^5.1.0", "gsap": "^3.13.0", "helmet": "^8.1.0", "html2canvas": "^1.4.1", "ioredis": "^5.6.1", "js-cookie": "^3.0.5", "jsonwebtoken": "^9.0.2", "lodash-es": "^4.17.21", "lucide-vue-next": "^0.523.0", "moment-timezone": "^0.6.0", "morgan": "^1.10.0", "mysql2": "^3.14.1", "pinia": "^3.0.3", "reka-ui": "^2.4.1", "swagger-jsdoc": "^6.2.8", "swagger-ui-express": "^5.0.1", "tailwind-merge": "^3.3.1", "tailwindcss": "^4.1.10", "tsx": "^4.19.3", "tw-animate-css": "^1.3.4", "typescript": "^5.8.3", "uuid": "^11.1.0", "vaul-vue": "^0.4.1", "vite-express": "*", "vue": "^3.5.13", "vue-router": "^4.5.1", "vue-sonner": "^2.0.2", "vuex": "^4.1.0" }, "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.1", "@types/js-cookie": "^3.0.6", "@types/jsonwebtoken": "^9.0.10", "@types/morgan": "^1.9.10", "@types/node": "^22.15.2", "@types/uuid": "^10.0.0", "@vitejs/plugin-vue": "^5.2.3", "axios": "^1.11.0", "canvas": "^3.1.2", "cheerio": "^1.1.2", "nodemon": "^3.1.10", "vite": "^6.3.5", "vue-tsc": "^2.2.10" }, "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6" }