getHost(), ['127.0.0.1', 'localhost', '::1', 'dpl.loc'], true) || !is_file($marker) || trim(file_get_contents($marker)) !== $origin) { return $html; } // A stale marker after an interrupted process falls back to built assets. $socket = @fsockopen('127.0.0.1', 5173, $error, $message, 0.1); if (!$socket) return $html; fclose($socket); $html = preg_replace('#]*src="/theme/Stellar/assets/[^"]+"[^>]*>#', '', $html); $html = preg_replace('#]*href="/theme/Stellar/assets/[^"]+"[^>]*>#', '', $html); $html = str_replace('src="/theme/Stellar/env.js"', 'src="'.$origin.'/env.js"', $html); // Allow only this loopback dev origin; production HTML is left unchanged. $html = str_replace("script-src 'self'", "script-src 'self' ".$origin, $html); $html = str_replace("style-src 'self'", "style-src 'self' ".$origin, $html); $html = str_replace("connect-src 'self'", "connect-src 'self' ".$origin." ws://127.0.0.1:5173", $html); $html = str_replace("img-src 'self'", "img-src 'self' ".$origin, $html); $html = str_replace("font-src 'self'", "font-src 'self' ".$origin, $html); $scripts = '' .''; return str_replace('', $scripts.'', $html); } }