diff --git a/deploy/copy_to_dist.sh b/deploy/copy_to_dist.sh index 9e03257a2..4d798ffa4 100755 --- a/deploy/copy_to_dist.sh +++ b/deploy/copy_to_dist.sh @@ -3,8 +3,10 @@ cp -R ./public/* ${1:-"dist"} cp ./src/lib/rlottie/rlottie-wasm.wasm ${1:-"dist"} + cp ./src/lib/video-preview/libav-3.10.5.1.2-webcodecs.wasm.js ${1:-"dist"} cp ./src/lib/video-preview/libav-3.10.5.1.2-webcodecs.wasm.wasm ${1:-"dist"} + cp ./src/lib/webp/webp_wasm.wasm ${1:-"dist"} cp ./node_modules/opus-recorder/dist/decoderWorker.min.wasm ${1:-"dist"} diff --git a/package-lock.json b/package-lock.json index d021e147d..a476452e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19478,6 +19478,8 @@ }, "node_modules/raw-loader": { "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==", "dev": true }, "node_modules/rc": { @@ -20204,8 +20206,9 @@ }, "node_modules/script-loader": { "version": "0.7.2", + "resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.2.tgz", + "integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==", "dev": true, - "license": "MIT", "dependencies": { "raw-loader": "~0.5.1" } diff --git a/public/compatTest.js b/public/compatTest.js new file mode 100644 index 000000000..05b80d10f --- /dev/null +++ b/public/compatTest.js @@ -0,0 +1,25 @@ +function compatTest() { + var hasPromise = typeof Promise !== 'undefined'; + var hasWebSockets = typeof WebSocket !== 'undefined'; + var hasWebCrypto = window.crypto && typeof window.crypto.subtle !== 'undefined'; + var hasObjectFromEntries = typeof Object.fromEntries !== 'undefined'; + + var isCompatible = hasPromise && hasWebSockets && hasWebCrypto && hasObjectFromEntries; + + if (isCompatible || (window.localStorage && window.localStorage.getItem('tt-ignore-compat'))) { + window.isCompatTestPassed = true; + return; + } + + if (window.console && console.warn) { + console.warn('Compatibility test report:'); + console.warn('Promise', hasPromise); + console.warn('WebSocket', hasWebSockets); + console.warn('WebCrypto', hasWebCrypto); + console.warn('Object.fromEntries', hasObjectFromEntries); + } + + document.body.innerHTML = '