mustRun();(new Symfony\Component\Process\Process(['C:/laragon/tools/sgf-tempo/node-v24.22.1-win-arm64/node.exe','--check',$repo.'/public/sgf-stock-catalogue.mjs']))->mustRun(); $hashes=[];$copy=function($src,$file)use($s,$work,&$hashes){$dest=$s['app'].'/'.$file;$backup=$work.'/before/'.$file;if(is_file($dest)){if(!is_dir(dirname($backup)))mkdir(dirname($backup),0700,true);copy($dest,$backup);}if(!is_dir(dirname($dest)))mkdir(dirname($dest),0700,true);copy($src,$dest);$hashes[$file]=hash_file('sha256',$dest);};foreach($files as$file)$copy($repo.'/'.$file,$file); $config=['enabled'=>true,'binding_sha256'=>hash_file('sha256',$s['root'].'/stock-catalogue-binding.json'),'schema_sha256'=>hash_file('sha256',$repo.'/database/sql/stock_catalogue.sql')];$file=$work.'/stock_catalogue.php';file_put_contents($file,"true,'hashes'=>$hashes,'new_demo'=>false,'cache_cleared'=>false,'native_movements'=>0],JSON_PRETTY_PRINT));echo json_encode(['passed'=>true,'proof'=>$work.'/stock-catalogue-installation.json']).PHP_EOL;