import { fileURLToPath, URL } from "node:url"

import { defineConfig } from "vite"
import { VitePWA as vitePWA } from "vite-plugin-pwa"
import vue from "@vitejs/plugin-vue"
import vueJsx from "@vitejs/plugin-vue-jsx"
import unocss from "unocss/vite"

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    unocss(),
    vitePWA({
      registerType: "autoUpdate",
      useCredentials: true,
      manifest: {
        name: "Solar Network Agent",
        short_name: "Solian",
        description: "The Solar Network entrypoint.",
        theme_color: "#4b5094",
        display: "standalone",
        icons: [
          {
            src: "apple-touch-icon.png",
            sizes: "1024x1024",
            type: "image/png",
            purpose: "any"
          },
          {
            src: "favicon.png",
            sizes: "1024x1024",
            type: "image/png",
            purpose: "maskable"
          },
        ],
        screenshots: [
          {
            src: "screenshots/solarplaza.png",
            sizes: "2992x1714",
            type: "image/png",
            form_factor: "wide",
            label: "Exploring the Solar Network Plaza"
          }
        ]
      },
      workbox: {
        globPatterns: ["**/*.{js,css,ico,png,svg}"]
      },
      devOptions: {
        enabled: true,
      }
    })
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url))
    }
  },
  server: {
    proxy: {
      "/.well-known": "http://localhost:8445",
      "/api": "http://localhost:8445"
    }
  }
})
