Publish Vulpes Preview 15 sources for desktop, Android and Tundra

Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

74
gaia/apps/music/sw.js Executable file
View file

@ -0,0 +1,74 @@
/* exported activitiesService, albumsService, artistsService, artworkService,
audioService, databaseService, navigationService, playlistService,
queueService, searchService, songsService */
/* global RESOURCES, Request, ServiceWorkerWare, ActivitiesService,
AlbumsService, ArtistsService, ArtworkService, AudioService,
DatabaseService, NavigationService, PlaylistService, QueueService,
SearchService, SongsService, caches, fetch */
'use strict';
importScripts('components/serviceworkerware/dist/sww.js');
importScripts('components/sww-raw-cache/dist/sww-raw-cache.js');
importScripts('js/services/activities.js');
importScripts('js/services/albums.js');
importScripts('js/services/artists.js');
importScripts('js/services/artwork.js');
importScripts('js/services/audio.js');
importScripts('js/services/database.js');
importScripts('js/services/navigation.js');
importScripts('js/services/playlist.js');
importScripts('js/services/queue.js');
importScripts('js/services/search.js');
importScripts('js/services/songs.js');
importScripts('resources.js');
var worker = new ServiceWorkerWare();
var activitiesService = new ActivitiesService(worker);
var albumsService = new AlbumsService(worker);
var artistsService = new ArtistsService(worker);
var artworkService = new ArtworkService(worker);
var audioService = new AudioService(worker);
var databaseService = new DatabaseService(worker);
var navigationService = new NavigationService(worker);
var playlistService = new PlaylistService(worker);
var queueService = new QueueService(worker);
var searchService = new SearchService(worker);
var songsService = new SongsService(worker);
worker.use({
onInstall: function() {
return caches.open('offline').then((cache) => {
var request = new Request('/index.html');
return fetch(request).then((response) => {
cache.put(request, response);
return response;
});
});
},
onFetch: function(request, response) {
// XXX: TEMP CONDITION FOR TESTING LOCALLY ON DESKTOP
if (request.url.startsWith('http://localhost:3030/media')) {
return request;
}
for (var i = RESOURCES.length - 1; i >= 0; i--) {
if (request.url.split('?')[0].split('#')[0].endsWith(RESOURCES[i])) {
return request;
}
}
return caches.open('offline').then((cache) => {
var request = new Request('/index.html');
return cache.match(request).then((response) => {
return response;
});
});
}
});
worker.use(new self.StaticCacher(RESOURCES));
worker.use(new self.SimpleOfflineCache());
worker.init();