Add annotation websocket and texthooker startup config

- Add `texthooker.launchAtStartup` (default `true`) and wire startup behavior
- Add dedicated `annotationWebsocket` config/service path (default port `6678`) for texthooker annotations
- Regenerate config example/tests and update Yomitan patching/vendor assets
This commit is contained in:
sudacode committed 2026-03-07 01:41:08 -08:00
1 parent 1d76e05cd3
commit 5d96f9d535
24 files changed
+1600 -180

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
/*
* Copyright (C) 2024-2025 Yomitan Authors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/** @type {import('language').TextProcessor} */
export const removeApostrophedWords = {
name: 'Remove common apostrophed words',
description: 'dell\'Italia > Italia, c\'erano > erano',
process: (str) => [
str,
removeApostrophedWordsImpl(str),
],
};
/**
* @param {string} word
* @returns {string}
*/
export function removeApostrophedWordsImpl(word) {
return word.replace(/(l|dell|all|dall|nell|sull|coll|un|quest|quell|c|n)['’]/g, '');
}
+570
View File
@@ -0,0 +1,570 @@
// @ts-nocheck
// node_modules/@bokuweb/zstd-wasm/dist/web/zstd.js
var Module = typeof Module !== "undefined" ? Module : {};
var moduleOverrides = {};
var key;
for (key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key];
}
}
var arguments_ = [];
var err = Module["printErr"] || console.warn.bind(console);
for (key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key];
}
}
var quit_ = (status, toThrow) => {
throw toThrow;
};
moduleOverrides = null;
if (Module["arguments"])
arguments_ = Module["arguments"];
if (Module["thisProgram"])
thisProgram = Module["thisProgram"];
if (Module["quit"])
quit_ = Module["quit"];
if (typeof WebAssembly !== "object") {
abort("no native wasm support detected");
}
var wasmMemory;
var ABORT = false;
var EXITSTATUS;
var HEAPU8;
var HEAP8;
function updateMemoryViews() {
var b = wasmMemory.buffer;
Module["HEAP8"] = HEAP8 = new Int8Array(b);
Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
}
var __ATPRERUN__ = [];
var __ATINIT__ = [];
var __ATPOSTRUN__ = [];
var runtimeInitialized = false;
function preRun() {
if (Module["preRun"]) {
if (typeof Module["preRun"] == "function")
Module["preRun"] = [Module["preRun"]];
while (Module["preRun"].length) {
addOnPreRun(Module["preRun"].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function initRuntime() {
runtimeInitialized = true;
callRuntimeCallbacks(__ATINIT__);
}
function postRun() {
if (Module["postRun"]) {
if (typeof Module["postRun"] == "function")
Module["postRun"] = [Module["postRun"]];
while (Module["postRun"].length) {
addOnPostRun(Module["postRun"].shift());
}
}
callRuntimeCallbacks(__ATPOSTRUN__);
}
function addOnPreRun(cb) {
__ATPRERUN__.unshift(cb);
}
function addOnInit(cb) {
__ATINIT__.unshift(cb);
}
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
var runDependencies = 0;
var dependenciesFulfilled = null;
function addRunDependency(id) {
var _a;
runDependencies++;
(_a = Module["monitorRunDependencies"]) === null || _a === void 0 ? void 0 : _a.call(Module, runDependencies);
}
function removeRunDependency(id) {
var _a;
runDependencies--;
(_a = Module["monitorRunDependencies"]) === null || _a === void 0 ? void 0 : _a.call(Module, runDependencies);
if (runDependencies == 0) {
if (dependenciesFulfilled) {
var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
callback();
}
}
}
function abort(what) {
var _a;
(_a = Module["onAbort"]) === null || _a === void 0 ? void 0 : _a.call(Module, what);
what = "Aborted(" + what + ")";
err(what);
ABORT = true;
what += ". Build with -sASSERTIONS for more info.";
var e = new WebAssembly.RuntimeError(what);
throw e;
}
function getWasmImports() {
return { a: wasmImports };
}
function getBinaryPromise(url) {
return fetch(url, { credentials: "same-origin" }).then(function(response) {
if (!response["ok"]) {
throw "failed to load wasm binary file at '" + url + "'";
}
return response["arrayBuffer"]();
});
}
function init(filePathOrBuf) {
var info = getWasmImports();
function receiveInstance(instance, module) {
wasmExports = instance.exports;
wasmMemory = wasmExports["f"];
updateMemoryViews();
addOnInit(wasmExports["g"]);
removeRunDependency("wasm-instantiate");
return wasmExports;
}
addRunDependency("wasm-instantiate");
function receiveInstantiationResult(result) {
receiveInstance(result["instance"]);
}
function instantiateArrayBuffer(receiver) {
return getBinaryPromise(filePathOrBuf).then(function(binary) {
var result = WebAssembly.instantiate(binary, info);
return result;
}).then(receiver, function(reason) {
err("failed to asynchronously prepare wasm: " + reason);
abort(reason);
});
}
function instantiateAsync() {
if (filePathOrBuf && filePathOrBuf.byteLength > 0) {
return WebAssembly.instantiate(filePathOrBuf, info).then(receiveInstantiationResult, function(reason) {
err("wasm compile failed: " + reason);
});
} else if (typeof WebAssembly.instantiateStreaming === "function" && typeof filePathOrBuf === "string" && typeof fetch === "function") {
return fetch(filePathOrBuf, { credentials: "same-origin" }).then(function(response) {
var result = WebAssembly.instantiateStreaming(response, info);
return result.then(receiveInstantiationResult, function(reason) {
err("wasm streaming compile failed: " + reason);
err("falling back to ArrayBuffer instantiation");
return instantiateArrayBuffer(receiveInstantiationResult);
});
});
} else {
return instantiateArrayBuffer(receiveInstantiationResult);
}
}
if (Module["instantiateWasm"]) {
try {
var exports = Module["instantiateWasm"](info, receiveInstance);
return exports;
} catch (e) {
err("Module.instantiateWasm callback failed with error: " + e);
return false;
}
}
instantiateAsync();
return {};
}
var ExitStatus = class {
constructor(status) {
this.name = "ExitStatus";
this.message = `Program terminated with exit(${status})`;
this.status = status;
}
};
var callRuntimeCallbacks = (callbacks) => {
while (callbacks.length > 0) {
callbacks.shift()(Module);
}
};
var noExitRuntime = Module["noExitRuntime"] || true;
var __abort_js = () => abort("");
var runtimeKeepaliveCounter = 0;
var __emscripten_runtime_keepalive_clear = () => {
noExitRuntime = false;
runtimeKeepaliveCounter = 0;
};
var timers = {};
var handleException = (e) => {
if (e instanceof ExitStatus || e == "unwind") {
return EXITSTATUS;
}
quit_(1, e);
};
var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
var _proc_exit = (code) => {
var _a;
EXITSTATUS = code;
if (!keepRuntimeAlive()) {
(_a = Module["onExit"]) === null || _a === void 0 ? void 0 : _a.call(Module, code);
ABORT = true;
}
quit_(code, new ExitStatus(code));
};
var exitJS = (status, implicit) => {
EXITSTATUS = status;
_proc_exit(status);
};
var _exit = exitJS;
var maybeExit = () => {
if (!keepRuntimeAlive()) {
try {
_exit(EXITSTATUS);
} catch (e) {
handleException(e);
}
}
};
var callUserCallback = (func) => {
if (ABORT) {
return;
}
try {
func();
maybeExit();
} catch (e) {
handleException(e);
}
};
var _emscripten_get_now = () => performance.now();
var __setitimer_js = (which, timeout_ms) => {
if (timers[which]) {
clearTimeout(timers[which].id);
delete timers[which];
}
if (!timeout_ms)
return 0;
var id = setTimeout(() => {
delete timers[which];
callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
}, timeout_ms);
timers[which] = { id, timeout_ms };
return 0;
};
var getHeapMax = () => 2147483648;
var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
var growMemory = (size) => {
var b = wasmMemory.buffer;
var pages = (size - b.byteLength + 65535) / 65536 | 0;
try {
wasmMemory.grow(pages);
updateMemoryViews();
return 1;
} catch (e) {
}
};
var _emscripten_resize_heap = (requestedSize) => {
var oldSize = HEAPU8.length;
requestedSize >>>= 0;
var maxHeapSize = getHeapMax();
if (requestedSize > maxHeapSize) {
return false;
}
for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
var replacement = growMemory(newSize);
if (replacement) {
return true;
}
}
return false;
};
var wasmImports = {
c: __abort_js,
b: __emscripten_runtime_keepalive_clear,
d: __setitimer_js,
e: _emscripten_resize_heap,
a: _proc_exit
};
var wasmExports;
var _ZSTD_isError = Module["_ZSTD_isError"] = (a0) => (_ZSTD_isError = Module["_ZSTD_isError"] = wasmExports["h"])(a0);
var _ZSTD_compressBound = Module["_ZSTD_compressBound"] = (a0) => (_ZSTD_compressBound = Module["_ZSTD_compressBound"] = wasmExports["i"])(a0);
var _ZSTD_createCCtx = Module["_ZSTD_createCCtx"] = () => (_ZSTD_createCCtx = Module["_ZSTD_createCCtx"] = wasmExports["j"])();
var _ZSTD_freeCCtx = Module["_ZSTD_freeCCtx"] = (a0) => (_ZSTD_freeCCtx = Module["_ZSTD_freeCCtx"] = wasmExports["k"])(a0);
var _ZSTD_compress_usingDict = Module["_ZSTD_compress_usingDict"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (_ZSTD_compress_usingDict = Module["_ZSTD_compress_usingDict"] = wasmExports["l"])(a0, a1, a2, a3, a4, a5, a6, a7);
var _ZSTD_compress = Module["_ZSTD_compress"] = (a0, a1, a2, a3, a4) => (_ZSTD_compress = Module["_ZSTD_compress"] = wasmExports["m"])(a0, a1, a2, a3, a4);
var _ZSTD_createDCtx = Module["_ZSTD_createDCtx"] = () => (_ZSTD_createDCtx = Module["_ZSTD_createDCtx"] = wasmExports["n"])();
var _ZSTD_freeDCtx = Module["_ZSTD_freeDCtx"] = (a0) => (_ZSTD_freeDCtx = Module["_ZSTD_freeDCtx"] = wasmExports["o"])(a0);
var _ZSTD_getFrameContentSize = Module["_ZSTD_getFrameContentSize"] = (a0, a1) => (_ZSTD_getFrameContentSize = Module["_ZSTD_getFrameContentSize"] = wasmExports["p"])(a0, a1);
var _ZSTD_decompress_usingDict = Module["_ZSTD_decompress_usingDict"] = (a0, a1, a2, a3, a4, a5, a6) => (_ZSTD_decompress_usingDict = Module["_ZSTD_decompress_usingDict"] = wasmExports["q"])(a0, a1, a2, a3, a4, a5, a6);
var _ZSTD_decompress = Module["_ZSTD_decompress"] = (a0, a1, a2, a3) => (_ZSTD_decompress = Module["_ZSTD_decompress"] = wasmExports["r"])(a0, a1, a2, a3);
var _malloc = Module["_malloc"] = (a0) => (_malloc = Module["_malloc"] = wasmExports["s"])(a0);
var _free = Module["_free"] = (a0) => (_free = Module["_free"] = wasmExports["t"])(a0);
var __emscripten_timeout = (a0, a1) => (__emscripten_timeout = wasmExports["v"])(a0, a1);
var calledRun;
dependenciesFulfilled = function runCaller() {
if (!calledRun)
run();
if (!calledRun)
dependenciesFulfilled = runCaller;
};
function run() {
if (runDependencies > 0) {
return;
}
preRun();
if (runDependencies > 0) {
return;
}
function doRun() {
var _a;
if (calledRun)
return;
calledRun = true;
Module["calledRun"] = true;
if (ABORT)
return;
initRuntime();
(_a = Module["onRuntimeInitialized"]) === null || _a === void 0 ? void 0 : _a.call(Module);
postRun();
}
if (Module["setStatus"]) {
Module["setStatus"]("Running...");
setTimeout(() => {
setTimeout(() => Module["setStatus"](""), 1);
doRun();
}, 1);
} else {
doRun();
}
}
Module["run"] = run;
if (Module["preInit"]) {
if (typeof Module["preInit"] == "function")
Module["preInit"] = [Module["preInit"]];
while (Module["preInit"].length > 0) {
Module["preInit"].pop()();
}
}
Module["init"] = init;
// node_modules/@bokuweb/zstd-wasm/dist/web/module.js
var __awaiter = function(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function(resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var initialized = (() => new Promise((resolve) => {
Module.onRuntimeInitialized = resolve;
}))();
var waitInitialized = () => __awaiter(void 0, void 0, void 0, function* () {
yield initialized;
});
// node_modules/@bokuweb/zstd-wasm/dist/web/errors/index.js
var isError = (code) => {
const _isError = Module["_ZSTD_isError"];
return _isError(code);
};
// node_modules/@bokuweb/zstd-wasm/dist/web/simple/decompress.js
var getFrameContentSize = (src, size) => {
const getSize = Module["_ZSTD_getFrameContentSize"];
return getSize(src, size);
};
var decompress = (buf, opts = { defaultHeapSize: 1024 * 1024 }) => {
const malloc = Module["_malloc"];
const src = malloc(buf.byteLength);
Module.HEAP8.set(buf, src);
const contentSize = getFrameContentSize(src, buf.byteLength);
const size = contentSize === -1 ? opts.defaultHeapSize : contentSize;
const free = Module["_free"];
const heap = malloc(size);
try {
const _decompress = Module["_ZSTD_decompress"];
const sizeOrError = _decompress(heap, size, src, buf.byteLength);
if (isError(sizeOrError)) {
throw new Error(`Failed to compress with code ${sizeOrError}`);
}
const data = new Uint8Array(Module.HEAPU8.buffer, heap, sizeOrError).slice();
free(heap, size);
free(src, buf.byteLength);
return data;
} catch (e) {
free(heap, size);
free(src, buf.byteLength);
throw e;
}
};
// node_modules/@bokuweb/zstd-wasm/dist/web/simple/compress.js
var compressBound = (size) => {
const bound = Module["_ZSTD_compressBound"];
return bound(size);
};
var compress = (buf, level) => {
const bound = compressBound(buf.byteLength);
const malloc = Module["_malloc"];
const compressed = malloc(bound);
const src = malloc(buf.byteLength);
Module.HEAP8.set(buf, src);
const free = Module["_free"];
try {
const _compress = Module["_ZSTD_compress"];
const sizeOrError = _compress(compressed, bound, src, buf.byteLength, level !== null && level !== void 0 ? level : 3);
if (isError(sizeOrError)) {
throw new Error(`Failed to compress with code ${sizeOrError}`);
}
const data = new Uint8Array(Module.HEAPU8.buffer, compressed, sizeOrError).slice();
free(compressed, bound);
free(src, buf.byteLength);
return data;
} catch (e) {
free(compressed, bound);
free(src, buf.byteLength);
throw e;
}
};
// node_modules/@bokuweb/zstd-wasm/dist/web/simple/decompress_using_dict.js
var getFrameContentSize2 = (src, size) => {
const getSize = Module["_ZSTD_getFrameContentSize"];
return getSize(src, size);
};
var createDCtx = () => {
return Module["_ZSTD_createDCtx"]();
};
var freeDCtx = (dctx) => {
return Module["_ZSTD_freeDCtx"](dctx);
};
var decompressUsingDict = (dctx, buf, dict, opts = { defaultHeapSize: 1024 * 1024 }) => {
const malloc = Module["_malloc"];
const src = malloc(buf.byteLength);
Module.HEAP8.set(buf, src);
const pdict = malloc(dict.byteLength);
Module.HEAP8.set(dict, pdict);
const contentSize = getFrameContentSize2(src, buf.byteLength);
const size = contentSize === -1 ? opts.defaultHeapSize : contentSize;
const free = Module["_free"];
const heap = malloc(size);
try {
const _decompress = Module["_ZSTD_decompress_usingDict"];
const sizeOrError = _decompress(dctx, heap, size, src, buf.byteLength, pdict, dict.byteLength);
if (isError(sizeOrError)) {
throw new Error(`Failed to compress with code ${sizeOrError}`);
}
const data = new Uint8Array(Module.HEAPU8.buffer, heap, sizeOrError).slice();
free(heap, size);
free(src, buf.byteLength);
free(pdict, dict.byteLength);
return data;
} catch (e) {
free(heap, size);
free(src, buf.byteLength);
free(pdict, dict.byteLength);
throw e;
}
};
// node_modules/@bokuweb/zstd-wasm/dist/web/simple/compress_using_dict.js
var compressBound2 = (size) => {
const bound = Module["_ZSTD_compressBound"];
return bound(size);
};
var createCCtx = () => {
return Module["_ZSTD_createCCtx"]();
};
var freeCCtx = (cctx) => {
return Module["_ZSTD_freeCCtx"](cctx);
};
var compressUsingDict = (cctx, buf, dict, level) => {
const bound = compressBound2(buf.byteLength);
const malloc = Module["_malloc"];
const compressed = malloc(bound);
const src = malloc(buf.byteLength);
Module.HEAP8.set(buf, src);
const pdict = malloc(dict.byteLength);
Module.HEAP8.set(dict, pdict);
const free = Module["_free"];
try {
const _compress = Module["_ZSTD_compress_usingDict"];
const sizeOrError = _compress(cctx, compressed, bound, src, buf.byteLength, pdict, dict.byteLength, level !== null && level !== void 0 ? level : 3);
if (isError(sizeOrError)) {
throw new Error(`Failed to compress with code ${sizeOrError}`);
}
const data = new Uint8Array(Module.HEAPU8.buffer, compressed, sizeOrError).slice();
free(compressed, bound);
free(src, buf.byteLength);
free(pdict, dict.byteLength);
return data;
} catch (e) {
free(compressed, bound);
free(src, buf.byteLength);
free(pdict, dict.byteLength);
throw e;
}
};
// node_modules/@bokuweb/zstd-wasm/dist/web/index.web.js
var __awaiter2 = function(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function(resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var init2 = (path) => __awaiter2(void 0, void 0, void 0, function* () {
const url = new URL(`./zstd.wasm`, import.meta.url).href;
Module["init"](path !== null && path !== void 0 ? path : url);
yield waitInitialized();
});
export {
compress,
compressUsingDict,
createCCtx,
createDCtx,
decompress,
decompressUsingDict,
freeCCtx,
freeDCtx,
init2 as init
};
//# sourceMappingURL=zstd-wasm.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/@bokuweb/zstd-wasm/lib/zstd.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/module.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/errors/index.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/simple/decompress.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/simple/compress.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/simple/decompress_using_dict.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/simple/compress_using_dict.ts", "../../node_modules/@bokuweb/zstd-wasm/lib/index.web.ts"],
"sourcesContent": [null, null, null, null, null, null, null, null],
"mappings": "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 truncated
"names": ["getFrameContentSize", "compressBound", "init", "__awaiter"]
}
-120
View File
@@ -1,120 +0,0 @@
{
"manifest_version": 3,
"name": "Yomitan Popup Dictionary",
"version": "25.9.29.0",
"description": "Popup dictionary for language learning",
"key": "likgccmbimhjbgkjambclfkhldnlhbnn",
"author": {
"email": "themoeway@googlegroups.com"
},
"icons": {
"16": "images/icon16.png",
"19": "images/icon19.png",
"32": "images/icon32.png",
"38": "images/icon38.png",
"48": "images/icon48.png",
"64": "images/icon64.png",
"128": "images/icon128.png"
},
"action": {
"default_icon": {
"16": "images/icon16.png",
"19": "images/icon19.png",
"32": "images/icon32.png",
"38": "images/icon38.png",
"48": "images/icon48.png",
"64": "images/icon64.png",
"128": "images/icon128.png"
},
"default_title": "Yomitan",
"default_popup": "action-popup.html"
},
"background": {
"service_worker": "sw.js",
"type": "module"
},
"omnibox": {
"keyword": "yomi"
},
"content_scripts": [
{
"run_at": "document_idle",
"matches": [
"http://*/*",
"https://*/*",
"file://*/*"
],
"match_about_blank": true,
"all_frames": true,
"js": [
"js/app/content-script-wrapper.js"
]
}
],
"minimum_chrome_version": "102.0.0.0",
"options_ui": {
"page": "settings.html",
"open_in_tab": true
},
"sandbox": {
"pages": [
"template-renderer.html"
]
},
"permissions": [
"storage",
"clipboardWrite",
"unlimitedStorage",
"declarativeNetRequest",
"scripting",
"offscreen",
"contextMenus"
],
"optional_permissions": [
"clipboardRead",
"nativeMessaging"
],
"host_permissions": [
"<all_urls>"
],
"commands": {
"toggleTextScanning": {
"suggested_key": {
"default": "Alt+Delete"
},
"description": "Toggle text scanning on/off"
},
"openInfoPage": {
"description": "Open the info page"
},
"openSettingsPage": {
"description": "Open the settings page"
},
"openSearchPage": {
"suggested_key": {
"default": "Alt+Insert"
},
"description": "Open the search page"
},
"openPopupWindow": {
"description": "Open the popup window"
}
},
"web_accessible_resources": [
{
"resources": [
"popup.html",
"template-renderer.html",
"js/*",
"lib/resvg.wasm"
],
"matches": [
"<all_urls>"
]
}
],
"content_security_policy": {
"extension_pages": "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; img-src blob: 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *",
"sandbox": "sandbox allow-scripts; default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'unsafe-inline'"
}
}