1<!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/png" href="https://storage.googleapis.com/hostinger-horizons-assets-prod/2171e3cf-ea0e-4088-b342-a56808b43cda/fbc113ee6ac35220d1617d82cf54f07b.png" /> 6 <meta name="generator" content="Hostinger Horizons" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 8 <title>Cosmic Source Life</title> 9
9<script type="module" crossorigin src="/assets/index-d467a6c4.js"></script>
9 10 <link rel="stylesheet" href="/assets/index-3e282ed9.css"> 11
11<script type="module"> 12window.onerror = (message, source, lineno, colno, errorObj) => { 13 const errorDetails = errorObj ? JSON.stringify({ 14 name: errorObj.name, 15 message: errorObj.message, 16 stack: errorObj.stack, 17 source, 18 lineno, 19 colno, 20 }) : null; 21 22 window.parent.postMessage({ 23 type: 'horizons-runtime-error', 24 message, 25 error: errorDetails 26 }, '*'); 27}; 28</script>
28 29
29<script type="module"> 30const observer = new MutationObserver((mutations) => { 31 for (const mutation of mutations) { 32 for (const addedNode of mutation.addedNodes) { 33 if ( 34 addedNode.nodeType === Node.ELEMENT_NODE && 35 ( 36 addedNode.tagName?.toLowerCase() === 'vite-error-overlay' || 37 addedNode.classList?.contains('backdrop') 38 ) 39 ) { 40 handleViteOverlay(addedNode); 41 } 42 } 43 } 44}); 45 46observer.observe(document.documentElement, { 47 childList: true, 48 subtree: true 49}); 50 51function handleViteOverlay(node) { 52 if (!node.shadowRoot) { 53 return; 54 } 55 56 const backdrop = node.shadowRoot.querySelector('.backdrop'); 57 58 if (backdrop) { 59 const overlayHtml = backdrop.outerHTML; 60 const parser = new DOMParser(); 61 const doc = parser.parseFromString(overlayHtml, 'text/html'); 62 const messageBodyElement = doc.querySelector('.message-body'); 63 const fileElement = doc.querySelector('.file'); 64 const messageText = messageBodyElement ? messageBodyElement.textContent.trim() : ''; 65 const fileText = fileElement ? fileElement.textContent.trim() : ''; 66 const error = messageText + (fileText ? ' File:' + fileText : ''); 67 68 window.parent.postMessage({ 69 type: 'horizons-vite-error', 70 error, 71 }, '*'); 72 } 73} 74</script>
74 75
75<script type="module"> 76const originalConsoleError = console.error; 77console.error = function(...args) { 78 originalConsoleError.apply(console, args); 79 80 let errorString = ''; 81 82 for (let i = 0; i < args.length; i++) { 83 const arg = args[i]; 84 if (arg instanceof Error) { 85 errorString = arg.stack || `${arg.name}: ${arg.message}`; 86 break; 87 } 88 } 89 90 if (!errorString) { 91 errorString = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' '); 92 } 93 94 window.parent.postMessage({ 95 type: 'horizons-console-error', 96 error: errorString 97 }, '*'); 98}; 99</script>
99 100
100<script type="module"> 101const originalFetch = window.fetch; 102 103window.fetch = function(...args) { 104 const url = args[0] instanceof Request ? args[0].url : args[0]; 105 106 // Skip WebSocket URLs 107 if (url.startsWith('ws:') || url.startsWith('wss:')) { 108 return originalFetch.apply(this, args); 109 } 110 111 return originalFetch.apply(this, args) 112 .then(async response => { 113 const contentType = response.headers.get('Content-Type') || ''; 114 115 // Exclude HTML document responses 116 const isDocumentResponse = 117 contentType.includes('text/html') || 118 contentType.includes('application/xhtml+xml'); 119 120 if (!response.ok && !isDocumentResponse) { 121 const responseClone = response.clone(); 122 const errorFromRes = await responseClone.text(); 123 const requestUrl = response.url; 124 console.error(`Fetch error from ${requestUrl}: ${errorFromRes}`); 125 } 126 127 return response; 128 }) 129 .catch(error => { 130 if (!url.match(/.html?$/i)) { 131 console.error(error); 132 } 133 134 throw error; 135 }); 136}; 137</script>
137 138 </head> 139 <body> 140 <div id="root"></div> 141 142 </body> 143 </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.