1// Version of the service worker 2const CACHE_VERSION = 'v2026.05.04'; 3const OFFLINE_PAGE_URL = '/offline.html'; 4 5// Resources to cache 6const CACHE_FILES = [ 7 '/favicon.ico', 8 '/offline.html', 9 '/offline-icon.png', 10 '/offline-icon.svg', 11 '/assets/banner/slide-1.v3.png', 12 '/assets/banner/slide-2.v3.png', 13 '/assets/banner/slide-3.v3.png', 14 '/assets/banner/slide-4.v3.png', 15 '/assets/img/android-chrome-192x192.png', 16 '/assets/img/apple-touch-icon.png', 17 '/assets/img/browserconfig.xml', 18 '/assets/img/favicon-16x16.png', 19 '/assets/img/favicon-32x32.png', 20 '/assets/img/favicon.ico', 21 '/assets/img/bg-story.jpg', 22 '/assets/img/bg-meow.jpg', 23 '/assets/img/hero-bg.png', 24 '/assets/img/hero-bg-dark.png', 25 '/assets/img/mstile-144x144.png', 26 '/assets/img/safari-pinned-tab.svg', 27 '/assets/img/site.webmanifest', 28 '/assets/img/kamusmedis/1tengkorak.png', 29 '/assets/img/kamusmedis/2leher.png', 30 '/assets/img/kamusmedis/3badan.png', 31 '/assets/img/kamusmedis/4paha.png', 32 '/assets/img/kamusmedis/5iga.png', 33 '/assets/img/kamusmedis/6paha.png', 34 '/assets/img/kamusmedis/7betis.png', 35 '/assets/img/kamusmedis/8organ.png', 36 '/assets/img/kamusmedis/9otak.png', 37 '/assets/img/kamusmedis/10mata.png', 38 '/assets/img/kamusmedis/11organdalam.png', 39 '/assets/img/kamusmedis/12telinga.png', 40 '/assets/img/kamusmedis/13kulit.png', 41 '/assets/img/kamusmedis/14gigi.png', 42 '/assets/img/kamusmedis/15gigi.png', 43 '/assets/img/kamusmedis/16gigi.png', 44 '/assets/img/kamusmedis/17mulut.png', 45 '/assets/img/kamusmedis/18alirandarah.png', 46 '/assets/logo/dpj.png', 47 '/assets/logo/dpj-dark.png', 48 '/assets/logo/dpj.light.png', 49 '/assets/logo/dpj.dark.png', 50 '/assets/logo/dpj.light.webp', 51 '/assets/logo/dpj.dark.webp', 52 '/assets/logo/pdpbs.png', 53 '/assets/logo/pdpbs-dark.png', 54 '/assets/logo/sundadigi-dark.v2.png', 55 '/assets/logo/sundadigi-square-v2.png',
56 '/assets/logo/logo-unpad.png', 57 '/assets/logo/logo-unpad-dark.png', 58 '/assets/logo/unity.logo.png', 59 '/assets/logo/unity.logo-dark.png', 60 '/assets/logo/unity.bjb.png', 61 '/assets/logo/unity.bjb.dark.png', 62 '/assets/menu.neo/aksara.webp', 63 '/assets/menu.neo/aksara_android.webp', 64 '/assets/menu.neo/aksara_konversi.webp', 65 '/assets/menu.neo/aksara_panduan.webp', 66 '/assets/menu.neo/aksara_pc.webp', 67 '/assets/aksara/s5-rules.png', 68 '/assets/aksara/s6-sundasni.png', 69 '/assets/menu.neo/awak_sakujur.webp', 70 '/assets/menu.neo/bacaan.webp', 71 '/assets/menu.neo/bewara.webp', 72 '/assets/menu.neo/buku.webp', 73 '/assets/menu.neo/cerpen.webp', 74 '/assets/menu.neo/dasbor.webp', 75 '/assets/menu.neo/drama.webp', 76 '/assets/menu.neo/fiksimini.webp', 77 '/assets/menu.neo/foreigners.webp', 78 '/assets/menu.neo/games.webp', 79 '/assets/menu.neo/gending_karesmen.webp', 80 '/assets/menu.neo/guguritan.webp', 81 '/assets/menu.neo/guru.webp', 82 '/assets/menu.neo/inohong.webp', 83 '/assets/menu.neo/humor.webp', 84 '/assets/menu.neo/jurnal.webp', 85 '/assets/menu.neo/kalawarta.webp', 86 '/assets/menu.neo/kamus.webp', 87 '/assets/menu.neo/kamusmedis.webp', 88 '/assets/menu.neo/kuliner.webp', 89 '/assets/menu.neo/kuis.webp', 90 '/assets/menu.neo/keurseus.webp', 91 '/assets/menu.neo/lopian.webp', 92 '/assets/menu.neo/manuskrip.webp', 93 '/assets/menu.neo/materi.webp', 94 '/assets/menu.neo/novel.webp', 95 '/assets/menu.neo/pancakaki.webp', 96 '/assets/menu.neo/peperenian.webp', 97 '/assets/menu.neo/puisi.webp', 98 '/assets/menu.neo/puisi_buhun.webp', 99 '/assets/menu.neo/pupujian.webp', 100 '/assets/menu.neo/quran.webp', 101 '/assets/menu.neo/sajak.webp', 102 '/assets/menu.neo/sawer.webp', 103 '/assets/menu.neo/sisindiran.webp', 104 '/assets/menu.neo/siswa.webp', 105 '/assets/menu.neo/tanya-baru.webp', 106 '/assets/menu.neo/tanya-instan.webp', 107 '/assets/menu.neo/tanyapr.webp', 108 '/assets/menu.neo/tarucing_cakra.webp', 109 '/assets/menu.neo/tembang.webp', 110 '/assets/menu.neo/translator.webp', 111 '/assets/menu.neo/trinkets.webp', 112 '/assets/menu.neo/ubarkaruhun.webp', 113 '/assets/menu.neo/warung.webp', 114 '/assets/menu.neo/wawacan.webp', 115 '/assets/menu.neo/wayang.webp' 116]; 117 118self.addEventListener('install', function (event) { 119 event.waitUntil( 120 caches.open(CACHE_VERSION).then(function (cache) { 121 return cache.addAll(CACHE_FILES); 122 }) 123 ); 124}); 125 126self.addEventListener('fetch', function (event) { 127 const url = event.request.url; 128 129 // Exclude core CSS/JS from being cached so updates show immediately 130 if (url.includes('sundadigi.css') || url.includes('sundadigi.js')) { 131 event.respondWith(fetch(event.request)); 132 return; 133 } 134 135 event.respondWith( 136 caches.match(event.request).then(function (response) { 137 if (response) { 138 return response; 139 } else { 140 return fetch(event.request) 141 .then(function (res) { 142 if (res.status === 200) { 143 // Cache the response using the Cache API 144 const responseToCache = res.clone(); 145 caches.open(CACHE_VERSION).then(function (cache) { 146 cache.put(event.request, responseToCache); 147 }); 148 } 149 return res; 150 }) 151 .catch(function (err) { 152 console.error('Fetching failed', err); 153 return caches.match(OFFLINE_PAGE_URL); 154 }); 155 } 156 }) 157 ); 158}); 159 160self.addEventListener('activate', function (event) { 161 const cacheWhitelist = [CACHE_VERSION]; 162 163 event.waitUntil( 164 caches.keys().then(function (cacheNames) { 165 return Promise.all( 166 cacheNames.map(function (cacheName) { 167 if (cacheWhitelist.indexOf(cacheName) === -1) { 168 return caches.delete(cacheName); 169 } 170 }) 171 ); 172 }) 173 ); 174});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.