Remove deprecated root-level files after Vite migration
app.js replaced by src/ modules; sw.js, manifest.json, icon.svg moved to public/ — root copies were duplicates. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
9aded56713
commit
655cbe6893
4 files changed
-1943
No files matched your search
@@ -1,22 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<rect width="512" height="512" rx="90" fill="#07070f"/>
|
||||
<rect width="512" height="512" rx="90" fill="url(#bg)"/>
|
||||
<defs>
|
||||
<radialGradient id="bg" cx="30%" cy="40%" r="80%">
|
||||
<stop offset="0%" stop-color="#1a1a2e"/>
|
||||
<stop offset="100%" stop-color="#07070f"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<!-- Music note -->
|
||||
<g fill="#e8a020">
|
||||
<!-- Note head 1 -->
|
||||
<ellipse cx="180" cy="340" rx="48" ry="36" transform="rotate(-15 180 340)"/>
|
||||
<!-- Note head 2 -->
|
||||
<ellipse cx="332" cy="300" rx="48" ry="36" transform="rotate(-15 332 300)"/>
|
||||
<!-- Stem -->
|
||||
<rect x="218" y="160" width="18" height="185" rx="9"/>
|
||||
<rect x="370" y="120" width="18" height="185" rx="9"/>
|
||||
<!-- Beam -->
|
||||
<rect x="218" y="160" width="170" height="22" rx="11"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 855 B |
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"name": "NovaSonic",
|
||||
"short_name": "NovaSonic",
|
||||
"description": "Self-hosted music streaming PWA",
|
||||
"start_url": "/",
|
||||
"scope": "/",
|
||||
"display": "standalone",
|
||||
"orientation": "portrait-primary",
|
||||
"background_color": "#07070f",
|
||||
"theme_color": "#07070f",
|
||||
"icons": [
|
||||
{
|
||||
"src": "icon.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg+xml",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "icon.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg+xml",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
const CACHE = 'ns-v37';
|
||||
const PRECACHE = ['/', 'index.html', 'styles.css', 'app.js', 'manifest.json', 'icon.svg'];
|
||||
const SKIP_PATHS = ['/rest/stream', '/rest/download', '/config.js'];
|
||||
|
||||
self.addEventListener('install', e => {
|
||||
e.waitUntil(caches.open(CACHE).then(c => c.addAll(PRECACHE)));
|
||||
self.skipWaiting();
|
||||
});
|
||||
|
||||
self.addEventListener('activate', e => {
|
||||
e.waitUntil(
|
||||
caches.keys()
|
||||
.then(keys => Promise.all(keys.filter(k => k !== CACHE).map(k => caches.delete(k))))
|
||||
.then(() => self.clients.claim())
|
||||
.then(() => self.clients.matchAll({ type: 'window', includeUncontrolled: true }))
|
||||
.then(clients => clients.forEach(c => c.postMessage({ type: 'SW_UPDATED', version: CACHE })))
|
||||
);
|
||||
});
|
||||
|
||||
self.addEventListener('message', e => {
|
||||
if (e.data?.type === 'GET_VERSION') {
|
||||
e.source.postMessage({ type: 'VERSION', version: CACHE });
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('fetch', e => {
|
||||
if (!e.request.url.startsWith(self.location.origin)) return;
|
||||
if (SKIP_PATHS.some(p => e.request.url.includes(p))) return;
|
||||
e.respondWith(
|
||||
fetch(e.request)
|
||||
.then(res => {
|
||||
if (res.status === 200 && e.request.method === 'GET') {
|
||||
const clone = res.clone();
|
||||
caches.open(CACHE).then(c => c.put(e.request, clone));
|
||||
}
|
||||
return res;
|
||||
})
|
||||
.catch(() => caches.match(e.request).then(r => r || Response.error()))
|
||||
);
|
||||
});
|
||||
Reference in new issue
Block a user