This patch release bumps the version to 0.3.61 and introduces several key improvements across the stack. The backend `/info` route registration is deferred until after UPnP initialization to ensure the local server ID is correctly exposed. A new `GET /{id}/search` endpoint has been added to the pmosource API for querying music catalogs. On the frontend, Web Share Target support is enabled via Vite configuration and a dedicated composable that handles incoming URL parameters, playback state, and error notifications. Renderer selection state is also now exposed for UI synchronization.
89 lines
2.1 KiB
TypeScript
89 lines
2.1 KiB
TypeScript
import { defineConfig } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import { VitePWA } from 'vite-plugin-pwa'
|
|
import { fileURLToPath, URL } from 'node:url'
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
vue(),
|
|
VitePWA({
|
|
registerType: 'autoUpdate',
|
|
base: '/app/',
|
|
manifest: {
|
|
name: 'PMOMusic',
|
|
short_name: 'PMOMusic',
|
|
description: 'Contrôleur UPnP/DLNA pour votre musique',
|
|
start_url: '/app/',
|
|
display: 'standalone',
|
|
orientation: 'any',
|
|
theme_color: '#111827',
|
|
background_color: '#111827',
|
|
icons: [
|
|
{
|
|
src: '/app/icons/icon-192.png',
|
|
sizes: '192x192',
|
|
type: 'image/png',
|
|
},
|
|
{
|
|
src: '/app/icons/icon-512.png',
|
|
sizes: '512x512',
|
|
type: 'image/png',
|
|
purpose: 'any maskable',
|
|
},
|
|
],
|
|
share_target: {
|
|
action: '/app/',
|
|
method: 'GET',
|
|
params: {
|
|
url: 'share_url',
|
|
title: 'share_title',
|
|
text: 'share_text',
|
|
},
|
|
},
|
|
},
|
|
workbox: {
|
|
navigateFallback: '/app/index.html',
|
|
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
|
|
runtimeCaching: [
|
|
{
|
|
urlPattern: /^\/api\//,
|
|
handler: 'NetworkFirst',
|
|
options: {
|
|
cacheName: 'api-cache',
|
|
networkTimeoutSeconds: 5,
|
|
},
|
|
},
|
|
{
|
|
urlPattern: /^\/audio\//,
|
|
handler: 'NetworkOnly',
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
],
|
|
base: '/app/', // Base path pour le déploiement
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
}
|
|
},
|
|
server: {
|
|
proxy: {
|
|
'/api/webrenderer/ws': {
|
|
target: 'ws://localhost:8080',
|
|
ws: true,
|
|
changeOrigin: true,
|
|
},
|
|
'/api': {
|
|
target: 'http://localhost:8080',
|
|
changeOrigin: true,
|
|
},
|
|
'/audio': {
|
|
target: 'http://localhost:8080',
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
})
|