121 lines
12 KiB
JavaScript
121 lines
12 KiB
JavaScript
|
(function () {
|
||
|
'use strict';
|
||
|
|
||
|
// This file is generated by Sapper — do not edit it!
|
||
|
const timestamp = 1630246359828;
|
||
|
|
||
|
const files = [
|
||
|
"/service-worker-index.html",
|
||
|
"/clipboard.svg",
|
||
|
"/code-brackets.svg",
|
||
|
"/colors.svg",
|
||
|
"/comments.svg",
|
||
|
"/direction.svg",
|
||
|
"/favicon.png",
|
||
|
"/flow.svg",
|
||
|
"/global.css",
|
||
|
"/logo-192.png",
|
||
|
"/logo-512.png",
|
||
|
"/manifest.json",
|
||
|
"/plugin.svg",
|
||
|
"/repo.svg",
|
||
|
"/stackalt.svg"
|
||
|
];
|
||
|
|
||
|
const shell = [
|
||
|
"/client/client.c97202b9.js",
|
||
|
"/client/inject_styles.5607aec6.js",
|
||
|
"/client/index.8acd0411.js",
|
||
|
"/client/settings.bc34a1df.js",
|
||
|
"/client/about.d6b80a2c.js",
|
||
|
"/client/sapper-dev-client.146c9185.js"
|
||
|
];
|
||
|
|
||
|
const ASSETS = `cache${timestamp}`;
|
||
|
|
||
|
// `shell` is an array of all the files generated by the bundler,
|
||
|
// `files` is an array of everything in the `static` directory
|
||
|
const to_cache = shell.concat(files);
|
||
|
const staticAssets = new Set(to_cache);
|
||
|
|
||
|
self.addEventListener('install', event => {
|
||
|
event.waitUntil(
|
||
|
caches
|
||
|
.open(ASSETS)
|
||
|
.then(cache => cache.addAll(to_cache))
|
||
|
.then(() => {
|
||
|
self.skipWaiting();
|
||
|
})
|
||
|
);
|
||
|
});
|
||
|
|
||
|
self.addEventListener('activate', event => {
|
||
|
event.waitUntil(
|
||
|
caches.keys().then(async keys => {
|
||
|
// delete old caches
|
||
|
for (const key of keys) {
|
||
|
if (key !== ASSETS) await caches.delete(key);
|
||
|
}
|
||
|
|
||
|
self.clients.claim();
|
||
|
})
|
||
|
);
|
||
|
});
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Fetch the asset from the network and store it in the cache.
|
||
|
* Fall back to the cache if the user is offline.
|
||
|
*/
|
||
|
async function fetchAndCache(request) {
|
||
|
const cache = await caches.open(`offline${timestamp}`);
|
||
|
|
||
|
try {
|
||
|
const response = await fetch(request);
|
||
|
cache.put(request, response.clone());
|
||
|
return response;
|
||
|
} catch (err) {
|
||
|
const response = await cache.match(request);
|
||
|
if (response) return response;
|
||
|
|
||
|
throw err;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
self.addEventListener('fetch', event => {
|
||
|
if (event.request.method !== 'GET' || event.request.headers.has('range')) return;
|
||
|
|
||
|
const url = new URL(event.request.url);
|
||
|
|
||
|
// don't try to handle e.g. data: URIs
|
||
|
const isHttp = url.protocol.startsWith('http');
|
||
|
const isDevServerRequest = url.hostname === self.location.hostname && url.port !== self.location.port;
|
||
|
const isStaticAsset = url.host === self.location.host && staticAssets.has(url.pathname);
|
||
|
const skipBecauseUncached = event.request.cache === 'only-if-cached' && !isStaticAsset;
|
||
|
|
||
|
if (isHttp && !isDevServerRequest && !skipBecauseUncached) {
|
||
|
event.respondWith(
|
||
|
(async () => {
|
||
|
// always serve static files and bundler-generated assets from cache.
|
||
|
// if your application has other URLs with data that will never change,
|
||
|
// set this variable to true for them and they will only be fetched once.
|
||
|
const cachedAsset = isStaticAsset && await caches.match(event.request);
|
||
|
|
||
|
// for pages, you might want to serve a shell `service-worker-index.html` file,
|
||
|
// which Sapper has generated for you. It's not right for every
|
||
|
// app, but if it's right for yours then uncomment this section
|
||
|
/*
|
||
|
if (!cachedAsset && url.origin === self.origin && routes.find(route => route.pattern.test(url.pathname))) {
|
||
|
return caches.match('/service-worker-index.html');
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
return cachedAsset || fetchAndCache(event.request);
|
||
|
})()
|
||
|
);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}());
|
||
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS13b3JrZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlX21vZHVsZXMvQHNhcHBlci9zZXJ2aWNlLXdvcmtlci5qcyIsIi4uLy4uL3NyYy9zZXJ2aWNlLXdvcmtlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IFNhcHBlciDigJQgZG8gbm90IGVkaXQgaXQhXG5leHBvcnQgY29uc3QgdGltZXN0YW1wID0gMTYzMDI0NjM1OTgyODtcblxuZXhwb3J0IGNvbnN0IGZpbGVzID0gW1xuXHRcIi9zZXJ2aWNlLXdvcmtlci1pbmRleC5odG1sXCIsXG5cdFwiL2NsaXBib2FyZC5zdmdcIixcblx0XCIvY29kZS1icmFja2V0cy5zdmdcIixcblx0XCIvY29sb3JzLnN2Z1wiLFxuXHRcIi9jb21tZW50cy5zdmdcIixcblx0XCIvZGlyZWN0aW9uLnN2Z1wiLFxuXHRcIi9mYXZpY29uLnBuZ1wiLFxuXHRcIi9mbG93LnN2Z1wiLFxuXHRcIi9nbG9iYWwuY3NzXCIsXG5cdFwiL2xvZ28tMTkyLnBuZ1wiLFxuXHRcIi9sb2dvLTUxMi5wbmdcIixcblx0XCIvbWFuaWZlc3QuanNvblwiLFxuXHRcIi9wbHVnaW4uc3ZnXCIsXG5cdFwiL3JlcG8uc3ZnXCIsXG5cdFwiL3N0YWNrYWx0LnN2Z1wiXG5dO1xuZXhwb3J0IHsgZmlsZXMgYXMgYXNzZXRzIH07IC8vIGxlZ2FjeVxuXG5leHBvcnQgY29uc3Qgc2hlbGwgPSBbXG5cdFwiL2NsaWVudC9jbGllbnQuYzk3MjAyYjkuanNcIixcblx0XCIvY2xpZW50L2luamVjdF9zdHlsZXMuNTYwN2FlYzYuanNcIixcblx0XCIvY2xpZW50L2luZGV4LjhhY2QwNDExLmpzXCIsXG5cdFwiL2NsaWVudC9zZXR0aW5ncy5iYzM0YTFkZi5qc1wiLFxuXHRcIi9jbGllbnQvYWJvdXQuZDZiODBhMmMuanNcIixcblx0XCIvY2xpZW50L3NhcHBlci1kZXYtY2xpZW50LjE0NmM5MTg1LmpzXCJcbl07XG5cbmV4cG9ydCBjb25zdCByb3V0ZXMgPSBbXG5cdHsgcGF0dGVybjogL15cXC8kLyB9LFxuXHR7IHBhdHRlcm46IC9eXFwvc2V0dGluZ3NcXC8/JC8gfSxcblx0eyBwYXR0ZXJuOiAvXlxcL2Fib3V0XFwvPyQvIH1cbl07IiwiaW1wb3J0IHsgdGltZXN0YW1wLCBmaWxlcywgc2hlbGwgfSBmcm9tICdAc2FwcGVyL3NlcnZpY2Utd29ya2VyJztcblxuY29uc3QgQVNTRVRTID0gYGNhY2hlJHt0aW1lc3RhbXB9YDtcblxuLy8gYHNoZWxsYCBpcyBhbiBhcnJheSBvZiBhbGwgdGhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgYnVuZGxlcixcbi8vIGBmaWxlc2AgaXMgYW4gYXJyYXkgb2YgZXZlcnl0aGluZyBpbiB0aGUgYHN0YXRpY2AgZGlyZWN0b3J5XG5jb25zdCB0b19jYWNoZSA9IHNoZWxsLmNvbmNhdChmaWxlcyk7XG5jb25zdCBzdGF0aWNBc3NldHMgPSBuZXcgU2V0KHRvX2NhY2hlKTtcblxuc2VsZi5hZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZXZlbnQgPT4ge1xuXHRldmVudC53YWl0VW50aWwoXG5cdFx0Y2FjaGVzXG5cdFx0XHQub3BlbihBU1NFVFMpXG5cdFx0XHQudGhlbihjYWNoZSA9PiBjYWNoZS5hZGRBbGwodG9fY2FjaGUpKVxuXHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRzZWxmLnNraXBXYWl0aW5nKCk7XG5cdFx0XHR9KVxuXHQpO1xufSk7XG5cbnNlbGYuYWRkRXZlbnRMaXN0ZW5lcignYWN0aXZhdGUnLCBldmVudCA9PiB7XG5cdGV2ZW50LndhaXRVbnRpbChcblx0XHRjYWNoZXMua2V5cygpLnRoZW4oYXN5bmMga2V5cyA9PiB7XG5cdFx0XHQvLyBkZWxldGUgb2xkIGNhY2hlc1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuXHRcdFx0XHRpZiAoa2V5ICE9PSBBU1NFVFMpIGF3YWl0IGNhY2hlcy5kZWxldGUoa2V5KTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZi5jbGllbnRzLmNsYWltKCk7XG5cdFx0fSlcblx0KTtcbn0pO1xuXG5cbi8qKlxuICogRmV0Y2ggdGhlIGFzc2V0IGZyb20gdGhlIG5ldHdvcmsgYW5kIHN0b3JlIGl0IGluIHRoZSBjYWNoZS4gXG4gKiBGYWxsIGJhY2sgdG8gdGhlIGNhY2hlIGlmIHRoZSB1c2VyIGlzIG9mZmxpbmUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQW5kQ2FjaGUocmVxdWVzdCkge1xuXHRjb25zdCBjYWNoZSA9IGF3YWl0IGNhY2hlcy5vcGVuKGBvZmZsaW5lJHt0aW1lc3RhbXB9YClcblxuXHR0cnkge1xuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdCk7XG5cdFx0Y2FjaGUucHV0KHJlcXVlc3QsIHJlc3BvbnNlLmNsb25lKCkpO1xuXHRcdHJldHVybiByZXNwb25zZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjYWNoZS5tYXRjaChyZXF1ZXN0KTtcblx0XHRpZiAocmVzcG9uc2UpIHJldHVybiByZXNwb25zZTtcblxuXHRcdHRocm93IGVycjtcblx0fVxufVxuXG5zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4ge1xuXHRpZiAoZXZlbnQucmVxdWVzdC5tZXRob2QgIT09ICdHRVQnIHx8IGV2ZW50LnJlcXVlc3QuaGVhZGVycy5oYXMoJ3JhbmdlJykpIHJldHVybjtcblxuXHRjb25zdCB1cmwgPSBuZXcgVVJMKGV2ZW50LnJlcXVlc3QudXJsKTtcblxuXHQvLyBkb24ndCB0cnkgdG8gaGFuZGxlIGUuZy4gZGF0YTogVVJJc1xuXHRjb25zdCBpc0h0dHAgPSB1cmwucHJvdG9jb2wuc3RhcnRzV2l0aCgnaHR0cCcpO1xuXHRjb25zdCBpc0RldlNlcnZlclJlcXVlc3QgPSB1cmwuaG9zdG5hbWUgPT09IHNlbGYubG9jYXRpb24uaG9zdG5hbWUgJiYgdXJsLnBvcnQgIT09IHNlbGYubG9jYXRpb24ucG9ydDtcblx0Y29uc3QgaXNTdGF0aWNBc3NldCA9IHVybC5ob3N0ID09PSBzZWxmLmxvY2F0aW9uLmhvc3QgJiYgc3RhdGljQXNzZXRzLmhhcyh1cmwucGF0aG5hbWUpO1xuXHRjb25zdCBza2lwQmVjYXVzZVVuY2FjaGVkID0gZXZlbnQucmVxdWVzdC5jYWNoZSA9PT0gJ29ubHktaWYtY2FjaGVkJyAmJiAhaXNTdGF0aWNBc3NldDtcblxuXHRpZiAoaXNIdHRwICYmICFpc0RldlNlcnZlclJlcXVlc3QgJiYgIXNraXBCZWNhdXNlVW5jYWNoZWQpIHtcblx0XHRldmVudC5yZXNwb25kV2l0aChcblx0XHRcdChhc3luYyAoKSA9PiB7XG5cdFx0XHRcdC8vIGFsd2F
|