import crypto from "node:crypto"; import fs from "node:fs"; import path from "node:path"; const root = path.resolve(new URL("../..", import.meta.url).pathname); const assets = { "web/app/src/vendor/three/three.module.js": "bbf5ed13fe4373f5bd38b14ea8e62e9f157327da5638edc6d3863e08b167c9c7", "web/app/src/vendor/three/three.core.js": "3718df126d69c125362a03340913204470d8c50238605150e57f808840fb7759", "web/app/src/vendor/three/addons/controls/OrbitControls.js": "1e08bf297c9062aa5055a9d649d8a8458c3871aa31c7d600f535a06f567e7cad", }; for (const [relativePath, expected] of Object.entries(assets)) { const filePath = path.join(root, relativePath); const actual = crypto.createHash("sha256").update(fs.readFileSync(filePath)).digest("hex"); if (actual !== expected) throw new Error(`Three.js vendor hash mismatch: ${relativePath}`); } console.log(`three-vendor-ok assets=${Object.keys(assets).length}`);