mirror of
https://github.com/sune-org/sune.git
synced 2026-04-06 23:42:14 +00:00
This build was committed by a bot.
This commit is contained in:
@@ -66,19 +66,6 @@ var buildBody = () => {
|
||||
messages: msgs,
|
||||
stream: true
|
||||
});
|
||||
if (SUNE.json_output) {
|
||||
let s;
|
||||
try {
|
||||
s = JSON.parse(SUNE.json_schema || "null");
|
||||
} catch {
|
||||
s = null;
|
||||
}
|
||||
if (s && typeof s === "object" && Object.keys(s).length > 0) b.response_format = {
|
||||
type: "json_schema",
|
||||
json_schema: s
|
||||
};
|
||||
else b.response_format = { type: "json_object" };
|
||||
}
|
||||
b.reasoning = {
|
||||
...SUNE.reasoning_effort && SUNE.reasoning_effort !== "default" ? { effort: SUNE.reasoning_effort } : {},
|
||||
exclude: !SUNE.include_thoughts
|
||||
@@ -268,7 +255,6 @@ var el = window.el = Object.fromEntries([
|
||||
"set_system_prompt",
|
||||
"set_hide_composer",
|
||||
"set_include_thoughts",
|
||||
"set_json_output",
|
||||
"set_img_output",
|
||||
"set_aspect_ratio",
|
||||
"set_image_size",
|
||||
@@ -300,7 +286,6 @@ var el = window.el = Object.fromEntries([
|
||||
"fileInput",
|
||||
"htmlEditor",
|
||||
"extensionHtmlEditor",
|
||||
"jsonSchemaEditor",
|
||||
"htmlTab_index",
|
||||
"htmlTab_extension",
|
||||
"suneHtml",
|
||||
@@ -325,8 +310,6 @@ var el = window.el = Object.fromEntries([
|
||||
"accountPanelGeneral",
|
||||
"accountPanelAPI",
|
||||
"set_gh_token",
|
||||
"gcpSAInput",
|
||||
"gcpSAUploadBtn",
|
||||
"importAccountSettings",
|
||||
"exportAccountSettings",
|
||||
"importAccountSettingsInput",
|
||||
@@ -866,12 +849,10 @@ var defaultSettings = {
|
||||
extension_html: "<sune src='https://raw.githubusercontent.com/sune-org/store/refs/heads/main/sync.sune' private></sune>",
|
||||
hide_composer: false,
|
||||
include_thoughts: false,
|
||||
json_output: false,
|
||||
img_output: false,
|
||||
aspect_ratio: "1:1",
|
||||
image_size: "1K",
|
||||
ignore_master_prompt: false,
|
||||
json_schema: ""
|
||||
ignore_master_prompt: false
|
||||
};
|
||||
var makeSune = (p = {}) => ({
|
||||
id: p.id || gid(),
|
||||
@@ -1642,15 +1623,13 @@ $(el.composer).on("submit", async (e) => {
|
||||
});
|
||||
var jars = {
|
||||
html: null,
|
||||
extension: null,
|
||||
jsonSchema: null
|
||||
extension: null
|
||||
};
|
||||
var ensureJars = async () => {
|
||||
if (jars.html && jars.extension && jars.jsonSchema) return jars;
|
||||
const mod = await __vitePreload(() => import("https://medv.io/codejar/codejar.js"), []), CodeJar = mod.CodeJar || mod.default, hl = (e) => e.innerHTML = hljs.highlight(e.textContent, { language: "xml" }).value, hl_json = (e) => e.innerHTML = hljs.highlight(e.textContent, { language: "json" }).value;
|
||||
if (jars.html && jars.extension) return jars;
|
||||
const mod = await __vitePreload(() => import("https://medv.io/codejar/codejar.js"), []), CodeJar = mod.CodeJar || mod.default, hl = (e) => e.innerHTML = hljs.highlight(e.textContent, { language: "xml" }).value;
|
||||
if (!jars.html) jars.html = CodeJar(el.htmlEditor, hl, { tab: " " });
|
||||
if (!jars.extension) jars.extension = CodeJar(el.extensionHtmlEditor, hl, { tab: " " });
|
||||
if (!jars.jsonSchema) jars.jsonSchema = CodeJar(el.jsonSchemaEditor, hl_json, { tab: " " });
|
||||
return jars;
|
||||
};
|
||||
var openedHTML = false;
|
||||
@@ -1670,7 +1649,6 @@ function openSettings() {
|
||||
el.set_reasoning_effort.value = s.reasoning_effort || "default";
|
||||
el.set_system_prompt.value = s.system_prompt;
|
||||
el.set_hide_composer.checked = !!s.hide_composer;
|
||||
el.set_json_output.checked = !!s.json_output;
|
||||
el.set_img_output.checked = !!s.img_output;
|
||||
el.set_aspect_ratio.value = s.aspect_ratio || "1:1";
|
||||
el.set_image_size.value = s.image_size || "1K";
|
||||
@@ -1693,11 +1671,7 @@ function showTab(key) {
|
||||
el[tb].classList.toggle("border-black", k === key);
|
||||
el[pn].classList.toggle("hidden", k !== key);
|
||||
});
|
||||
if (key === "Prompt") ensureJars().then(({ jsonSchema }) => {
|
||||
const s = SUNE.settings;
|
||||
jsonSchema.updateCode(s.json_schema || "");
|
||||
});
|
||||
else if (key === "Script") {
|
||||
if (key === "Script") {
|
||||
openedHTML = true;
|
||||
showHtmlTab("index");
|
||||
ensureJars().then(({ html, extension }) => {
|
||||
@@ -1733,13 +1707,11 @@ $(el.settingsForm).on("submit", async (e) => {
|
||||
SUNE.reasoning_effort = el.set_reasoning_effort.value || "default";
|
||||
SUNE.system_prompt = el.set_system_prompt.value.trim();
|
||||
SUNE.hide_composer = el.set_hide_composer.checked;
|
||||
SUNE.json_output = el.set_json_output.checked;
|
||||
SUNE.img_output = el.set_img_output.checked;
|
||||
SUNE.aspect_ratio = el.set_aspect_ratio.value;
|
||||
SUNE.image_size = el.set_image_size.value;
|
||||
SUNE.include_thoughts = el.set_include_thoughts.checked;
|
||||
SUNE.ignore_master_prompt = el.set_ignore_master_prompt.checked;
|
||||
SUNE.json_schema = el.jsonSchemaEditor.textContent;
|
||||
if (openedHTML) {
|
||||
SUNE.html = el.htmlEditor.textContent;
|
||||
SUNE.extension_html = el.extensionHtmlEditor.textContent;
|
||||
@@ -2104,8 +2076,6 @@ function openAccountSettings() {
|
||||
el.set_master_prompt.value = USER.masterPrompt || "";
|
||||
el.set_title_model.value = USER.titleModel;
|
||||
el.set_gh_token.value = USER.githubToken || "";
|
||||
const sa = USER.gcpSA;
|
||||
el.gcpSAUploadBtn.textContent = sa && sa.project_id ? `Uploaded: ${sa.project_id}` : "Upload .json";
|
||||
el.set_user_name.value = USER.name;
|
||||
el.userAvatarPreview.src = USER.avatar || "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
|
||||
el.userAvatarPreview.classList.toggle("bg-gray-200", !USER.avatar);
|
||||
@@ -2138,20 +2108,6 @@ $(el.accountSettingsForm).on("submit", (e) => {
|
||||
USER.name = String(el.set_user_name.value || "").trim();
|
||||
closeAccountSettings();
|
||||
});
|
||||
el.gcpSAUploadBtn.onclick = () => el.gcpSAInput.click();
|
||||
el.gcpSAInput.onchange = async (e) => {
|
||||
const f = e.target.files?.[0];
|
||||
if (!f) return;
|
||||
try {
|
||||
const t = await f.text(), d = JSON.parse(t);
|
||||
if (!d.project_id) throw new Error("Invalid");
|
||||
USER.gcpSA = d;
|
||||
el.gcpSAUploadBtn.textContent = `Uploaded: ${d.project_id}`;
|
||||
alert("GCP SA loaded.");
|
||||
} catch {
|
||||
alert("Failed to load GCP SA.");
|
||||
}
|
||||
};
|
||||
$(el.accountPanelAPI).on("click", (e) => {
|
||||
const b = e.target.closest("[data-reveal-for]");
|
||||
if (!b) return;
|
||||
@@ -2189,7 +2145,6 @@ el.exportAccountSettings.onclick = () => dl(`sune-account-${ts()}.json`, {
|
||||
masterPrompt: USER.masterPrompt,
|
||||
titleModel: USER.titleModel,
|
||||
githubToken: USER.githubToken,
|
||||
gcpSA: USER.gcpSA,
|
||||
userName: USER.name,
|
||||
userAvatar: USER.avatar
|
||||
});
|
||||
@@ -2214,11 +2169,10 @@ el.importAccountSettingsInput.onchange = async (e) => {
|
||||
titleModel: "titleModel",
|
||||
githubToken: "ghToken",
|
||||
name: "userName",
|
||||
avatar: "userAvatar",
|
||||
gcpSA: "gcpSA"
|
||||
avatar: "userAvatar"
|
||||
}).forEach(([p, k]) => {
|
||||
const v = d[p] ?? d[k];
|
||||
if (typeof v === "string" || p === "gcpSA" && typeof v === "object" && v) USER[p] = v;
|
||||
if (typeof v === "string") USER[p] = v;
|
||||
});
|
||||
openAccountSettings();
|
||||
alert("Imported.");
|
||||
6
dist/index.html
vendored
6
dist/index.html
vendored
@@ -14,7 +14,7 @@
|
||||
<script defer src="https://c.planetrenox.com/tracker.js"></script>
|
||||
|
||||
|
||||
<script type="module" crossorigin src="/assets/index-T6x9HO8d.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-DJ9iaRJI.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CLEI5Rwr.css">
|
||||
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
|
||||
<body class="bg-white text-gray-900 selection:bg-black/10" x-data @click.window="if($event.target.closest('button')) haptic(); if(!document.getElementById('threadPopover').contains($event.target)&&!$event.target.closest('[data-thread-menu]')) hideThreadPopover(); if(!document.getElementById('sunePopover').contains($event.target)&&!$event.target.closest('[data-sune-menu]')) hideSunePopover(); if(!document.getElementById('userMenu').contains($event.target)&&!document.getElementById('userMenuBtn').contains($event.target)) document.getElementById('userMenu').classList.add('hidden')">
|
||||
@@ -109,7 +109,6 @@
|
||||
</div>
|
||||
<div class="flex flex-wrap items-center gap-2 pt-2">
|
||||
<div><input id="set_include_thoughts" type="checkbox" class="sr-only peer"><label for="set_include_thoughts" class="inline-flex cursor-pointer items-center rounded-full border border-slate-300 bg-transparent py-0.5 px-3 text-xs text-slate-500 peer-checked:border-gray-300 peer-checked:bg-gray-200 peer-checked:text-slate-800">Include thoughts</label></div>
|
||||
<div><input id="set_json_output" type="checkbox" class="sr-only peer"><label for="set_json_output" class="inline-flex cursor-pointer items-center rounded-full border border-slate-300 bg-transparent py-0.5 px-3 text-xs text-slate-500 peer-checked:border-gray-300 peer-checked:bg-gray-200 peer-checked:text-slate-800">JSON Output</label></div>
|
||||
<div><input id="set_img_output" type="checkbox" class="sr-only peer"><label for="set_img_output" class="inline-flex cursor-pointer items-center rounded-full border border-slate-300 bg-transparent py-0.5 px-3 text-xs text-slate-500 peer-checked:border-gray-300 peer-checked:bg-gray-200 peer-checked:text-slate-800">IMG Output</label></div>
|
||||
<div><input id="set_hide_composer" type="checkbox" class="sr-only peer"><label for="set_hide_composer" class="inline-flex cursor-pointer items-center rounded-full border border-slate-300 bg-transparent py-0.5 px-3 text-xs text-slate-500 peer-checked:border-gray-300 peer-checked:bg-gray-200 peer-checked:text-slate-800">Hide composer</label></div>
|
||||
<div><input id="set_ignore_master_prompt" type="checkbox" class="sr-only peer"><label for="set_ignore_master_prompt" class="inline-flex cursor-pointer items-center rounded-full border border-slate-300 bg-transparent py-0.5 px-3 text-xs text-slate-500 peer-checked:border-gray-300 peer-checked:bg-gray-200 peer-checked:text-slate-800">Ignore master prompt</label></div>
|
||||
@@ -142,7 +141,6 @@
|
||||
</div>
|
||||
<div id="panelPrompt" class="p-4 space-y-4 hidden">
|
||||
<div><div class="flex items-center justify-between mb-1"><label for="set_system_prompt" class="block text-gray-700 font-medium">System Prompt</label><div class="flex gap-2"><button type="button" id="copySystemPrompt" class="px-2 py-1 text-xs rounded-md bg-gray-100 hover:bg-gray-200">Copy</button><button type="button" id="pasteSystemPrompt" class="px-2 py-1 text-xs rounded-md bg-gray-100 hover:bg-gray-200">Paste</button></div></div><textarea id="set_system_prompt" rows="8" class="w-full rounded-xl border border-gray-300 px-3 py-2" placeholder="Enter a system prompt to guide the sune"></textarea></div>
|
||||
<div><label class="block text-gray-700 font-medium mb-1">JSON Schema</label><pre id="jsonSchemaEditor" class="w-full h-48 p-3 rounded-xl border border-gray-300 bg-white overflow-auto font-mono" contenteditable="plaintext-only" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off"></pre><p class="mt-1 text-xs text-gray-500">Requires "JSON Output" to be enabled. Value for <code>json_schema</code>.</p></div>
|
||||
</div>
|
||||
<div id="panelScript" class="p-1 hidden">
|
||||
<div class="border-b flex text-xs font-medium"><button type="button" id="htmlTab_index" class="flex-1 py-2 px-3 text-center border-b-2"></button><button type="button" id="htmlTab_extension" class="flex-1 py-2 px-3 text-center border-b-2"></button></div>
|
||||
@@ -172,7 +170,7 @@
|
||||
<div><label class="block text-gray-700 font-medium mb-1">Master Prompt</label><textarea id="set_master_prompt" rows="6" class="w-full rounded-xl border border-gray-300 px-3 py-2" placeholder="Applies to all sunes on this device"></textarea><p class="mt-1 text-xs text-gray-500">Stored locally.</p></div>
|
||||
<div><label class="block text-gray-700 font-medium mb-1">Model preference for titles</label><input id="set_title_model" type="text" class="w-full rounded-xl border border-gray-300 px-3 py-2" placeholder="or:google/gemma-3-12b-it"/><p class="mt-1 text-xs text-gray-500">Used for auto-generating thread titles.</p></div>
|
||||
</div>
|
||||
<div id="accountPanelAPI" class="p-4 hidden"><div class="grid grid-cols-2 gap-x-4 gap-y-4"><div><label class="block text-gray-700 font-medium mb-1">OpenRouter Key</label><div class="relative"><input id="set_api_key_or" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-or-..."><button type="button" data-reveal-for="set_api_key_or" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenRouter</code></p></div><div><label class="block text-gray-700 font-medium mb-1">OpenAI Key</label><div class="relative"><input id="set_api_key_oai" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-..."><button type="button" data-reveal-for="set_api_key_oai" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenAI</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Google Key</label><div class="relative"><input id="set_api_key_g" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="AIza..."><button type="button" data-reveal-for="set_api_key_g" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Gemini/Studio. Use: <code>USER.apiKeyGoogle</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Claude Key</label><div class="relative"><input id="set_api_key_claude" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-ant-..."><button type="button" data-reveal-for="set_api_key_claude" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyClaude</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Cloudflare Token</label><div class="relative"><input id="set_api_key_cf" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="..."><button type="button" data-reveal-for="set_api_key_cf" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Not used. Use: <code>USER.apiKeyCloudflare</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Github Token</label><div class="relative"><input id="set_gh_token" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="ghp_..."><button type="button" data-reveal-for="set_gh_token" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.githubToken</code></p></div><div><label class="block text-gray-700 font-medium mb-1">GCP Service Acct</label><input id="gcpSAInput" type="file" class="hidden" accept="application/json,.json"><button type="button" id="gcpSAUploadBtn" class="w-full text-left rounded-xl border border-gray-300 bg-white px-3 py-2 text-sm hover:bg-gray-50 truncate">Upload .json</button><p class="mt-1 text-xs text-gray-500">Use: <code>USER.gcpSA</code></p></div></div></div>
|
||||
<div id="accountPanelAPI" class="p-4 hidden"><div class="grid grid-cols-2 gap-x-4 gap-y-4"><div><label class="block text-gray-700 font-medium mb-1">OpenRouter Key</label><div class="relative"><input id="set_api_key_or" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-or-..."><button type="button" data-reveal-for="set_api_key_or" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenRouter</code></p></div><div><label class="block text-gray-700 font-medium mb-1">OpenAI Key</label><div class="relative"><input id="set_api_key_oai" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-..."><button type="button" data-reveal-for="set_api_key_oai" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenAI</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Google Key</label><div class="relative"><input id="set_api_key_g" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="AIza..."><button type="button" data-reveal-for="set_api_key_g" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Gemini/Studio. Use: <code>USER.apiKeyGoogle</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Claude Key</label><div class="relative"><input id="set_api_key_claude" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-ant-..."><button type="button" data-reveal-for="set_api_key_claude" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyClaude</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Cloudflare Token</label><div class="relative"><input id="set_api_key_cf" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="..."><button type="button" data-reveal-for="set_api_key_cf" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Not used. Use: <code>USER.apiKeyCloudflare</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Github Token</label><div class="relative"><input id="set_gh_token" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="ghp_..."><button type="button" data-reveal-for="set_gh_token" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.githubToken</code></p></div></div></div>
|
||||
<div id="accountPanelUser" class="p-4 space-y-4 hidden">
|
||||
<div class="flex items-center gap-4">
|
||||
<div class="relative"><img id="userAvatarPreview" class="h-16 w-16 rounded-full object-cover bg-gray-200"><button type="button" id="setUserAvatarBtn" class="absolute bottom-0 right-0 h-6 w-6 rounded-full bg-white border border-gray-300 flex items-center justify-center hover:bg-gray-100" aria-label="Edit photo"><i data-lucide="edit-3" class="h-3 w-3"></i></button></div>
|
||||
|
||||
2
dist/sw.js
vendored
2
dist/sw.js
vendored
@@ -1 +1 @@
|
||||
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const d=e=>i(e,t),l={module:{uri:t},exports:o,require:d};s[t]=Promise.all(n.map(e=>l[e]||d(e))).then(e=>(r(...e),o))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"e7d5ad504badaa822189806bbd07fd56"},{url:"assets/index-T6x9HO8d.js",revision:null},{url:"assets/index-CLEI5Rwr.css",revision:null},{url:"manifest.webmanifest",revision:"7a6c5c6ab9cb5d3605d21df44c6b17a2"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
|
||||
if(!self.define){let e,i={};const s=(s,n)=>(s=new URL(s+".js",n).href,i[s]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()}).then(()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(i[t])return;let o={};const l=e=>s(e,t),c={module:{uri:t},exports:o,require:l};i[t]=Promise.all(n.map(e=>c[e]||l(e))).then(e=>(r(...e),o))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"33fcaf6f7bd99867597a096d1e26a32a"},{url:"assets/index-DJ9iaRJI.js",revision:null},{url:"assets/index-CLEI5Rwr.css",revision:null},{url:"manifest.webmanifest",revision:"7a6c5c6ab9cb5d3605d21df44c6b17a2"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
|
||||
|
||||
Reference in New Issue
Block a user