#!/usr/bin/env bash set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" web_dir="${repo_root}/web" check_sha256() { local expected="$1" local path="$2" local actual actual="$(sha256sum "${path}" | cut -d ' ' -f 1)" if [[ "${actual}" != "${expected}" ]]; then echo "local dependency checksum mismatch: ${path}" >&2 exit 1 fi } node "${web_dir}/-check-runtime-deps.mjs" node "${repo_root}/tools/web/check-manifest-assets.mjs" \ "${web_dir}/app/public/engine-manifest.json" "${web_dir}/app/public" node "${repo_root}/tools/web/check-three-vendor.mjs" if rg -n --glob '!vendor/**' --glob '!*.map' 'https?://(unpkg|cdn\.jsdelivr|esm\.sh|skypack|jsdelivr)' \ "${web_dir}/app/src" "${web_dir}/app/index.html" "${web_dir}/app/vite.config.ts"; then echo "remote runtime module reference found" >&2 exit 1 fi test -s "${web_dir}/app/src/vendor/three/three.core.js" test -s "${web_dir}/app/src/vendor/three/three.module.js" test -s "${web_dir}/app/src/vendor/three/addons/controls/OrbitControls.js" test -s "${web_dir}/app/src/vendor/blender/web_engine.js" test -s "${web_dir}/app/src/vendor/blender/web_engine.wasm" test -s "${web_dir}/app/public/vendor/blender/web_engine.js" test -s "${web_dir}/app/public/vendor/blender/web_engine.wasm" test -s "${web_dir}/app/public/vendor/blender/single/web_engine.js" test -s "${web_dir}/app/public/vendor/blender/single/web_engine.wasm" test -s "${web_dir}/app/public/vendor/blender/pthread/web_engine.js" test -s "${web_dir}/app/public/vendor/blender/pthread/web_engine.wasm" cmp "${web_dir}/app/src/vendor/blender/web_engine.js" "${web_dir}/app/public/vendor/blender/web_engine.js" cmp "${web_dir}/app/src/vendor/blender/web_engine.wasm" "${web_dir}/app/public/vendor/blender/web_engine.wasm" test -s "${repo_root}/blender-5.2.0/extern/zlib/CMakeLists.txt" test -s "${repo_root}/blender-5.2.0/extern/zstd/build/cmake/CMakeLists.txt" test -s "${repo_root}/blender-5.2.0/extern/opensubdiv-source/CMakeLists.txt" test -s "${repo_root}/blender-5.2.0/extern/gmp-wasm/include/gmp.h" test -s "${repo_root}/blender-5.2.0/extern/gmp-wasm/include/gmpxx.h" test -s "${repo_root}/blender-5.2.0/extern/gmp-wasm/lib/libgmp.a" test -s "${repo_root}/blender-5.2.0/extern/gmp-wasm/lib/libgmpxx.a" check_sha256 \ "f843eb49daf20264007d807cbc64516a1fed9cdb1149aaf84ff47691d97491f9" \ "${repo_root}/blender-5.2.0/extern/opensubdiv-source/opensubdiv-v3_7_0.tar.gz" check_sha256 \ "bd2966e6d277f79328e894a5a9f3ba3fbf2ed2be81def5f48623e30c23fb1572" \ "${repo_root}/blender-5.2.0/extern/gmp-source/gmp_6.3.0+dfsg.orig.tar.xz" test -s "${web_dir}/dist/index.html" test -n "$(find "${web_dir}/dist" -maxdepth 2 -type f -name 'index-*.js' -print -quit)" if rg -n 'https?://(unpkg|cdn\.jsdelivr|esm\.sh|skypack|jsdelivr)' "${web_dir}/dist"; then echo "remote runtime URL found in dist" >&2 exit 1 fi echo "local-dependencies-ok"