Backend: - Fix activity score (followersCount check), NIP-98 URL proto, wallet balance guard - Add payment_hash to confirm response, spentTodaySats to stats - Add idx_claims_ip_hash; security headers, graceful shutdown, periodic nonce cleanup Frontend: - Remove 8 legacy components; polish wizard (rules summary, profile card, confetti, share) - Stats budget bar uses spentTodaySats; ErrorBoundary with reload SEO & production: - Full meta/OG/Twitter, favicon, JSON-LD, robots.txt, sitemap.xml - Mobile CSS fixes; nginx static dist + gzip + cache + security headers - Vite manualChunks; aria-labels, dynamic page titles Made-with: Cursor
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
build: {
|
|
sourcemap: false,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
vendor: ["react", "react-dom", "react-router-dom"],
|
|
nostr: ["nostr-tools"],
|
|
ui: ["framer-motion", "qrcode", "canvas-confetti"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
preview: {
|
|
allowedHosts: ["faucet.lnpulse.app"],
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
proxy: {
|
|
"/api": {
|
|
target: "http://localhost:3001",
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api/, ""),
|
|
},
|
|
"/claim": { target: "http://localhost:3001", changeOrigin: true },
|
|
"/auth": { target: "http://localhost:3001", changeOrigin: true },
|
|
"/user": { target: "http://localhost:3001", changeOrigin: true },
|
|
"/config": { target: "http://localhost:3001", changeOrigin: true },
|
|
"/stats": { target: "http://localhost:3001", changeOrigin: true },
|
|
"/deposit": { target: "http://localhost:3001", changeOrigin: true },
|
|
},
|
|
},
|
|
});
|